⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gram.l

📁 編譯器的虛擬yacc工具
💻 L
字号:
D                       [0-9]L                       [a-zA-Z_]H                       [a-fA-F0-9]E                       [Ee][+-]?{D}+FS                      (f|F|l|L)IS                      (u|U|l|L)*%{#include <stdio.h>#include "y.tab.h" void count();int lineno;%}%%"/*"                    { comment(); }#.*                     { count(); /* remove all pre-processor directives */;}"auto"                  { count(); return(AUTO); }"break"                 { count(); return(BREAK); }"case"                  { count(); return(CASE); }"char"                  { count(); return(CHAR); }"const"                 { count(); return(CONST); }"continue"              { count(); return(CONTINUE); }"default"               { count(); return(DEFAULT); }"do"                    { count(); return(DO); }"double"                { count(); return(DOUBLE); }"else"                  { count(); return(ELSER); }"enum"                  { count(); return(ENUM); }"extern"                { count(); return(EXTERN); }"float"                 { count(); return(FLOAT); }"for"                   { count(); return(FOR); }"goto"                  { count(); return(GOTO); }"if"                    { count(); return(IFR); }"int"                   { count(); return(INT); }"long"                  { count(); return(LONG); }"register"              { count(); return(REGISTER); }"return"                { count(); return(RETURN); }"short"                 { count(); return(SHORT); }"signed"                { count(); return(SIGNED); }"sizeof"                { count(); return(SIZEOF); }"static"                { count(); return(STATIC); }"struct"                { count(); return(STRUCT); }"switch"                { count(); return(SWITCH); }"typedef"               { count(); return(TYPEDEF); }"union"                 { count(); return(UNION); }"unsigned"              { count(); return(UNSIGNED); }"void"                  { count(); return(VOID); }"volatile"              { count(); return(VOLATILE); }"while"                 { count(); return(WHILE); }{L}({L}|{D})*           { count(); return(IDENTIFIER); }0[xX]{H}+{IS}?          { count(); return(CONSTANT); }0[xX]{H}+{IS}?          { count(); return(CONSTANT); }0{D}+{IS}?              { count(); return(CONSTANT); }0{D}+{IS}?              { count(); return(CONSTANT); }{D}+{IS}?               { count(); return(CONSTANT); }{D}+{IS}?               { count(); return(CONSTANT); }'(\\.|[^\\'])+'         { count(); return(CONSTANT); }{D}+{E}{FS}?            { count(); return(CONSTANT); }{D}*"."{D}+({E})?{FS}?  { count(); return(CONSTANT); }{D}+"."{D}*({E})?{FS}?  { count(); return(CONSTANT); }\"(\\.|[^\\"])*\"       { count(); return(STRING_LITERAL); }">>="                   { count(); return(RIGHT_ASSIGN); }"<<="                   { count(); return(LEFT_ASSIGN); }"+="                    { count(); return(ADD_ASSIGN); }"-="                    { count(); return(SUB_ASSIGN); }"*="                    { count(); return(MUL_ASSIGN); }"/="                    { count(); return(DIV_ASSIGN); }"%="                    { count(); return(MOD_ASSIGN); }"&="                    { count(); return(AND_ASSIGN); }"^="                    { count(); return(XOR_ASSIGN); }"|="                    { count(); return(OR_ASSIGN); }">>"                    { count(); return(RIGHT_OP); }"<<"                    { count(); return(LEFT_OP); }"++"                    { count(); return(INC_OP); }"--"                    { count(); return(DEC_OP); }"->"                    { count(); return(PTR_OP); }"&&"                    { count(); return(AND_OP); }"||"                    { count(); return(OR_OP); }"<="                    { count(); return(LE_OP); }">="                    { count(); return(GE_OP); }"=="                    { count(); return(EQ_OP); }"!="                    { count(); return(NE_OP); }";"                     { count(); return(';'); }"{"                     { count(); return('{'); }"}"                     { count(); return('}'); }","                     { count(); return(','); }":"                     { count(); return(':'); }"="                     { count(); return('='); }"("                     { count(); return('('); }")"                     { count(); return(')'); }"["                     { count(); return('['); }"]"                     { count(); return(']'); }"."                     { count(); return('.'); }"&"                     { count(); return('&'); }"!"                     { count(); return('!'); }"~"                     { count(); return('~'); }"-"                     { count(); return('-'); }"+"                     { count(); return('+'); }"*"                     { count(); return('*'); }"/"                     { count(); return('/'); }"%"                     { count(); return('%'); }"<"                     { count(); return('<'); }">"                     { count(); return('>'); }"^"                     { count(); return('^'); }"|"                     { count(); return('|'); }"?"                     { count(); return('?'); }"..."                   { count(); return(ELIPSIS); }[ \t\v\f]               { count(); }[\n]                    { count(); lineno++; }.                       { /* ignore bad characters */ }%% yywrap(){        return(1);} comment(){        char c, c1; loop:        while ((c = input()) != '*' && c != 0)                putchar(c);         if ((c1 = input()) != '/' && c != 0)        {                unput(c1);                goto loop;        }         if (c != 0)                putchar(c1);}  int column = 0; void count(){        int i; /*        for (i = 0; yytext[i] != '\0'; i++)                if (yytext[i] == '\n')                        column = 0;                else if (yytext[i] == '\t')                        column += 8 - (column % 8);                else                        column++;         ECHO;*/} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -