hcl.lex
来自「深入理解计算机系统 的lab」· LEX 代码 · 共 46 行
LEX
46 行
%{#include <stdio.h>#include "node.h"#define YYSTYPE node_ptr#include "hcl.tab.h"extern YYSTYPE yylval;extern int lineno;%}%%[ \r\t\f] ;[\n] lineno++;"#".*\n lineno++ ;quote return(QUOTE);boolsig return(BOOLARG);bool return(BOOL);intsig return(INTARG);int return(INT);in return(IN);'[^']*' yylval = make_quote(yytext); return(QSTRING);[a-zA-Z][a-zA-Z0-9_]* yylval = make_var(yytext); return(VAR);[0-9][0-9]* yylval = make_num(yytext); return(NUM);-[0-9][0-9]* yylval = make_num(yytext); return(NUM);"=" return(ASSIGN);";" return(SEMI);":" return(COLON);"," return(COMMA);"(" return(LPAREN);")" return(RPAREN);"{" return(LBRACE);"}" return(RBRACE);"[" return(LBRACK);"]" return(RBRACK);"&&" return(AND);"||" return(OR);"!=" yylval = make_var(yytext); return(COMP);"==" yylval = make_var(yytext); return(COMP);"<" yylval = make_var(yytext); return(COMP);"<=" yylval = make_var(yytext); return(COMP);">" yylval = make_var(yytext); return(COMP);">=" yylval = make_var(yytext); return(COMP);"!" return(NOT);%%
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?