/* Author: Jose Romeo Vela Date: May 4, 2002 email: jrvela@aristasol.com http://www.aristasol.com/ This software is licensed under GNU's GPL. For details see http://www.gnu.org/ Copyright (c) 2002, Jose Romeo Vela ============================================================================== Purpose: This file contains a a set of regular expression to be used to generate a lexical analyzer with the gnu flex tool. The expressions here are used to recognize tokens for the cardiac assembler (casm). The lexer generated from this file is used in compination with a parser generated from a bison grammer (casm.y) to produce a complete assembler. You may notice that there are some rules with values to assist in code generation. This is part of the syntax directed process used in the parser. ============================================================================== Modifications: */ %{ #include #include #include "casm.tab.h" %} %% [ \t]+ /* ignore blanks */ [\-\+]{0,1}[0-9]{1,3} sscanf(yytext,"%d",&yylval.ival);return NUMBER; INP yylval.ival=000; return OPER; CLA yylval.ival=100; return OPER; ADD yylval.ival=200; return OPER; TAC yylval.ival=300; return OPER; SFT yylval.ival=400; return OPER; OUT yylval.ival=500; return OPER; STO yylval.ival=600; return OPER; SUB yylval.ival=700; return OPER; JMP yylval.ival=800; return OPER; HRS yylval.ival=900; return OPER; CEL|EQU|PROC|ENDP yylval.sval=strdup(yytext);return INSTRUCTION; [A-Z]+ yylval.sval=strdup(yytext);return LABEL; \: yylval.sval=strdup(yytext);return LABTERM; \n yylval.sval=strdup(yytext);return EOL; \#.* /* ignore comments */ . return GARBAGE; %%