From a9e9b8c82cb67be9f0fa19c698fbf6f030dc88bb Mon Sep 17 00:00:00 2001 From: Julian T Date: Thu, 31 Oct 2019 20:44:39 +0100 Subject: Added assignment for nasm preassembler thing --- sem1/osc/miniproject/cnasm/regn.l | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 sem1/osc/miniproject/cnasm/regn.l (limited to 'sem1/osc/miniproject/cnasm/regn.l') 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 +#include +#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 -- cgit v1.2.3