File: lex.ll

package info (click to toggle)
pytorch 1.13.1%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 139,252 kB
  • sloc: cpp: 1,100,274; python: 706,454; ansic: 83,052; asm: 7,618; java: 3,273; sh: 2,841; javascript: 612; makefile: 323; xml: 269; ruby: 185; yacc: 144; objc: 68; lex: 44
file content (44 lines) | stat: -rw-r--r-- 1,605 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
%{
#include <string>
#include "caffe2/caffe2/opt/nql/ast.h"
#include "caffe2/caffe2/opt/nql/parse.yy.h"

#define SAVE_TOKEN yylval.pstr = allocString(); *yylval.pstr = std::string(yytext, yyleng)
#define SAVE_STR yylval.pstr = allocString(); *yylval.pstr = std::string(yytext, yyleng)
#define TOKEN(t) (yylval.token = t)

extern "C" int yywrap() { return 1; }

%}

%%

#.*\n                   ;
[ \t\n]                 ;
"def"                   return TOKEN(TDEF);
[a-zA-Z_][a-zA-Z0-9_]*  SAVE_STR; return TIDENTIFIER;
%[a-z_][a-z0-9_]*       SAVE_STR; return TVAR;
[0-9]+.[0-9]*           SAVE_STR; return TDOUBLE;
[0-9]+                  SAVE_STR; return TINTEGER;
"*"                     SAVE_STR; return TSTAR;
"="                     return TOKEN(TEQUAL);
"=="                    return TOKEN(TCEQ);
"!="                    return TOKEN(TCNE);
"<"                     return TOKEN(TCLT);
"<="                    return TOKEN(TCLE);
">"                     return TOKEN(TCGT);
">="                    return TOKEN(TCGE);
"("                     return TOKEN(TLPAREN);
")"                     return TOKEN(TRPAREN);
"{"                     return TOKEN(TLBRACE);
"}"                     return TOKEN(TRBRACE);
"."                     return TOKEN(TDOT);
","                     return TOKEN(TCOMMA);
"+"                     return TOKEN(TPLUS);
"-"                     return TOKEN(TMINUS);
"/"                     return TOKEN(TDIV);
":"                     return TOKEN(TCOLON);
";"                     return TOKEN(TSEMICOLON);
.                       printf("Unknown token!\n"); yyterminate();

%%