diff --git a/lexicalStructure.lex b/lexicalStructure.lex index bf04b31..3b88c9b 100644 --- a/lexicalStructure.lex +++ b/lexicalStructure.lex @@ -9,7 +9,6 @@ %% -.|\n "integer" {printf("T_INTEGER %s, Token %d\n",yytext, T_INTEGER);} //{return T_INTEGER} "address" {printf("T_ADDRESS %s, Token %d\n",yytext, T_ADDRESS);} //{return T_ADDRESS} "Boolean" {printf("T_BOOLEAN %s, Token %d\n",yytext, T_BOOLEAN);} //{return T_BOOLEAN} @@ -27,25 +26,25 @@ "function" {printf("FUNCTION %s, Token %d\n",yytext, FUNCTION);} //{return FUNCTION} "return" {printf("RETURN %s, Token %d\n",yytext, RETURN);} //{return RETURN} "external" {printf("EXTERNAL %s, Token %d\n",yytext, EXTERNAL);} //{return EXTERNAL} -"as" {printf("AS %s, Token %d\n",yytext, AS);} //{return AS}//% +"as" {printf("AS %s, Token %d\n",yytext, AS);} //{return AS}// /* OPERATORS */ -\+ {printf("ADD %s, Token %d\n",yytext, ADD);} //return ADD -\- {printf("SUB_OR_NEG %s, Token %d\n",yytext, SUB_OR_NEG);} //return SUB_OR_NEG -\* {printf("MUL %s, Token %d\n",yytext, MUL);} //return MUL -\/ {printf("DIV %s, Token %d\n",yytext, DIV);} //return DIV -\% {printf("REM %s, Token %d\n",yytext, REM);} //return REM -\< {printf("LESS_THAN %s, Token %d\n",yytext, LESS_THAN);} //return LESS_THAN -= {printf("EQUAL_TO %s, Token %d\n",yytext, EQUAL_TO);} //return EQUAL_TO -:= {printf("ASSIGN %s, Token %d\n",yytext, ASSIGN);} //return ASSIGN -! {printf("NOT %s, Token %d\n",yytext, NOT);} //return NOT -& {printf("AND %s, Token %d\n",yytext, AND);} //return AND -\| {printf("OR %s, Token %d\n",yytext, OR);} //return OR -\. {printf("DOT %s, Token %d\n",yytext, DOT);} //return DOT +"+" {printf("ADD %s, Token %d\n",yytext, ADD);} //return ADD +"-" {printf("SUB_OR_NEG %s, Token %d\n",yytext, SUB_OR_NEG);} //return SUB_OR_NEG +"*" {printf("MUL %s, Token %d\n",yytext, MUL);} //return MUL +"/" {printf("DIV %s, Token %d\n",yytext, DIV);} //return DIV +"%" {printf("REM %s, Token %d\n",yytext, REM);} //return REM +"<" {printf("LESS_THAN %s, Token %d\n",yytext, LESS_THAN);} //return LESS_THAN +"=" {printf("EQUAL_TO %s, Token %d\n",yytext, EQUAL_TO);} //return EQUAL_TO +":=" {printf("ASSIGN %s, Token %d\n",yytext, ASSIGN);} //return ASSIGN +"!" {printf("NOT %s, Token %d\n",yytext, NOT);} //return NOT +"&" {printf("AND %s, Token %d\n",yytext, AND);} //return AND +"|" {printf("OR %s, Token %d\n",yytext, OR);} //return OR +"." {printf("DOT %s, Token %d\n",yytext, DOT);} //return DOT "reserve" {printf("RESERVE %s, Token %d\n",yytext, RESERVE);} //return RESERVE "release" {printf("RELEASE %s, Token %d\n",yytext, RELEASE);} //return RELEASE - +%% int main(int argc, char *argv[]){ diff --git a/tests/test_operators.alpha b/tests/test_operators.alpha new file mode 100644 index 0000000..b985387 --- /dev/null +++ b/tests/test_operators.alpha @@ -0,0 +1,23 @@ ++ +- +* +/ +\ +% +< +> += +:= +=: +: += +! +& +| +. +relEASE +release +RELEASE +reserve +RESERVE +reSERVe \ No newline at end of file