-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlex.txt
More file actions
82 lines (77 loc) · 3.96 KB
/
lex.txt
File metadata and controls
82 lines (77 loc) · 3.96 KB
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
%{
#include "defs.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
%}
%option nounput yylineno
%%
"void" return VOID;
"main" retun MAIN;
"return" return RETURN;
"sabet" return CONSTANT;
"rakam" return INT;
"3ayem" return FLOAT;
"gomla" return STRING;
"7arf" return CHAR;
"bool" return BOOL;
"law" return IF;
"yeb2a" return THEN;
"laken" return ELSE;
"talama" return WHILE;
"e3mel" return DO;
"badel" return SWITCH;
"7alet" return CASE;
"el3ady" return DEFAULT;
"lef" return FOR;
"&&" return AND;
"||" return OR;
"!" return NOT;
"==" return EQUALEQUAL;
"!=" return NOTEQUAL;
">" return GREATERTHAN;
"<" return SMALLERTHAN;
">=" return GREATERTHANOREQUAL;
"<=" return SMALLERTHANOREQUAL;
";" return SEMI_COLON;
"(" return OPENED_BRACKET;
")" return CLOSED_BRACKET;
"{" return OPENED_BRACE;
"}" return CLOSED_BRACE;
"[" return OPENED_SQ_BRACKET;
"]" return CLOSED_SQ_BRACKET;
"," return COMMA;
":" return TWO_DOTS;
"+" return PLUS;
"-" return MINUS;
"*" return MULTIPLY;
"/" return DIVIDE;
"%" return REMAINDER;
"+=" return PLUS_EQUAL;
"-=" return MINUS_EQUAL;
"*=" return MULTIPLY_EQUAL;
"/=" return DIVIDE_EQUAL;
"++" return PLUS_PLUS;
"--" return MINUS_MINUS;
"=" return EQUAL;
[0-9]+ return INTVALUE;
[0-9]+\.[0-9]+ return FLOATVALUE;
[0-9]*\.[0-9]+ return FLOATVALUE;
[0-9]+\.[0-9]* return FLOATVALUE;
\".*\" return STRINGVALUE;
\'[a-zA-Z0-9]\' return CHARVALUE;
True|False return BOOLVALUE;
^[a-zA-Z][_a-zA-Z0-9]* return IDENTIFIER;
[ ][a-zA-Z][_a-zA-Z0-9]* return IDENTIFIER;
[ \t\n] ;
[0-9]+[a-zA-Z] return ERROR;
. return ERROR;
^[a-zA-Z][_a-zA-Z0-9]*\.[_a-zA-Z0-9]* return ERROR;
[ ][a-zA-Z][_a-zA-Z0-9]*\.[_a-zA-Z0-9]* return ERROR;
[0-9]+\.[0-9]+[_a-zA-Z0-9\.]* return ERROR;
[0-9]*\.[0-9]+[_a-zA-Z0-9\.]* return ERROR;
[0-9]+\.[0-9]*[_a-zA-Z0-9\.]* return ERROR;
%%
int yywrap(void){
return 1;
}