source: src/tok.l @ 4518a0b

Last change on this file since 4518a0b was 12743b9, checked in by Mateusz Hromada <ruanda@…>, 15 years ago

Migration to new build system. All tools need to be moved to ./src
directory and checked whether can be compiled by Makefile.

  • tok moved and checked
  • Property mode set to 100644
File size: 1.4 KB
RevLine 
[25ae32e]1%{
2        #include <stdio.h>
3        #include <locale.h>
[12743b9]4        #include "tok_cmdline.h"
[25ae32e]5
6        int filepos=0;
7
8        struct gengetopt_args_info args;
9
10%}
11
12
13%%
14
[635ee52]15[a-zA-Z±æê³ñ󶿌¡ÆÊ£ÑÓŠ¯¬]{1,64}        {
[25ae32e]16                                        printf("%04d %02d W %s\n", filepos, yyleng, yytext);
17                                        filepos+=yyleng;
18                                        if(args.interactive_flag) fflush(stdout);
19                                }
20
[635ee52]21[[:digit:]]{1,64}               {
[25ae32e]22                                        printf("%04d %02d N %s\n", filepos, yyleng, yytext);
23                                        filepos+=yyleng;
24                                        if(args.interactive_flag) fflush(stdout);
25                                }
26
[635ee52]27[[:space:]\n]{1,64}                     {
[25ae32e]28                                        int i;
29                                        printf("%04d %02d S ", filepos, yyleng);
30                                        for(i=0; i<yyleng; ++i)
31                                                switch(yytext[i])
32                                                {
33                                                        case ' ' : putchar('_'); break;
34                                                        case '\t': printf("\\t"); break;
35                                                        case '\n': printf("\\n"); break;
36                                                        case '\r': printf("\\t"); break;
37                                                        case '\f': printf("\\n"); break;
38                                                }
39                                        putchar('\n');
40                                        filepos+=yyleng;
41                                        if(args.interactive_flag) fflush(stdout);
42                                }
43
44[[:punct:]]                     {
45                                        printf("%04d %02d P %c\n", filepos, yyleng, *yytext);
46                                        filepos+=yyleng;
47                                        if(args.interactive_flag) fflush(stdout);
48                                }
49
50.                               {
51                                        printf("%04d %02d B \\x%02X\n", filepos, yyleng, (unsigned char)*yytext);
52                                        filepos+=yyleng;
53                                        if(args.interactive_flag) fflush(stdout);
54                                }
55
56%%
57
[12743b9]58int main(int argc, char** argv)
[25ae32e]59{
[12743b9]60  if (cmdline_parser(argc, argv, &args) != 0) return 1;
[25ae32e]61  setlocale(LC_CTYPE,"");
62  setlocale(LC_COLLATE,"");
63  yylex();
[12743b9]64  return 0;
[25ae32e]65}
66
67int yywrap()
68{
69        return 1;
70}
71
Note: See TracBrowser for help on using the repository browser.