Лексер вроде норм

 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
Go{
<Lexer <GetSymbol File (1) (1)>>
}
Lexer {
(';' Other s.Line s.Col)e.Tail = (Semicolon (s.Line s.Col) ';' (s.Line <Inc s.Col>)) <Lexer e.Tail>;
(':' Other s.Line s.Col)e.Tail = (Colon (s.Line s.Col) ';' (s.Line <Inc s.Col>)) <Lexer e.Tail>;
('<' Other s.Line s.Col)e.Tail = (OpenCall (s.Line s.Col) '<' (s.Line <Inc s.Col>)) <Lexer e.Tail>;
('>' Other s.Line s.Col)e.Tail = (CloseCall (s.Line s.Col) '>' (s.Line <Inc s.Col>)) <Lexer e.Tail>;
('(' Other s.Line s.Col)e.Tail = (OpenBracket (s.Line s.Col) '(' (s.Line <Inc s.Col>)) <Lexer e.Tail>;
(')' Other s.Line s.Col)e.Tail = (CloseBracket (s.Line s.Col) ')' (s.Line <Inc s.Col>)) <Lexer e.Tail>;
('{' Other s.Line s.Col)e.Tail = (OpenBlock (s.Line s.Col) '{' (s.Line <Inc s.Col>)) <Lexer e.Tail>;
('}' Other s.Line s.Col)e.Tail = (CloseBlock (s.Line s.Col) '}' (s.Line <Inc s.Col>)) <Lexer e.Tail>;
('=' Other s.Line s.Col)e.Tail = (Assign (s.Line s.Col) '=' (s.Line <Inc s.Col>)) <Lexer e.Tail>;
('!' Other s.Line s.Col)e.Tail = (EOF (s.Line s.Col) '!' (s.Line <Inc s.Col>)) <Lexer e.Tail>;
('e' LoLetter s.Line s.Col)('.' Other s.Line1 s.Col1)e.Tail = (EVar (s.Line s.Col) e.<GetName e.Tail>;
('t' LoLetter s.Line s.Col)('.' Other s.Line1 s.Col1)e.Tail = (TVar (s.Line s.Col) t.<GetName e.Tail>;
('s' LoLetter s.Line s.Col)('.' Other s.Line1 s.Col1)e.Tail = (SVar (s.Line s.Col) s.<GetName e.Tail>;
(s.Char s.Class s.Line s.Col)(' ' s.Class1 s.Line1 s.Col1)e.Tail = (Char (s.Line s.Col) s.Char (s.Line1 s.Col1)) <Lexer e.Tail>;
(s.Char Digit s.Line s.Col)e.Tail = (Number (s.Line s.Col) s.Char<GetNumber e.Tail>;
(s.Char UpLetter s.Line s.Col)e.Tail = (Name (s.Line s.Col) s.Char<GetName e.Tail>;
}
GetNumber {
(s.Char Digit s.Line s.Col)e.Tail = s.Char<GetNumber e.Tail>;
(' ' Other s.Line s.Col)e.Tail = (s.Line s.Col))<Lexer e.Tail>;
e.Any = (s.Line s.Col))<Lexer e.Any>;
}
GetName {
(s.Char UpLetter s.Line s.Col)e.Tail = s.Char<GetName e.Tail>;
(s.Char LoLetter s.Line s.Col)e.Tail = s.Char<GetName e.Tail>;
('-' Other s.Line s.Col)e.Tail = s.Char<GetName e.Tail>;
(s.Char Digit s.Line s.Col)e.Tail = s.Char<GetName e.Tail>;
(' ' Other s.Line s.Col)e.Tail = (s.Line s.Col))<Lexer e.Tail>;
e.Any = (s.Line s.Col))<Lexer e.Any>;
}