Git Product home page Git Product logo

tiger's Introduction

tiger

The Tiger language is a small, imperative language with integer and string variables, arrays, records, and nested functions. Its syntax resembles some functional languages.

references

Modern Compiler Implementation in ML by A. Appel.

tiger's People

Contributors

vyorkin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

tiger's Issues

Fix shift/reduce conflict


** Conflict (shift/reduce) in state 143.
** Token involved: TYPE
** This state is reached from main after reading:

LET ty_dec 

** The derivations that appear below have the following common factor:
** (The question mark symbol (?) represents the spot where the derivations begin to differ.)

main 
expr EOF 
local 
LET decs IN expr_seq END 
    list(dec) 
    (?)

** In state 143, looking ahead at TYPE, reducing production
** nonempty_list(loc(ty_dec)) -> ty_dec 
** is permitted because of the following sub-derivation:

dec list(dec) // lookahead token appears because list(dec) can begin with TYPE
dec_ty_fun // lookahead token is inherited
nonempty_list(loc(ty_dec)) // lookahead token is inherited
ty_dec . 

** In state 143, looking ahead at TYPE, shifting is permitted
** because of the following sub-derivation:

dec list(dec) 
dec_ty_fun 
nonempty_list(loc(ty_dec)) 
ty_dec nonempty_list(loc(ty_dec)) 
       ty_dec 
       . TYPE symbol EQ ty 

Rewrite

It's time to rewrite this compiler and finish the rest of chapters.
I'll left the master branch as is for now and continue the work in the main branch.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.