diff options
author | Julian T <julian@jtle.dk> | 2019-10-31 20:44:39 +0100 |
---|---|---|
committer | Julian T <julian@jtle.dk> | 2019-10-31 20:44:39 +0100 |
commit | a9e9b8c82cb67be9f0fa19c698fbf6f030dc88bb (patch) | |
tree | e276c5fd6ed3ce92eb153aad87a92b6a986d8069 /sem1/osc/miniproject/cnasm/regn.l | |
parent | 96b0849a5ff3f510377499a353ae73239416c489 (diff) |
Added assignment for nasm preassembler thing
Diffstat (limited to 'sem1/osc/miniproject/cnasm/regn.l')
-rw-r--r-- | sem1/osc/miniproject/cnasm/regn.l | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/sem1/osc/miniproject/cnasm/regn.l b/sem1/osc/miniproject/cnasm/regn.l new file mode 100644 index 0000000..00876d6 --- /dev/null +++ b/sem1/osc/miniproject/cnasm/regn.l @@ -0,0 +1,39 @@ +%{ +#include <math.h> +#include <string.h> +#include "regn.tab.h" +#include "ast.h" +%} + +id [a-zA-Z0-9_;]([^\n=><(){}])* +if if[ \t]* +else else[ \t]* +for for[ \t]* +while while[ \t]* + +%% + +{if} {return IFF;}; +{else} {return EELSE;}; +{for} {return FFOR;}; +{while} {return WHILE;}; +"(" {return LP;}; +")" {return RP;}; +"{" {return LCP;}; +"}" {return RCP;}; +"<" {yylval.cmp = CLT; return CMP;}; +">" {yylval.cmp = CGT; return CMP;}; +"=" {yylval.cmp = CEQ; return CMP;}; +"!=" {yylval.cmp = CNEQ; return CMP;}; +{id} {yylval.string = strdup(yytext);return ID;}; +[1-9][0-9]* {yylval.string = yytext;return NO;}; + + + +[ \t\n] ; + +. {return yytext[0];} + +%% + +// TODO match normal assembler |