diff options
Diffstat (limited to 'lib/tokens.mly')
-rw-r--r-- | lib/tokens.mly | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/lib/tokens.mly b/lib/tokens.mly new file mode 100644 index 0000000..7f907a3 --- /dev/null +++ b/lib/tokens.mly @@ -0,0 +1,70 @@ +%token <string>LOCATION_START +%token LOCATION_END + +%token PLUS +%token MINUS +%token INCR DECR +%token STAR +%token DIV +%token MOD + +%token AMPERSAND +%token COMA +%token EQUAL +%token COLUMN +%token L_BRACKET R_BRACKET +%token L_PAREN R_PAREN +%token LT GT +%token EXCLAMATION +%token AND OR + +%token EOF +%token EOL + +%token <string>IDENT +%token <string>LITERAL +%token <string>INTEGER + +%token COMMENT + +%token ACT +%token IF +%token ELSE +%token ELIF +%token END +%token LET +%token SET +%token OBJ +%token LOC +%token NO +%token <string>KEYWORD +%token <Qsp_syntax.T.function_>FUNCTION + +(* +(b) if the token was declared left-associative, then the conflict is resolved +in favor of reduction; + +(c) if the token was declared right-associative, then the conflict is resolved +in favor of shifting. + *) + +(* Exclamation should have the lower priority because the comments shall never + take place of the statements + *) +%right EXCLAMATION +%right NO +(* The priority for the variable should be lower than the equality priority + if I want to allow declare new variables *) +%nonassoc p_variable +%left AND OR +%right EQUAL GT LT GTE LTE +%left PLUS MINUS +%left STAR DIV +%left MOD +%left FUNCTION +%left L_PAREN +%right R_PAREN +%left COMA +%left KEYWORD + +%% |