From bd9d82035b21c8b0695c18208827c184785398af Mon Sep 17 00:00:00 2001 From: Chimrod <> Date: Fri, 22 Sep 2023 14:12:14 +0200 Subject: first commit --- lib/tokens.mly | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 lib/tokens.mly (limited to 'lib/tokens.mly') 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 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 IDENT +%token LITERAL +%token INTEGER + +%token COMMENT + +%token ACT +%token IF +%token ELSE +%token ELIF +%token END +%token LET +%token SET +%token OBJ +%token LOC +%token NO +%token KEYWORD +%token 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 + +%% -- cgit v1.2.3