forked from russlank/lang-forge
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcalc.l
More file actions
97 lines (78 loc) · 1.67 KB
/
Copy pathcalc.l
File metadata and controls
97 lines (78 loc) · 1.67 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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
DIGIT = [\0-\9];
NUMBER = DIGIT+ (\. DIGIT+)?;
BLANK = [1-32]+; /* Skipped characters */
%%
/************************************************************************/
NUMBER:
#{var
Value: Real;
Code: Integer;
begin
{YACC_Number}
with TTokenAttributes(AInfo)
do begin
Token := YACC_Number;
LexemeLen := ALex^.GetMatchedLexeme(Lexeme, MAXLEXEMESTRLENGTH);
Lexeme[LexemeLen] := #0;
Val( Lexeme, Value, Code)
end;
end;
#}
/************************************************************************/
\+:
#{
begin
{YACC_Plus}
TTokenAttributes(AInfo).Token := YACC_Plus;
end;
#}
/************************************************************************/
\-:
#{
begin
{YACC_Minus}
TTokenAttributes(AInfo).Token := YACC_Minus;
end;
#}
/************************************************************************/
\*:
#{
begin
{YACC_Mul}
TTokenAttributes(AInfo).Token := YACC_Mul;
end;
#}
/************************************************************************/
\/:
#{
begin
{YACC_Div}
TTokenAttributes(AInfo).Token := YACC_Div;
end;
#}
/************************************************************************/
\(:
#{
begin
{YACC_LB}
TTokenAttributes(AInfo).Token := YACC_LB;
end;
#}
/************************************************************************/
\):
#{
begin
{YACC_RB}
TTokenAttributes(AInfo).Token := YACC_RB;
end;
#}
/************************************************************************/
BLANK:
#{
begin
{BLANK}
AReturn := False;
end;
#}
/************************************************************************/
%%