Annotation of researchv10dc/cmd/cyntax/sets/sets.lex.l, revision 1.1

1.1     ! root        1: %start SOURCE COMMENT STRING CHAR DEFN SETDEFN INIT C_DEFN C_SETDEFN C_INIT
        !             2: 
        !             3: %{
        !             4: #include       "sets.h"
        !             5: 
        !             6: #define        RETURN          return (int)
        !             7: %}
        !             8: 
        !             9: A      [A-Za-z_]
        !            10: AN     [A-Za-z_0-9]
        !            11: X      [0-9A-Fa-f]
        !            12: D      [0-9]
        !            13: O      [0-7]
        !            14: WS     [ \t\n\f]+
        !            15: 
        !            16: %%
        !            17: 
        !            18: <SOURCE>"/*"           {
        !            19:                                ECHO;
        !            20:                                BEGIN COMMENT;
        !            21:                        }
        !            22: 
        !            23: <SOURCE>\"             {
        !            24:                                ECHO;
        !            25:                                BEGIN STRING;
        !            26:                        }
        !            27: 
        !            28: <SOURCE>"'"            {
        !            29:                                ECHO;
        !            30:                                BEGIN CHAR;
        !            31:                        }
        !            32: 
        !            33: <SOURCE>set            {
        !            34:                                BEGIN SETDEFN;
        !            35:                                RETURN sy_set;
        !            36:                        }
        !            37: 
        !            38: <SOURCE>typedef                {
        !            39:                                ECHO;
        !            40:                                BEGIN DEFN;
        !            41:                                RETURN sy_typedef;
        !            42:                        }
        !            43: 
        !            44: <SOURCE>enum           {
        !            45:                                ECHO;
        !            46:                                BEGIN DEFN;
        !            47:                                RETURN sy_enum;
        !            48:                        }
        !            49: 
        !            50: <SOURCE>{A}{AN}*       ECHO;
        !            51: 
        !            52: <SOURCE>"[["           {
        !            53:                                BEGIN INIT;
        !            54:                                RETURN sy_on_squares;
        !            55:                        }
        !            56: 
        !            57: <SOURCE>.              putchar(*yytext);
        !            58: 
        !            59: <STRING>\\\"           ECHO;
        !            60: 
        !            61: <STRING>\"             {
        !            62:                                ECHO;
        !            63:                                BEGIN SOURCE;
        !            64:                        }
        !            65: 
        !            66: <STRING>\\\\           ECHO;
        !            67: 
        !            68: <STRING>.              ECHO;
        !            69: 
        !            70: <CHAR>\\"'"            ECHO;
        !            71: 
        !            72: <CHAR>"'"              {
        !            73:                                ECHO;
        !            74:                                BEGIN SOURCE;
        !            75:                        }
        !            76: 
        !            77: <CHAR>\\\\             ECHO;
        !            78: 
        !            79: <CHAR>.                        ECHO;
        !            80: 
        !            81: <COMMENT>"*/"          {
        !            82:                                ECHO;
        !            83:                                BEGIN SOURCE;
        !            84:                        }
        !            85: 
        !            86: <COMMENT>.             ECHO;
        !            87: 
        !            88: <DEFN>"/*"             {
        !            89:                                ECHO;
        !            90:                                BEGIN C_DEFN;
        !            91:                        }
        !            92: 
        !            93: <DEFN>{WS}             ECHO;
        !            94: 
        !            95: <DEFN>enum             {
        !            96:                                ECHO;
        !            97:                                RETURN sy_enum;
        !            98:                        }
        !            99: 
        !           100: <DEFN>set              {
        !           101:                                BEGIN SETDEFN;
        !           102:                                RETURN sy_set;
        !           103:                        }
        !           104: 
        !           105: <DEFN>{A}{AN}*         {
        !           106:                                ECHO;
        !           107:                                RETURN sy_id;
        !           108:                        }
        !           109: 
        !           110: <DEFN>"{"              {
        !           111:                                ECHO;
        !           112:                                RETURN sy_on_curly;
        !           113:                        }
        !           114: 
        !           115: <DEFN>"}"              {
        !           116:                                ECHO;
        !           117:                                RETURN sy_off_curly;
        !           118:                        }
        !           119: 
        !           120: <DEFN>","              {
        !           121:                                ECHO;
        !           122:                                RETURN sy_comma;
        !           123:                        }
        !           124: 
        !           125: <DEFN>.                        {
        !           126:                                ECHO;
        !           127:                                fprintf(stderr, "%s: line %d, ignored unknown character (%s) in definition\n", myname, yylineno, print_char());
        !           128:                        }
        !           129: 
        !           130: <C_DEFN>"*/"           {
        !           131:                                ECHO;
        !           132:                                BEGIN DEFN;
        !           133:                        }
        !           134: 
        !           135: <C_DEFN>.              ECHO;
        !           136: 
        !           137: <SETDEFN>"/*"          {
        !           138:                                ECHO;
        !           139:                                BEGIN C_SETDEFN;
        !           140:                        }
        !           141: 
        !           142: <SETDEFN>{WS}          ECHO;
        !           143: 
        !           144: <SETDEFN>char          RETURN sy_char;
        !           145: 
        !           146: <SETDEFN>{A}{AN}*      RETURN sy_id;
        !           147: 
        !           148: <SETDEFN>.             fprintf(stderr, "%s: line %d, ignored unknown character (%s) in set definition\n", myname, yylineno, print_char());
        !           149: 
        !           150: <C_SETDEFN>"*/"                {
        !           151:                                ECHO;
        !           152:                                BEGIN SETDEFN;
        !           153:                        }
        !           154: 
        !           155: <C_SETDEFN>.           ECHO;
        !           156: 
        !           157: <INIT>"/*"             {
        !           158:                                ECHO;
        !           159:                                BEGIN C_INIT;
        !           160:                        }
        !           161: 
        !           162: <INIT>{WS}             ECHO;
        !           163: 
        !           164: <INIT>"]]"             {
        !           165:                                BEGIN SOURCE;
        !           166:                                RETURN sy_off_squares;
        !           167:                        }
        !           168: 
        !           169: <INIT>","              RETURN sy_comma;
        !           170: 
        !           171: <INIT>".."             RETURN sy_dot_dot;
        !           172: 
        !           173: <INIT>{A}{AN}*         RETURN sy_id;
        !           174: 
        !           175: <INIT>0[xX]{X}+                {
        !           176:                                sscanf(yytext + 2, "%x", &yylval);
        !           177:                                RETURN sy_int;
        !           178:                        }
        !           179: 
        !           180: <INIT>0{O}+            {
        !           181:                                sscanf(yytext, "%o", &yylval);
        !           182:                                RETURN sy_int;
        !           183:                        }
        !           184: 
        !           185: <INIT>{D}+             {
        !           186:                                sscanf(yytext, "%d", &yylval);
        !           187:                                RETURN sy_int;
        !           188:                        }
        !           189: 
        !           190: <INIT>'.'              {
        !           191:                                yylval = yytext[1];
        !           192:                                RETURN sy_int;
        !           193:                        }
        !           194: 
        !           195: <INIT>'\\{O}[{O}[{O}]]'        {
        !           196:                                sscanf(yytext + 2, "%o", &yylval);
        !           197:                                RETURN sy_int;
        !           198:                        }
        !           199: 
        !           200: <INIT>'\\.'            {
        !           201:                                switch (yytext[2])
        !           202:                                {
        !           203:                                case 'n':
        !           204:                                        yylval = '\n';
        !           205:                                        break;
        !           206: 
        !           207:                                case 't':
        !           208:                                        yylval = '\t';
        !           209:                                        break;
        !           210: 
        !           211:                                case 'b':
        !           212:                                        yylval = '\b';
        !           213:                                        break;
        !           214: 
        !           215:                                case 'r':
        !           216:                                        yylval = '\r';
        !           217:                                        break;
        !           218: 
        !           219:                                case 'f':
        !           220:                                        yylval = '\f';
        !           221:                                        break;
        !           222: 
        !           223:                                default:
        !           224:                                        yylval = yytext[2];
        !           225:                                        break;
        !           226:                                }
        !           227:                                RETURN sy_int;
        !           228:                        }
        !           229: 
        !           230: <INIT>.                        fprintf(stderr, "%s: line %d, ignored unknown character (%s) in set initialisation\n", myname, yylineno, print_char());
        !           231: 
        !           232: <C_INIT>"*/"           {
        !           233:                                ECHO;
        !           234:                                BEGIN INIT;
        !           235:                        }
        !           236: 
        !           237: <C_INIT>.              ECHO;
        !           238: 
        !           239: %%
        !           240: 
        !           241: begin_source()
        !           242: {
        !           243:        BEGIN SOURCE;
        !           244: }
        !           245: 
        !           246: begin_setdefn()
        !           247: {
        !           248:        BEGIN SETDEFN;
        !           249: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.