Compleating assignment for interpreter, modified grammars, fixed tests
This commit is contained in:
@ -9,18 +9,24 @@
|
||||
|
||||
let keyword_table =
|
||||
let mapping = [
|
||||
("main", MAIN);
|
||||
("skip", SKIP);
|
||||
("if", IF);
|
||||
("else", ELSE);
|
||||
("while", WHILE);
|
||||
("for", FOR);
|
||||
("as", AS);
|
||||
("def", DEF);
|
||||
("do", DO);
|
||||
("true", BOOL(true));
|
||||
("else", ELSE);
|
||||
("false", BOOL(false));
|
||||
("for", FOR);
|
||||
("if", IF);
|
||||
("input", INPUT);
|
||||
("main", MAIN);
|
||||
("not", BNOT);
|
||||
("rand", RAND);
|
||||
("output", OUTPUT);
|
||||
("powmod", POWERMOD);
|
||||
("rand", RAND);
|
||||
("skip", SKIP);
|
||||
("then", THEN);
|
||||
("true", BOOL(true));
|
||||
("while", WHILE);
|
||||
("with", WITH);
|
||||
]
|
||||
in create_hashtable (List.length mapping) mapping
|
||||
}
|
||||
@ -42,26 +48,24 @@ rule read = parse
|
||||
| Some keyword -> keyword
|
||||
| None -> VARIABLE(v)
|
||||
}
|
||||
| ";" {SEQUENCE}
|
||||
| "," {COMMA}
|
||||
| "{" {LEFTGPAR}
|
||||
| "}" {RIGHTGPAR}
|
||||
| "%" {MODULO}
|
||||
| "&&" {BAND}
|
||||
| "(" {LEFTPAR}
|
||||
| ")" {RIGHTPAR}
|
||||
| "<" {BCMPLESS}
|
||||
| ">" {BCMPGREATER}
|
||||
| "+" {PLUS}
|
||||
| "-" {MINUS}
|
||||
| "*" {TIMES}
|
||||
| "+" {PLUS}
|
||||
| "," {COMMA}
|
||||
| "-" {MINUS}
|
||||
| "/" {DIVISION}
|
||||
| "%" {MODULO}
|
||||
| "^" {POWER}
|
||||
| ":=" {ASSIGNMENT}
|
||||
| "&&" {BAND}
|
||||
| "||" {BOR}
|
||||
| "==" {BCMP}
|
||||
| ";" {SEQUENCE}
|
||||
| "<" {BCMPLESS}
|
||||
| "<=" {BCMPLESSEQ}
|
||||
| "==" {BCMP}
|
||||
| ">" {BCMPGREATER}
|
||||
| ">=" {BCMPGREATEREQ}
|
||||
| "^" {POWER}
|
||||
| "||" {BOR}
|
||||
| integer as i {INT(int_of_string i)}
|
||||
| "(*" {comments 0 lexbuf}
|
||||
| eof {EOF}
|
||||
|
||||
Reference in New Issue
Block a user