diff --git a/src/lex/lexer.l b/src/lex/lexer.l index c09798d..f69347b 100644 --- a/src/lex/lexer.l +++ b/src/lex/lexer.l @@ -56,8 +56,19 @@ "while" return(KeyWhile); - - +"in" return(KeyIn); +"out" return(KeyOut); +"fun" return(KeyFun); +"," return(','); +";" return(';'); +"==" return(OpEquals); +"&&" return(OpAnd); +"||" return(OpOr); +"!!" return(OpNot); +"^^" return(OpXor); +"&" return('&'); +"^" return('^'); +"." return('.'); diff --git a/src/yacc/parser.y b/src/yacc/parser.y index 4552fbd..ac5608e 100644 --- a/src/yacc/parser.y +++ b/src/yacc/parser.y @@ -40,6 +40,15 @@ %token KeyWhile +%token KeyIn +%token KeyOut +%token KeyFun +%token OpEquals +%token OpAnd +%token OpOr +%token OpNot +%token OpXor + @@ -65,6 +74,11 @@ decl: '=' {printf("=\n"); }; | '*' {printf("*\n"); }; | '/' {printf("/\n"); }; + | '&' {printf("&\n"); }; + | '^' {printf("^\n"); }; + | '.' {printf(".\n"); }; + | ',' {printf(",\n"); }; + | ';' {printf(";\n"); }; @@ -91,6 +105,18 @@ decl: '=' {printf("=\n"); }; | KeyElse {printf("KeyElse\n"); }; | KeyWhile {printf("KeyWhile\n"); }; + + | KeyIn {printf("KeyIn\n"); }; + | KeyOut {printf("KeyOut\n"); }; + | KeyFun {printf("KeyFun\n"); }; + | OpEquals {printf("OpEquals\n"); }; + | OpAnd {printf("OpAnd\n"); }; + | OpOr {printf("OpOr\n"); }; + | OpNot {printf("OpNot\n"); }; + | OpXor {printf("OpXor\n"); }; + + + %%