📄 finclex.l
字号:
%{#include <stdio.h>#include <stdlib.h>#include <finctype.h>#include <fincnode.h>#include <finclang.h>#include <fincyacc.h>char string_buf[10000];char *string_buf_ptr;%}DIGIT [0-9]IDENTIFIER [a-zA-Z_][a-zA-Z0-9_:]*%x comment%x string%%"/*" BEGIN(comment);<comment>[^*\n]* <comment>"*"+[^*/\n]*<comment>\n { g_lang_line++; };<comment>"*"+"/" BEGIN(INITIAL);\" { string_buf[0] = '\0'; string_buf_ptr = string_buf; BEGIN(string); }<string>\\n *string_buf_ptr++ = '\n';<string>\\t *string_buf_ptr++ = '\t';<string>\\r *string_buf_ptr++ = '\r';<string>\\\" *string_buf_ptr++ = '\"';<string>\\\\ *string_buf_ptr++ = '\\';<string>[^\"] { *string_buf_ptr++ = c_text[0]; }<string>\" { *string_buf_ptr = '\0'; strcpy (c_lval.val_string, string_buf); BEGIN(INITIAL); return V_STRING; }"+" { return PLUS; }"++" { return INC; }"-" { return SUB; }"--" { return DEC; }"=" { return ASSIGN; }"==" { return EQ; }"!=" { return NE; }">=" { return GE; }"<=" { return LE; }"..." { return OPT_PARAM; }addrof { return ADDR_OF; }contentof { return CONTENT_OF; }import { return IMPORT; }if { return IF; }else { return ELSE; }static { return STATIC; }unsigned { return UNSIGNED; }native { return NATIVE; }void { return VOID; }char { return CHAR; }short { return SHORT; }int { return INT; }float { return FLOAT; }double { return DOUBLE; }string { return STRING; }pointer { return POINTER; }bool { return BOOL; }struct { return STRUCT; }return { return RETURN; }for { return FOR; }while { return WHILE; }continue { return CONTINUE; }break { return BREAK; }true { return V_TRUE; }false { return V_FALSE; }null { return V_NULL; }{IDENTIFIER} { strcpy (c_lval.identifier, c_text); return IDENTIFIER; }{DIGIT}+ { c_lval.val_int = atoi (c_text); return V_INT; }{DIGIT}+"."{DIGIT}* { c_lval.val_float = atof (c_text); return V_FLOAT; }[ \t\r] /* White spaces */[\n] { g_lang_line++; }. { return c_text[0]; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -