From 387ec42070ea17cd57658d3386b0529ca9be1782 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Wed, 16 Nov 2022 21:56:36 +0200 Subject: [IPL/HW02] Added tokens for all types of parsed data --- .../Homework 02/commonlisp2html.l | 34 ++++++++++------------ 1 file changed, 16 insertions(+), 18 deletions(-) (limited to 'Year 2/Implementation of Programming Languages/Homework 02/commonlisp2html.l') diff --git a/Year 2/Implementation of Programming Languages/Homework 02/commonlisp2html.l b/Year 2/Implementation of Programming Languages/Homework 02/commonlisp2html.l index 01b69d5..cbb226f 100644 --- a/Year 2/Implementation of Programming Languages/Homework 02/commonlisp2html.l +++ b/Year 2/Implementation of Programming Languages/Homework 02/commonlisp2html.l @@ -37,27 +37,25 @@ CONST_VAR \+([0-9A-z.?-_])+\+ %% -{LEFTBRACKET} { return LBRACKET; } -{RIGHTBRACKET} { return RBRACKET; } -{STR} { printf("%s", yytext); } -{NUMBERS} { printf("%s", yytext); } -{COMMENT} { printf("%s", yytext); } -{PARAMETER_TYPE} { printf("%s", yytext); } -{KEYWORD} { printf("%s", yytext); } -{CONSTANTS} { printf("%s", yytext); } - -{SPECIAL_FORM} { printf("%s", yytext); } -{F_ARITHMETIC}|{F_NUM_COMPARISON}|{F_TRIGONOMETRIC}|{F_TRIGONOMETRIC}|{F_OTHER_MATH}|{F_LOGICAL}|{F_LISTS}|{F_OTHER} { printf("%s", yytext); } -{M_ARITHMETIC}|{M_LOGICAL}|{M_CONDITIONAL}|{M_DECLARE} { printf("%s", yytext); } - -{GLOBAL_VAR}|{CONST_VAR} { printf("%s", yytext); } - - /* " " { return SPACE; } */ -\t { return TAB; } +{LEFTBRACKET} { return LBRACKET; } +{RIGHTBRACKET} { return RBRACKET; } +{STR} { yylval = strdup(yytext); return STR; } +{NUMBERS} { yylval = strdup(yytext); return NUM; } +{COMMENT} { yylval = strdup(yytext); return COMMENT;} +{PARAMETER_TYPE} { yylval = strdup(yytext); return PARAMETER_TYPE; } +{KEYWORD} { yylval = strdup(yytext); return KEYWORD; } +{CONSTANTS} { yylval = strdup(yytext); return CONSTANT; } + +{SPECIAL_FORM} { yylval = strdup(yytext); return SPECIAL_FORM; } +{F_ARITHMETIC}|{F_NUM_COMPARISON}|{F_TRIGONOMETRIC}|{F_TRIGONOMETRIC}|{F_OTHER_MATH}|{F_LOGICAL}|{F_LISTS}|{F_OTHER} { yylval = strdup(yytext); return FUNCTION; } +{M_ARITHMETIC}|{M_LOGICAL}|{M_CONDITIONAL}|{M_DECLARE} { yylval = strdup(yytext); return MACRO; } + +{GLOBAL_VAR}|{CONST_VAR} { yylval = strdup(yytext); return VARIABLE; } + \n { return NEWLINE; } /* flex catches the longest possibility, so if some variable name contains a known word (function, macro, etc.), this will prevent it from highlighting */ -[A-z]+ { yylval = strdup(yytext); return OTHER; } +[A-z]+|" "|\t { yylval = strdup(yytext); return OTHER; } %% -- cgit v1.3.1-23-gd82d