| Server IP : 85.214.239.14 / Your IP : 216.73.216.178 Web Server : Apache/2.4.65 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 8.2.29 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/self/root/usr/share/doc/re2c/examples/rust/real_world/ |
Upload File : |
/* Generated by re2c */
// re2rust -W $INPUT -o $OUTPUT --no-unsafe
// This example is based on a public domain C lex grammar originally
// hosted at http://www.quut.com/c/ANSI-C-grammar-l.html
// It has, however, been significantly modified.
// A real C lexer in a modern compiler typically postprocesses a tokenization
// step performed by the preprocessor. This example isn't actually practically
// usable as-is, and would require significant work to turn into part of a real
// C compiler.
// As with the original from quut.com, this grammar presupposes translation for
// phases 1 to 5 have already been performed, though it also still handles
// comments. It does handle string concatenation though in a sort of
// half-hearted manner.
// We specify unicode here to make the code in this example more interesting.
// We use the "ignore" Unicode encoding policy (which is the default anyway)
// because the Rust input routine we use is already checking for surrogates.
use std::fmt;
// Errors type
#[derive(Debug, Clone)]
struct LexError {
message: String,
token_text: String,
line: usize,
column: usize,
}
impl fmt::Display for LexError {
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> {
write!(f, "{}: {} ({}:{})",
self.message, self.token_text, self.line, self.column)
}
}
// The default definitions for the Error methods are fine.
impl std::error::Error for LexError { }
#[derive(Debug, Clone)]
#[allow(dead_code)] // silence 'field in not used' warnings
struct Position {
// What line are we on? (starts on line 0.)
line_num: usize,
// What is the index of the first character on the line?
bol: usize,
// What is the index of the current token?
start: usize,
// What is the index of the end of the current token?
end: usize,
}
// All the different kinds of tokens.
#[derive(Debug, Clone, Eq, PartialEq)]
enum TName {
// General
//Error(String),
Comment,
Whitespace,
Newline,
// Ids.
Id,
TypeId,
EnumId,
// Constants
IntConst,
FloatConst,
StringLiteral,
// Keywords
Alignas,
Alignof,
Atomic,
Bool,
Complex,
Generic,
Imaginary,
Noreturn,
StaticAssert,
ThreadLocal,
Auto,
Break,
Case,
Char,
Const,
Continue,
Default,
Do,
Double,
Else,
Enum,
Extern,
Float,
For,
Goto,
If,
Inline,
Int,
Long,
Register,
Restrict,
Return,
Short,
Signed,
Sizeof,
Static,
Struct,
Switch,
Typedef,
Union,
Unsigned,
Void,
Volatile,
While,
// Punctuators
Ellipsis,
RSAsgn,
LSAsgn,
AddAsgn,
SubAsgn,
MulAsgn,
DivAsgn,
ModAsgn,
BAndAsgn,
BXorAsgn,
BOrAsgn,
RShift,
LShift,
Incr,
Decr,
Arrow,
LAnd,
LOr,
LE,
GE,
Eq,
NEq,
Semi,
OBrace,
CBrace,
Comma,
Colon,
Asgn,
OParen,
CParen,
OBrack,
CBrack,
Dot,
Amper,
LNot,
BNot,
Sub,
Add,
Aster,
Div,
Mod,
LT,
GT,
BXor,
BOr,
Ques,
}
#[derive(Debug, Clone)]
#[allow(dead_code)] // silence 'field in not used' warnings
struct Token {
tname: TName,
text: String,
position: Position,
}
#[derive(Debug, Clone)]
enum SymType {
#[allow(dead_code)] // silence 'variant is never constructed' warning
TypeName,
#[allow(dead_code)] // silence 'variant is never constructed' warning
EnumConst,
Identifier,
}
// C lexers (unfortunately) need information from the symbol table to return
// the correct token type, because an identifier could be a type name. (This
// ambiguity is a big source of trouble in C.) This is a fake "sym_type" that
// always returns Identifer. It needs to be fixed to actually hook into the
// parser's symbol table if this lexer is used in the real world.
fn sym_type(_ident: &str) -> SymType {
SymType::Identifier
}
#[derive(Debug, Clone)]
struct Input {
data: Vec<u8>,
cursor: usize,
token: usize,
marker: usize,
line: usize,
bol: usize,
eof: bool,
}
impl Input {
fn new(s: String) -> Input {
let data = s.into_bytes();
Input {
data: data,
cursor: 0,
token: 0,
marker: 0,
line: 0,
bol: 0,
eof: false,
}
}
// text of the current token
fn current_ttext(&self) -> String {
// for maximum performance, this should actually be from_utf8_unchecked
String::from_utf8(self.data[self.token..self.cursor].to_vec()).unwrap()
}
fn token(&mut self, tname: TName) -> Result<Option<Token>, LexError> {
let text = self.current_ttext();
let position = Position {
line_num: self.line,
bol: self.bol,
start: self.token,
end: self.cursor,
};
let lines = match tname {
TName::Comment => text.lines().count() - 1,
// We may have multiple string literals separated by
// newlines or the like to fuse.
TName::StringLiteral => text.lines().count() - 1,
TName::Newline => 1,
_ => 0,
};
if tname == TName::Newline {
self.bol = self.cursor;
} else if lines > 0 {
// the unwrap should only fail if we have a bad bug.
self.bol = self.data[0..self.cursor]
.iter().rposition(|bytes| *bytes == b'\n')
.unwrap();
};
self.line += lines;
Ok(Some(Token {
tname,
text,
position,
}))
}
fn error(&self, s: &str) -> Result<Option<Token>, LexError> {
Err(LexError {
message: s.to_string(),
token_text: self.current_ttext(),
line: self.line,
column: self.cursor - self.bol,
})
}
// Tells us whether an identifier is a type name, an enum constant, or an
// ordinary identifier.
fn check_type(&mut self) -> Result<Option<Token>, LexError> {
let text = self.current_ttext();
match sym_type(&text) {
SymType::TypeName => self.token(TName::TypeId),
SymType::EnumConst => self.token(TName::EnumId),
SymType::Identifier => self.token(TName::Id),
}
}
}
// Some of this lexer was taken from the C lex grammar at
// http://www.quut.com/c/ANSI-C-grammar-l.html
fn next_token(input: &mut Input) -> Result<Option<Token>, LexError> {
if input.eof { return Ok(None) }
input.token = input.cursor;
{
#[allow(unused_assignments)]
let mut yych : u8 = 0;
let mut yyaccept : usize = 0;
let mut yystate : usize = 0;
'yyl: loop {
match yystate {
0 => {
yych = input.data[input.cursor];
input.cursor += 1;
match yych {
0x00 => {
yystate = 1;
continue 'yyl;
}
0x09 |
0x0B ..= 0x0C |
0x20 => {
yystate = 4;
continue 'yyl;
}
0x0A => {
yystate = 6;
continue 'yyl;
}
0x21 => {
yystate = 7;
continue 'yyl;
}
0x22 => {
yystate = 9;
continue 'yyl;
}
0x25 => {
yystate = 11;
continue 'yyl;
}
0x26 => {
yystate = 13;
continue 'yyl;
}
0x27 => {
yystate = 15;
continue 'yyl;
}
0x28 => {
yystate = 16;
continue 'yyl;
}
0x29 => {
yystate = 17;
continue 'yyl;
}
0x2A => {
yystate = 18;
continue 'yyl;
}
0x2B => {
yystate = 20;
continue 'yyl;
}
0x2C => {
yystate = 22;
continue 'yyl;
}
0x2D => {
yystate = 23;
continue 'yyl;
}
0x2E => {
yystate = 25;
continue 'yyl;
}
0x2F => {
yystate = 27;
continue 'yyl;
}
0x30 => {
yystate = 29;
continue 'yyl;
}
0x31 ..= 0x39 => {
yystate = 31;
continue 'yyl;
}
0x3A => {
yystate = 33;
continue 'yyl;
}
0x3B => {
yystate = 34;
continue 'yyl;
}
0x3C => {
yystate = 35;
continue 'yyl;
}
0x3D => {
yystate = 37;
continue 'yyl;
}
0x3E => {
yystate = 39;
continue 'yyl;
}
0x3F => {
yystate = 41;
continue 'yyl;
}
0x41 ..= 0x4B |
0x4D ..= 0x54 |
0x56 ..= 0x5A |
0x68 |
0x6A ..= 0x6B |
0x6D ..= 0x71 |
0x78 ..= 0x7A => {
yystate = 42;
continue 'yyl;
}
0x4C |
0x55 => {
yystate = 45;
continue 'yyl;
}
0x5B => {
yystate = 46;
continue 'yyl;
}
0x5D => {
yystate = 47;
continue 'yyl;
}
0x5E => {
yystate = 48;
continue 'yyl;
}
0x5F => {
yystate = 50;
continue 'yyl;
}
0x61 => {
yystate = 51;
continue 'yyl;
}
0x62 => {
yystate = 52;
continue 'yyl;
}
0x63 => {
yystate = 53;
continue 'yyl;
}
0x64 => {
yystate = 54;
continue 'yyl;
}
0x65 => {
yystate = 55;
continue 'yyl;
}
0x66 => {
yystate = 56;
continue 'yyl;
}
0x67 => {
yystate = 57;
continue 'yyl;
}
0x69 => {
yystate = 58;
continue 'yyl;
}
0x6C => {
yystate = 59;
continue 'yyl;
}
0x72 => {
yystate = 60;
continue 'yyl;
}
0x73 => {
yystate = 61;
continue 'yyl;
}
0x74 => {
yystate = 62;
continue 'yyl;
}
0x75 => {
yystate = 63;
continue 'yyl;
}
0x76 => {
yystate = 64;
continue 'yyl;
}
0x77 => {
yystate = 65;
continue 'yyl;
}
0x7B => {
yystate = 66;
continue 'yyl;
}
0x7C => {
yystate = 67;
continue 'yyl;
}
0x7D => {
yystate = 69;
continue 'yyl;
}
0x7E => {
yystate = 70;
continue 'yyl;
}
_ => {
yystate = 2;
continue 'yyl;
}
}
}
1 => { input.eof = true; return Ok(None); }
2 => {
yystate = 3;
continue 'yyl;
}
3 => { return input.error("bad character") }
4 => {
yych = input.data[input.cursor];
match yych {
0x09 |
0x0B ..= 0x0C |
0x20 => {
input.cursor += 1;
yystate = 4;
continue 'yyl;
}
_ => {
yystate = 5;
continue 'yyl;
}
}
}
5 => { return input.token(TName::Whitespace) }
6 => { return input.token(TName::Newline) }
7 => {
yych = input.data[input.cursor];
match yych {
0x3D => {
input.cursor += 1;
yystate = 71;
continue 'yyl;
}
_ => {
yystate = 8;
continue 'yyl;
}
}
}
8 => { return input.token(TName::LNot) }
9 => {
yyaccept = 0;
input.marker = input.cursor;
yych = input.data[input.cursor];
match yych {
0x01 ..= 0x09 |
0x0B ..= 0x21 |
0x23 ..= 0x5B |
0x5D ..= 0x7F => {
input.cursor += 1;
yystate = 9;
continue 'yyl;
}
0x22 => {
input.cursor += 1;
yystate = 72;
continue 'yyl;
}
0x5C => {
input.cursor += 1;
yystate = 74;
continue 'yyl;
}
0xC2 ..= 0xDF => {
input.cursor += 1;
yystate = 76;
continue 'yyl;
}
0xE0 => {
input.cursor += 1;
yystate = 77;
continue 'yyl;
}
0xE1 ..= 0xEF => {
input.cursor += 1;
yystate = 78;
continue 'yyl;
}
0xF0 => {
input.cursor += 1;
yystate = 79;
continue 'yyl;
}
0xF1 ..= 0xF3 => {
input.cursor += 1;
yystate = 80;
continue 'yyl;
}
0xF4 => {
input.cursor += 1;
yystate = 81;
continue 'yyl;
}
_ => {
yystate = 10;
continue 'yyl;
}
}
}
10 => {
return input.error("unterminated string")
}
11 => {
yych = input.data[input.cursor];
match yych {
0x3D => {
input.cursor += 1;
yystate = 82;
continue 'yyl;
}
_ => {
yystate = 12;
continue 'yyl;
}
}
}
12 => { return input.token(TName::Mod) }
13 => {
yych = input.data[input.cursor];
match yych {
0x26 => {
input.cursor += 1;
yystate = 83;
continue 'yyl;
}
0x3D => {
input.cursor += 1;
yystate = 84;
continue 'yyl;
}
_ => {
yystate = 14;
continue 'yyl;
}
}
}
14 => { return input.token(TName::Amper) }
15 => {
yyaccept = 1;
input.marker = input.cursor;
yych = input.data[input.cursor];
match yych {
0x01 ..= 0x09 |
0x0B ..= 0x26 |
0x28 ..= 0x7F |
0xC2 ..= 0xF4 => {
yystate = 86;
continue 'yyl;
}
_ => {
yystate = 3;
continue 'yyl;
}
}
}
16 => { return input.token(TName::OParen) }
17 => { return input.token(TName::CParen) }
18 => {
yych = input.data[input.cursor];
match yych {
0x3D => {
input.cursor += 1;
yystate = 95;
continue 'yyl;
}
_ => {
yystate = 19;
continue 'yyl;
}
}
}
19 => { return input.token(TName::Aster) }
20 => {
yych = input.data[input.cursor];
match yych {
0x2B => {
input.cursor += 1;
yystate = 96;
continue 'yyl;
}
0x3D => {
input.cursor += 1;
yystate = 97;
continue 'yyl;
}
_ => {
yystate = 21;
continue 'yyl;
}
}
}
21 => { return input.token(TName::Add) }
22 => { return input.token(TName::Comma) }
23 => {
yych = input.data[input.cursor];
match yych {
0x2D => {
input.cursor += 1;
yystate = 98;
continue 'yyl;
}
0x3D => {
input.cursor += 1;
yystate = 99;
continue 'yyl;
}
0x3E => {
input.cursor += 1;
yystate = 100;
continue 'yyl;
}
_ => {
yystate = 24;
continue 'yyl;
}
}
}
24 => { return input.token(TName::Sub) }
25 => {
yyaccept = 2;
input.marker = input.cursor;
yych = input.data[input.cursor];
match yych {
0x2E => {
input.cursor += 1;
yystate = 101;
continue 'yyl;
}
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 102;
continue 'yyl;
}
_ => {
yystate = 26;
continue 'yyl;
}
}
}
26 => { return input.token(TName::Dot) }
27 => {
yych = input.data[input.cursor];
match yych {
0x2A => {
input.cursor += 1;
yystate = 104;
continue 'yyl;
}
0x2F => {
input.cursor += 1;
yystate = 106;
continue 'yyl;
}
0x3D => {
input.cursor += 1;
yystate = 108;
continue 'yyl;
}
_ => {
yystate = 28;
continue 'yyl;
}
}
}
28 => { return input.token(TName::Div) }
29 => {
yyaccept = 3;
input.marker = input.cursor;
yych = input.data[input.cursor];
match yych {
0x58 |
0x78 => {
input.cursor += 1;
yystate = 117;
continue 'yyl;
}
_ => {
yystate = 112;
continue 'yyl;
}
}
}
30 => { return input.token(TName::IntConst) }
31 => {
yyaccept = 4;
input.marker = input.cursor;
yych = input.data[input.cursor];
match yych {
0x2E => {
input.cursor += 1;
yystate = 109;
continue 'yyl;
}
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 31;
continue 'yyl;
}
0x45 |
0x65 => {
input.cursor += 1;
yystate = 114;
continue 'yyl;
}
0x4C => {
input.cursor += 1;
yystate = 119;
continue 'yyl;
}
0x55 |
0x75 => {
input.cursor += 1;
yystate = 120;
continue 'yyl;
}
0x6C => {
input.cursor += 1;
yystate = 121;
continue 'yyl;
}
_ => {
yystate = 32;
continue 'yyl;
}
}
}
32 => { return input.token(TName::IntConst) }
33 => { return input.token(TName::Colon) }
34 => { return input.token(TName::Semi) }
35 => {
yych = input.data[input.cursor];
match yych {
0x3C => {
input.cursor += 1;
yystate = 122;
continue 'yyl;
}
0x3D => {
input.cursor += 1;
yystate = 124;
continue 'yyl;
}
_ => {
yystate = 36;
continue 'yyl;
}
}
}
36 => { return input.token(TName::LT) }
37 => {
yych = input.data[input.cursor];
match yych {
0x3D => {
input.cursor += 1;
yystate = 125;
continue 'yyl;
}
_ => {
yystate = 38;
continue 'yyl;
}
}
}
38 => { return input.token(TName::Asgn) }
39 => {
yych = input.data[input.cursor];
match yych {
0x3D => {
input.cursor += 1;
yystate = 126;
continue 'yyl;
}
0x3E => {
input.cursor += 1;
yystate = 127;
continue 'yyl;
}
_ => {
yystate = 40;
continue 'yyl;
}
}
}
40 => { return input.token(TName::GT) }
41 => { return input.token(TName::Ques) }
42 => {
yych = input.data[input.cursor];
yystate = 43;
continue 'yyl;
}
43 => {
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 44;
continue 'yyl;
}
}
}
44 => { return input.check_type() }
45 => {
yyaccept = 5;
input.marker = input.cursor;
yych = input.data[input.cursor];
match yych {
0x22 => {
input.cursor += 1;
yystate = 9;
continue 'yyl;
}
0x27 => {
input.cursor += 1;
yystate = 129;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
46 => { return input.token(TName::OBrack) }
47 => { return input.token(TName::CBrack) }
48 => {
yych = input.data[input.cursor];
match yych {
0x3D => {
input.cursor += 1;
yystate = 130;
continue 'yyl;
}
_ => {
yystate = 49;
continue 'yyl;
}
}
}
49 => { return input.token(TName::BXor) }
50 => {
yych = input.data[input.cursor];
match yych {
0x41 => {
input.cursor += 1;
yystate = 131;
continue 'yyl;
}
0x42 => {
input.cursor += 1;
yystate = 132;
continue 'yyl;
}
0x43 => {
input.cursor += 1;
yystate = 133;
continue 'yyl;
}
0x47 => {
input.cursor += 1;
yystate = 134;
continue 'yyl;
}
0x49 => {
input.cursor += 1;
yystate = 135;
continue 'yyl;
}
0x4E => {
input.cursor += 1;
yystate = 136;
continue 'yyl;
}
0x53 => {
input.cursor += 1;
yystate = 137;
continue 'yyl;
}
0x54 => {
input.cursor += 1;
yystate = 138;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
51 => {
yych = input.data[input.cursor];
match yych {
0x75 => {
input.cursor += 1;
yystate = 139;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
52 => {
yych = input.data[input.cursor];
match yych {
0x72 => {
input.cursor += 1;
yystate = 140;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
53 => {
yych = input.data[input.cursor];
match yych {
0x61 => {
input.cursor += 1;
yystate = 141;
continue 'yyl;
}
0x68 => {
input.cursor += 1;
yystate = 142;
continue 'yyl;
}
0x6F => {
input.cursor += 1;
yystate = 143;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
54 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 144;
continue 'yyl;
}
0x6F => {
input.cursor += 1;
yystate = 145;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
55 => {
yych = input.data[input.cursor];
match yych {
0x6C => {
input.cursor += 1;
yystate = 147;
continue 'yyl;
}
0x6E => {
input.cursor += 1;
yystate = 148;
continue 'yyl;
}
0x78 => {
input.cursor += 1;
yystate = 149;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
56 => {
yych = input.data[input.cursor];
match yych {
0x6C => {
input.cursor += 1;
yystate = 150;
continue 'yyl;
}
0x6F => {
input.cursor += 1;
yystate = 151;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
57 => {
yych = input.data[input.cursor];
match yych {
0x6F => {
input.cursor += 1;
yystate = 152;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
58 => {
yych = input.data[input.cursor];
match yych {
0x66 => {
input.cursor += 1;
yystate = 153;
continue 'yyl;
}
0x6E => {
input.cursor += 1;
yystate = 155;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
59 => {
yych = input.data[input.cursor];
match yych {
0x6F => {
input.cursor += 1;
yystate = 156;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
60 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 157;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
61 => {
yych = input.data[input.cursor];
match yych {
0x68 => {
input.cursor += 1;
yystate = 158;
continue 'yyl;
}
0x69 => {
input.cursor += 1;
yystate = 159;
continue 'yyl;
}
0x74 => {
input.cursor += 1;
yystate = 160;
continue 'yyl;
}
0x77 => {
input.cursor += 1;
yystate = 161;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
62 => {
yych = input.data[input.cursor];
match yych {
0x79 => {
input.cursor += 1;
yystate = 162;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
63 => {
yyaccept = 5;
input.marker = input.cursor;
yych = input.data[input.cursor];
match yych {
0x22 => {
input.cursor += 1;
yystate = 9;
continue 'yyl;
}
0x27 => {
input.cursor += 1;
yystate = 129;
continue 'yyl;
}
0x38 => {
input.cursor += 1;
yystate = 163;
continue 'yyl;
}
0x6E => {
input.cursor += 1;
yystate = 164;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
64 => {
yych = input.data[input.cursor];
match yych {
0x6F => {
input.cursor += 1;
yystate = 165;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
65 => {
yych = input.data[input.cursor];
match yych {
0x68 => {
input.cursor += 1;
yystate = 166;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
66 => { return input.token(TName::OBrace) }
67 => {
yych = input.data[input.cursor];
match yych {
0x3D => {
input.cursor += 1;
yystate = 167;
continue 'yyl;
}
0x7C => {
input.cursor += 1;
yystate = 168;
continue 'yyl;
}
_ => {
yystate = 68;
continue 'yyl;
}
}
}
68 => { return input.token(TName::BOr) }
69 => { return input.token(TName::CBrace) }
70 => { return input.token(TName::BNot) }
71 => { return input.token(TName::NEq) }
72 => {
yyaccept = 6;
input.marker = input.cursor;
yych = input.data[input.cursor];
match yych {
0x09 ..= 0x0C |
0x20 => {
input.cursor += 1;
yystate = 72;
continue 'yyl;
}
0x22 => {
input.cursor += 1;
yystate = 169;
continue 'yyl;
}
0x4C |
0x55 => {
input.cursor += 1;
yystate = 170;
continue 'yyl;
}
0x75 => {
input.cursor += 1;
yystate = 171;
continue 'yyl;
}
_ => {
yystate = 73;
continue 'yyl;
}
}
}
73 => {
return input.token(TName::StringLiteral)
}
74 => {
yych = input.data[input.cursor];
match yych {
0x22 |
0x27 |
0x30 ..= 0x37 |
0x3F |
0x5C |
0x61 ..= 0x62 |
0x66 |
0x6E |
0x72 |
0x74 |
0x76 => {
input.cursor += 1;
yystate = 9;
continue 'yyl;
}
0x78 => {
input.cursor += 1;
yystate = 172;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
75 => {
input.cursor = input.marker;
match yyaccept {
0 => {
yystate = 10;
continue 'yyl;
}
1 => {
yystate = 3;
continue 'yyl;
}
2 => {
yystate = 26;
continue 'yyl;
}
3 => {
yystate = 30;
continue 'yyl;
}
4 => {
yystate = 32;
continue 'yyl;
}
5 => {
yystate = 44;
continue 'yyl;
}
6 => {
yystate = 73;
continue 'yyl;
}
7 => {
yystate = 87;
continue 'yyl;
}
8 => {
yystate = 103;
continue 'yyl;
}
9 => {
yystate = 105;
continue 'yyl;
}
10 => {
yystate = 107;
continue 'yyl;
}
11 => {
yystate = 110;
continue 'yyl;
}
12 => {
yystate = 202;
continue 'yyl;
}
_ => {
yystate = 262;
continue 'yyl;
}
}
}
76 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0xBF => {
input.cursor += 1;
yystate = 9;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
77 => {
yych = input.data[input.cursor];
match yych {
0xA0 ..= 0xBF => {
input.cursor += 1;
yystate = 76;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
78 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0xBF => {
input.cursor += 1;
yystate = 76;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
79 => {
yych = input.data[input.cursor];
match yych {
0x90 ..= 0xBF => {
input.cursor += 1;
yystate = 78;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
80 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0xBF => {
input.cursor += 1;
yystate = 78;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
81 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0x8F => {
input.cursor += 1;
yystate = 78;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
82 => { return input.token(TName::ModAsgn) }
83 => { return input.token(TName::LAnd) }
84 => { return input.token(TName::BAndAsgn) }
85 => {
yyaccept = 7;
input.marker = input.cursor;
yych = input.data[input.cursor];
yystate = 86;
continue 'yyl;
}
86 => {
match yych {
0x01 ..= 0x09 |
0x0B ..= 0x26 |
0x28 ..= 0x5B |
0x5D ..= 0x7F => {
input.cursor += 1;
yystate = 85;
continue 'yyl;
}
0x27 => {
input.cursor += 1;
yystate = 173;
continue 'yyl;
}
0x5C => {
input.cursor += 1;
yystate = 88;
continue 'yyl;
}
0xC2 ..= 0xDF => {
input.cursor += 1;
yystate = 89;
continue 'yyl;
}
0xE0 => {
input.cursor += 1;
yystate = 90;
continue 'yyl;
}
0xE1 ..= 0xEF => {
input.cursor += 1;
yystate = 91;
continue 'yyl;
}
0xF0 => {
input.cursor += 1;
yystate = 92;
continue 'yyl;
}
0xF1 ..= 0xF3 => {
input.cursor += 1;
yystate = 93;
continue 'yyl;
}
0xF4 => {
input.cursor += 1;
yystate = 94;
continue 'yyl;
}
_ => {
yystate = 87;
continue 'yyl;
}
}
}
87 => {
return input.error("unterminated character constant")
}
88 => {
yych = input.data[input.cursor];
match yych {
0x22 |
0x27 |
0x30 ..= 0x37 |
0x3F |
0x5C |
0x61 ..= 0x62 |
0x66 |
0x6E |
0x72 |
0x74 |
0x76 => {
input.cursor += 1;
yystate = 85;
continue 'yyl;
}
0x78 => {
input.cursor += 1;
yystate = 174;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
89 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0xBF => {
input.cursor += 1;
yystate = 85;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
90 => {
yych = input.data[input.cursor];
match yych {
0xA0 ..= 0xBF => {
input.cursor += 1;
yystate = 89;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
91 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0xBF => {
input.cursor += 1;
yystate = 89;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
92 => {
yych = input.data[input.cursor];
match yych {
0x90 ..= 0xBF => {
input.cursor += 1;
yystate = 91;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
93 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0xBF => {
input.cursor += 1;
yystate = 91;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
94 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0x8F => {
input.cursor += 1;
yystate = 91;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
95 => { return input.token(TName::MulAsgn) }
96 => { return input.token(TName::Incr) }
97 => { return input.token(TName::AddAsgn) }
98 => { return input.token(TName::Decr) }
99 => { return input.token(TName::SubAsgn) }
100 => { return input.token(TName::Arrow) }
101 => {
yych = input.data[input.cursor];
match yych {
0x2E => {
input.cursor += 1;
yystate = 175;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
102 => {
yyaccept = 8;
input.marker = input.cursor;
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 102;
continue 'yyl;
}
0x45 |
0x65 => {
input.cursor += 1;
yystate = 176;
continue 'yyl;
}
0x46 |
0x4C |
0x66 |
0x6C => {
input.cursor += 1;
yystate = 177;
continue 'yyl;
}
_ => {
yystate = 103;
continue 'yyl;
}
}
}
103 => { return input.token(TName::FloatConst) }
104 => {
yyaccept = 9;
input.marker = input.cursor;
yych = input.data[input.cursor];
match yych {
0x01 ..= 0x29 |
0x2B ..= 0x7F => {
input.cursor += 1;
yystate = 104;
continue 'yyl;
}
0x2A => {
input.cursor += 1;
yystate = 178;
continue 'yyl;
}
0xC2 ..= 0xDF => {
input.cursor += 1;
yystate = 179;
continue 'yyl;
}
0xE0 => {
input.cursor += 1;
yystate = 180;
continue 'yyl;
}
0xE1 ..= 0xEF => {
input.cursor += 1;
yystate = 181;
continue 'yyl;
}
0xF0 => {
input.cursor += 1;
yystate = 182;
continue 'yyl;
}
0xF1 ..= 0xF3 => {
input.cursor += 1;
yystate = 183;
continue 'yyl;
}
0xF4 => {
input.cursor += 1;
yystate = 184;
continue 'yyl;
}
_ => {
yystate = 105;
continue 'yyl;
}
}
}
105 => {
return input.error("unterminated comment")
}
106 => {
yyaccept = 10;
input.marker = input.cursor;
yych = input.data[input.cursor];
match yych {
0x01 ..= 0x09 |
0x0B ..= 0x7F => {
input.cursor += 1;
yystate = 106;
continue 'yyl;
}
0xC2 ..= 0xDF => {
input.cursor += 1;
yystate = 185;
continue 'yyl;
}
0xE0 => {
input.cursor += 1;
yystate = 186;
continue 'yyl;
}
0xE1 ..= 0xEF => {
input.cursor += 1;
yystate = 187;
continue 'yyl;
}
0xF0 => {
input.cursor += 1;
yystate = 188;
continue 'yyl;
}
0xF1 ..= 0xF3 => {
input.cursor += 1;
yystate = 189;
continue 'yyl;
}
0xF4 => {
input.cursor += 1;
yystate = 190;
continue 'yyl;
}
_ => {
yystate = 107;
continue 'yyl;
}
}
}
107 => { return input.token(TName::Comment) }
108 => { return input.token(TName::DivAsgn) }
109 => {
yyaccept = 11;
input.marker = input.cursor;
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 102;
continue 'yyl;
}
0x45 |
0x65 => {
input.cursor += 1;
yystate = 191;
continue 'yyl;
}
0x46 |
0x4C |
0x66 |
0x6C => {
input.cursor += 1;
yystate = 192;
continue 'yyl;
}
_ => {
yystate = 110;
continue 'yyl;
}
}
}
110 => { return input.token(TName::FloatConst) }
111 => {
yyaccept = 3;
input.marker = input.cursor;
yych = input.data[input.cursor];
yystate = 112;
continue 'yyl;
}
112 => {
match yych {
0x2E => {
input.cursor += 1;
yystate = 109;
continue 'yyl;
}
0x30 ..= 0x37 => {
input.cursor += 1;
yystate = 111;
continue 'yyl;
}
0x38 ..= 0x39 => {
input.cursor += 1;
yystate = 113;
continue 'yyl;
}
0x45 |
0x65 => {
input.cursor += 1;
yystate = 114;
continue 'yyl;
}
0x4C => {
input.cursor += 1;
yystate = 115;
continue 'yyl;
}
0x55 |
0x75 => {
input.cursor += 1;
yystate = 116;
continue 'yyl;
}
0x6C => {
input.cursor += 1;
yystate = 118;
continue 'yyl;
}
_ => {
yystate = 30;
continue 'yyl;
}
}
}
113 => {
yych = input.data[input.cursor];
match yych {
0x2E => {
input.cursor += 1;
yystate = 109;
continue 'yyl;
}
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 113;
continue 'yyl;
}
0x45 |
0x65 => {
input.cursor += 1;
yystate = 114;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
114 => {
yych = input.data[input.cursor];
match yych {
0x2B |
0x2D => {
input.cursor += 1;
yystate = 193;
continue 'yyl;
}
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 194;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
115 => {
yych = input.data[input.cursor];
match yych {
0x4C => {
input.cursor += 1;
yystate = 196;
continue 'yyl;
}
0x55 |
0x75 => {
input.cursor += 1;
yystate = 197;
continue 'yyl;
}
_ => {
yystate = 30;
continue 'yyl;
}
}
}
116 => {
yych = input.data[input.cursor];
match yych {
0x4C => {
input.cursor += 1;
yystate = 198;
continue 'yyl;
}
0x6C => {
input.cursor += 1;
yystate = 199;
continue 'yyl;
}
_ => {
yystate = 30;
continue 'yyl;
}
}
}
117 => {
yych = input.data[input.cursor];
match yych {
0x2E => {
input.cursor += 1;
yystate = 200;
continue 'yyl;
}
0x30 ..= 0x39 |
0x41 ..= 0x46 |
0x61 ..= 0x66 => {
input.cursor += 1;
yystate = 201;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
118 => {
yych = input.data[input.cursor];
match yych {
0x55 |
0x75 => {
input.cursor += 1;
yystate = 197;
continue 'yyl;
}
0x6C => {
input.cursor += 1;
yystate = 196;
continue 'yyl;
}
_ => {
yystate = 30;
continue 'yyl;
}
}
}
119 => {
yych = input.data[input.cursor];
match yych {
0x4C => {
input.cursor += 1;
yystate = 203;
continue 'yyl;
}
0x55 |
0x75 => {
input.cursor += 1;
yystate = 204;
continue 'yyl;
}
_ => {
yystate = 32;
continue 'yyl;
}
}
}
120 => {
yych = input.data[input.cursor];
match yych {
0x4C => {
input.cursor += 1;
yystate = 205;
continue 'yyl;
}
0x6C => {
input.cursor += 1;
yystate = 206;
continue 'yyl;
}
_ => {
yystate = 32;
continue 'yyl;
}
}
}
121 => {
yych = input.data[input.cursor];
match yych {
0x55 |
0x75 => {
input.cursor += 1;
yystate = 204;
continue 'yyl;
}
0x6C => {
input.cursor += 1;
yystate = 203;
continue 'yyl;
}
_ => {
yystate = 32;
continue 'yyl;
}
}
}
122 => {
yych = input.data[input.cursor];
match yych {
0x3D => {
input.cursor += 1;
yystate = 207;
continue 'yyl;
}
_ => {
yystate = 123;
continue 'yyl;
}
}
}
123 => { return input.token(TName::LShift) }
124 => { return input.token(TName::LE) }
125 => { return input.token(TName::Eq) }
126 => { return input.token(TName::GE) }
127 => {
yych = input.data[input.cursor];
match yych {
0x3D => {
input.cursor += 1;
yystate = 208;
continue 'yyl;
}
_ => {
yystate = 128;
continue 'yyl;
}
}
}
128 => { return input.token(TName::RShift) }
129 => {
yych = input.data[input.cursor];
match yych {
0x01 ..= 0x09 |
0x0B ..= 0x26 |
0x28 ..= 0x7F |
0xC2 ..= 0xF4 => {
yystate = 86;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
130 => { return input.token(TName::BXorAsgn) }
131 => {
yych = input.data[input.cursor];
match yych {
0x6C => {
input.cursor += 1;
yystate = 209;
continue 'yyl;
}
0x74 => {
input.cursor += 1;
yystate = 210;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
132 => {
yych = input.data[input.cursor];
match yych {
0x6F => {
input.cursor += 1;
yystate = 211;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
133 => {
yych = input.data[input.cursor];
match yych {
0x6F => {
input.cursor += 1;
yystate = 212;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
134 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 213;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
135 => {
yych = input.data[input.cursor];
match yych {
0x6D => {
input.cursor += 1;
yystate = 214;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
136 => {
yych = input.data[input.cursor];
match yych {
0x6F => {
input.cursor += 1;
yystate = 215;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
137 => {
yych = input.data[input.cursor];
match yych {
0x74 => {
input.cursor += 1;
yystate = 216;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
138 => {
yych = input.data[input.cursor];
match yych {
0x68 => {
input.cursor += 1;
yystate = 217;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
139 => {
yych = input.data[input.cursor];
match yych {
0x74 => {
input.cursor += 1;
yystate = 218;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
140 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 219;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
141 => {
yych = input.data[input.cursor];
match yych {
0x73 => {
input.cursor += 1;
yystate = 220;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
142 => {
yych = input.data[input.cursor];
match yych {
0x61 => {
input.cursor += 1;
yystate = 221;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
143 => {
yych = input.data[input.cursor];
match yych {
0x6E => {
input.cursor += 1;
yystate = 222;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
144 => {
yych = input.data[input.cursor];
match yych {
0x66 => {
input.cursor += 1;
yystate = 223;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
145 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x74 |
0x76 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
0x75 => {
input.cursor += 1;
yystate = 224;
continue 'yyl;
}
_ => {
yystate = 146;
continue 'yyl;
}
}
}
146 => { return input.token(TName::Do) }
147 => {
yych = input.data[input.cursor];
match yych {
0x73 => {
input.cursor += 1;
yystate = 225;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
148 => {
yych = input.data[input.cursor];
match yych {
0x75 => {
input.cursor += 1;
yystate = 226;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
149 => {
yych = input.data[input.cursor];
match yych {
0x74 => {
input.cursor += 1;
yystate = 227;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
150 => {
yych = input.data[input.cursor];
match yych {
0x6F => {
input.cursor += 1;
yystate = 228;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
151 => {
yych = input.data[input.cursor];
match yych {
0x72 => {
input.cursor += 1;
yystate = 229;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
152 => {
yych = input.data[input.cursor];
match yych {
0x74 => {
input.cursor += 1;
yystate = 231;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
153 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 154;
continue 'yyl;
}
}
}
154 => { return input.token(TName::If) }
155 => {
yych = input.data[input.cursor];
match yych {
0x6C => {
input.cursor += 1;
yystate = 232;
continue 'yyl;
}
0x74 => {
input.cursor += 1;
yystate = 233;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
156 => {
yych = input.data[input.cursor];
match yych {
0x6E => {
input.cursor += 1;
yystate = 235;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
157 => {
yych = input.data[input.cursor];
match yych {
0x67 => {
input.cursor += 1;
yystate = 236;
continue 'yyl;
}
0x73 => {
input.cursor += 1;
yystate = 237;
continue 'yyl;
}
0x74 => {
input.cursor += 1;
yystate = 238;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
158 => {
yych = input.data[input.cursor];
match yych {
0x6F => {
input.cursor += 1;
yystate = 239;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
159 => {
yych = input.data[input.cursor];
match yych {
0x67 => {
input.cursor += 1;
yystate = 240;
continue 'yyl;
}
0x7A => {
input.cursor += 1;
yystate = 241;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
160 => {
yych = input.data[input.cursor];
match yych {
0x61 => {
input.cursor += 1;
yystate = 242;
continue 'yyl;
}
0x72 => {
input.cursor += 1;
yystate = 243;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
161 => {
yych = input.data[input.cursor];
match yych {
0x69 => {
input.cursor += 1;
yystate = 244;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
162 => {
yych = input.data[input.cursor];
match yych {
0x70 => {
input.cursor += 1;
yystate = 245;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
163 => {
yych = input.data[input.cursor];
match yych {
0x22 => {
input.cursor += 1;
yystate = 9;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
164 => {
yych = input.data[input.cursor];
match yych {
0x69 => {
input.cursor += 1;
yystate = 246;
continue 'yyl;
}
0x73 => {
input.cursor += 1;
yystate = 247;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
165 => {
yych = input.data[input.cursor];
match yych {
0x69 => {
input.cursor += 1;
yystate = 248;
continue 'yyl;
}
0x6C => {
input.cursor += 1;
yystate = 249;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
166 => {
yych = input.data[input.cursor];
match yych {
0x69 => {
input.cursor += 1;
yystate = 250;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
167 => { return input.token(TName::BOrAsgn) }
168 => { return input.token(TName::LOr) }
169 => {
yych = input.data[input.cursor];
match yych {
0x01 ..= 0x09 |
0x0B ..= 0x21 |
0x23 ..= 0x5B |
0x5D ..= 0x7F => {
input.cursor += 1;
yystate = 169;
continue 'yyl;
}
0x22 => {
input.cursor += 1;
yystate = 72;
continue 'yyl;
}
0x5C => {
input.cursor += 1;
yystate = 251;
continue 'yyl;
}
0xC2 ..= 0xDF => {
input.cursor += 1;
yystate = 252;
continue 'yyl;
}
0xE0 => {
input.cursor += 1;
yystate = 253;
continue 'yyl;
}
0xE1 ..= 0xEF => {
input.cursor += 1;
yystate = 254;
continue 'yyl;
}
0xF0 => {
input.cursor += 1;
yystate = 255;
continue 'yyl;
}
0xF1 ..= 0xF3 => {
input.cursor += 1;
yystate = 256;
continue 'yyl;
}
0xF4 => {
input.cursor += 1;
yystate = 257;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
170 => {
yych = input.data[input.cursor];
match yych {
0x22 => {
input.cursor += 1;
yystate = 169;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
171 => {
yych = input.data[input.cursor];
match yych {
0x22 => {
input.cursor += 1;
yystate = 169;
continue 'yyl;
}
0x38 => {
input.cursor += 1;
yystate = 170;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
172 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x46 |
0x61 ..= 0x66 => {
input.cursor += 1;
yystate = 9;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
173 => { return input.token(TName::IntConst) }
174 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x46 |
0x61 ..= 0x66 => {
input.cursor += 1;
yystate = 85;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
175 => { return input.token(TName::Ellipsis) }
176 => {
yych = input.data[input.cursor];
match yych {
0x2B |
0x2D => {
input.cursor += 1;
yystate = 258;
continue 'yyl;
}
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 259;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
177 => {
yystate = 103;
continue 'yyl;
}
178 => {
yych = input.data[input.cursor];
match yych {
0x01 ..= 0x29 |
0x2B ..= 0x2E |
0x30 ..= 0x7F => {
input.cursor += 1;
yystate = 104;
continue 'yyl;
}
0x2A => {
input.cursor += 1;
yystate = 260;
continue 'yyl;
}
0x2F => {
input.cursor += 1;
yystate = 261;
continue 'yyl;
}
0xC2 ..= 0xDF => {
input.cursor += 1;
yystate = 179;
continue 'yyl;
}
0xE0 => {
input.cursor += 1;
yystate = 180;
continue 'yyl;
}
0xE1 ..= 0xEF => {
input.cursor += 1;
yystate = 181;
continue 'yyl;
}
0xF0 => {
input.cursor += 1;
yystate = 182;
continue 'yyl;
}
0xF1 ..= 0xF3 => {
input.cursor += 1;
yystate = 183;
continue 'yyl;
}
0xF4 => {
input.cursor += 1;
yystate = 184;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
179 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0xBF => {
input.cursor += 1;
yystate = 104;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
180 => {
yych = input.data[input.cursor];
match yych {
0xA0 ..= 0xBF => {
input.cursor += 1;
yystate = 179;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
181 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0xBF => {
input.cursor += 1;
yystate = 179;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
182 => {
yych = input.data[input.cursor];
match yych {
0x90 ..= 0xBF => {
input.cursor += 1;
yystate = 181;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
183 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0xBF => {
input.cursor += 1;
yystate = 181;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
184 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0x8F => {
input.cursor += 1;
yystate = 181;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
185 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0xBF => {
input.cursor += 1;
yystate = 106;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
186 => {
yych = input.data[input.cursor];
match yych {
0xA0 ..= 0xBF => {
input.cursor += 1;
yystate = 185;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
187 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0xBF => {
input.cursor += 1;
yystate = 185;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
188 => {
yych = input.data[input.cursor];
match yych {
0x90 ..= 0xBF => {
input.cursor += 1;
yystate = 187;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
189 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0xBF => {
input.cursor += 1;
yystate = 187;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
190 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0x8F => {
input.cursor += 1;
yystate = 187;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
191 => {
yych = input.data[input.cursor];
match yych {
0x2B |
0x2D => {
input.cursor += 1;
yystate = 263;
continue 'yyl;
}
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 264;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
192 => {
yystate = 110;
continue 'yyl;
}
193 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 194;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
194 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 194;
continue 'yyl;
}
0x46 |
0x4C |
0x66 |
0x6C => {
input.cursor += 1;
yystate = 265;
continue 'yyl;
}
_ => {
yystate = 195;
continue 'yyl;
}
}
}
195 => { return input.token(TName::FloatConst) }
196 => {
yych = input.data[input.cursor];
match yych {
0x55 |
0x75 => {
input.cursor += 1;
yystate = 197;
continue 'yyl;
}
_ => {
yystate = 30;
continue 'yyl;
}
}
}
197 => {
yystate = 30;
continue 'yyl;
}
198 => {
yych = input.data[input.cursor];
match yych {
0x4C => {
input.cursor += 1;
yystate = 197;
continue 'yyl;
}
_ => {
yystate = 30;
continue 'yyl;
}
}
}
199 => {
yych = input.data[input.cursor];
match yych {
0x6C => {
input.cursor += 1;
yystate = 197;
continue 'yyl;
}
_ => {
yystate = 30;
continue 'yyl;
}
}
}
200 => {
yych = input.data[input.cursor];
match yych {
0x50 |
0x70 => {
yystate = 75;
continue 'yyl;
}
_ => {
yystate = 267;
continue 'yyl;
}
}
}
201 => {
yyaccept = 12;
input.marker = input.cursor;
yych = input.data[input.cursor];
match yych {
0x2E => {
input.cursor += 1;
yystate = 268;
continue 'yyl;
}
0x30 ..= 0x39 |
0x41 ..= 0x46 |
0x61 ..= 0x66 => {
input.cursor += 1;
yystate = 201;
continue 'yyl;
}
0x4C => {
input.cursor += 1;
yystate = 269;
continue 'yyl;
}
0x50 |
0x70 => {
input.cursor += 1;
yystate = 270;
continue 'yyl;
}
0x55 |
0x75 => {
input.cursor += 1;
yystate = 271;
continue 'yyl;
}
0x6C => {
input.cursor += 1;
yystate = 272;
continue 'yyl;
}
_ => {
yystate = 202;
continue 'yyl;
}
}
}
202 => { return input.token(TName::IntConst) }
203 => {
yych = input.data[input.cursor];
match yych {
0x55 |
0x75 => {
input.cursor += 1;
yystate = 204;
continue 'yyl;
}
_ => {
yystate = 32;
continue 'yyl;
}
}
}
204 => {
yystate = 32;
continue 'yyl;
}
205 => {
yych = input.data[input.cursor];
match yych {
0x4C => {
input.cursor += 1;
yystate = 204;
continue 'yyl;
}
_ => {
yystate = 32;
continue 'yyl;
}
}
}
206 => {
yych = input.data[input.cursor];
match yych {
0x6C => {
input.cursor += 1;
yystate = 204;
continue 'yyl;
}
_ => {
yystate = 32;
continue 'yyl;
}
}
}
207 => { return input.token(TName::LSAsgn) }
208 => { return input.token(TName::RSAsgn) }
209 => {
yych = input.data[input.cursor];
match yych {
0x69 => {
input.cursor += 1;
yystate = 273;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
210 => {
yych = input.data[input.cursor];
match yych {
0x6F => {
input.cursor += 1;
yystate = 274;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
211 => {
yych = input.data[input.cursor];
match yych {
0x6F => {
input.cursor += 1;
yystate = 275;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
212 => {
yych = input.data[input.cursor];
match yych {
0x6D => {
input.cursor += 1;
yystate = 276;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
213 => {
yych = input.data[input.cursor];
match yych {
0x6E => {
input.cursor += 1;
yystate = 277;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
214 => {
yych = input.data[input.cursor];
match yych {
0x61 => {
input.cursor += 1;
yystate = 278;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
215 => {
yych = input.data[input.cursor];
match yych {
0x72 => {
input.cursor += 1;
yystate = 279;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
216 => {
yych = input.data[input.cursor];
match yych {
0x61 => {
input.cursor += 1;
yystate = 280;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
217 => {
yych = input.data[input.cursor];
match yych {
0x72 => {
input.cursor += 1;
yystate = 281;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
218 => {
yych = input.data[input.cursor];
match yych {
0x6F => {
input.cursor += 1;
yystate = 282;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
219 => {
yych = input.data[input.cursor];
match yych {
0x61 => {
input.cursor += 1;
yystate = 284;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
220 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 285;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
221 => {
yych = input.data[input.cursor];
match yych {
0x72 => {
input.cursor += 1;
yystate = 287;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
222 => {
yych = input.data[input.cursor];
match yych {
0x73 => {
input.cursor += 1;
yystate = 289;
continue 'yyl;
}
0x74 => {
input.cursor += 1;
yystate = 290;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
223 => {
yych = input.data[input.cursor];
match yych {
0x61 => {
input.cursor += 1;
yystate = 291;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
224 => {
yych = input.data[input.cursor];
match yych {
0x62 => {
input.cursor += 1;
yystate = 292;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
225 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 293;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
226 => {
yych = input.data[input.cursor];
match yych {
0x6D => {
input.cursor += 1;
yystate = 295;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
227 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 297;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
228 => {
yych = input.data[input.cursor];
match yych {
0x61 => {
input.cursor += 1;
yystate = 298;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
229 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 230;
continue 'yyl;
}
}
}
230 => { return input.token(TName::For) }
231 => {
yych = input.data[input.cursor];
match yych {
0x6F => {
input.cursor += 1;
yystate = 299;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
232 => {
yych = input.data[input.cursor];
match yych {
0x69 => {
input.cursor += 1;
yystate = 301;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
233 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 234;
continue 'yyl;
}
}
}
234 => { return input.token(TName::Int) }
235 => {
yych = input.data[input.cursor];
match yych {
0x67 => {
input.cursor += 1;
yystate = 302;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
236 => {
yych = input.data[input.cursor];
match yych {
0x69 => {
input.cursor += 1;
yystate = 304;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
237 => {
yych = input.data[input.cursor];
match yych {
0x74 => {
input.cursor += 1;
yystate = 305;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
238 => {
yych = input.data[input.cursor];
match yych {
0x75 => {
input.cursor += 1;
yystate = 306;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
239 => {
yych = input.data[input.cursor];
match yych {
0x72 => {
input.cursor += 1;
yystate = 307;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
240 => {
yych = input.data[input.cursor];
match yych {
0x6E => {
input.cursor += 1;
yystate = 308;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
241 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 309;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
242 => {
yych = input.data[input.cursor];
match yych {
0x74 => {
input.cursor += 1;
yystate = 310;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
243 => {
yych = input.data[input.cursor];
match yych {
0x75 => {
input.cursor += 1;
yystate = 311;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
244 => {
yych = input.data[input.cursor];
match yych {
0x74 => {
input.cursor += 1;
yystate = 312;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
245 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 313;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
246 => {
yych = input.data[input.cursor];
match yych {
0x6F => {
input.cursor += 1;
yystate = 314;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
247 => {
yych = input.data[input.cursor];
match yych {
0x69 => {
input.cursor += 1;
yystate = 315;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
248 => {
yych = input.data[input.cursor];
match yych {
0x64 => {
input.cursor += 1;
yystate = 316;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
249 => {
yych = input.data[input.cursor];
match yych {
0x61 => {
input.cursor += 1;
yystate = 318;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
250 => {
yych = input.data[input.cursor];
match yych {
0x6C => {
input.cursor += 1;
yystate = 319;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
251 => {
yych = input.data[input.cursor];
match yych {
0x22 |
0x27 |
0x30 ..= 0x37 |
0x3F |
0x5C |
0x61 ..= 0x62 |
0x66 |
0x6E |
0x72 |
0x74 |
0x76 => {
input.cursor += 1;
yystate = 169;
continue 'yyl;
}
0x78 => {
input.cursor += 1;
yystate = 320;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
252 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0xBF => {
input.cursor += 1;
yystate = 169;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
253 => {
yych = input.data[input.cursor];
match yych {
0xA0 ..= 0xBF => {
input.cursor += 1;
yystate = 252;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
254 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0xBF => {
input.cursor += 1;
yystate = 252;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
255 => {
yych = input.data[input.cursor];
match yych {
0x90 ..= 0xBF => {
input.cursor += 1;
yystate = 254;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
256 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0xBF => {
input.cursor += 1;
yystate = 254;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
257 => {
yych = input.data[input.cursor];
match yych {
0x80 ..= 0x8F => {
input.cursor += 1;
yystate = 254;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
258 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 259;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
259 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 259;
continue 'yyl;
}
0x46 |
0x4C |
0x66 |
0x6C => {
input.cursor += 1;
yystate = 177;
continue 'yyl;
}
_ => {
yystate = 103;
continue 'yyl;
}
}
}
260 => {
yyaccept = 9;
input.marker = input.cursor;
yych = input.data[input.cursor];
match yych {
0x01 ..= 0x29 |
0x2B ..= 0x2E |
0x30 ..= 0x7F => {
input.cursor += 1;
yystate = 104;
continue 'yyl;
}
0x2A => {
input.cursor += 1;
yystate = 260;
continue 'yyl;
}
0x2F => {
input.cursor += 1;
yystate = 321;
continue 'yyl;
}
0xC2 ..= 0xDF => {
input.cursor += 1;
yystate = 179;
continue 'yyl;
}
0xE0 => {
input.cursor += 1;
yystate = 180;
continue 'yyl;
}
0xE1 ..= 0xEF => {
input.cursor += 1;
yystate = 181;
continue 'yyl;
}
0xF0 => {
input.cursor += 1;
yystate = 182;
continue 'yyl;
}
0xF1 ..= 0xF3 => {
input.cursor += 1;
yystate = 183;
continue 'yyl;
}
0xF4 => {
input.cursor += 1;
yystate = 184;
continue 'yyl;
}
_ => {
yystate = 105;
continue 'yyl;
}
}
}
261 => {
yystate = 262;
continue 'yyl;
}
262 => {
return input.token(TName::Comment)
}
263 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 264;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
264 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 264;
continue 'yyl;
}
0x46 |
0x4C |
0x66 |
0x6C => {
input.cursor += 1;
yystate = 192;
continue 'yyl;
}
_ => {
yystate = 110;
continue 'yyl;
}
}
}
265 => {
yystate = 195;
continue 'yyl;
}
266 => {
yych = input.data[input.cursor];
yystate = 267;
continue 'yyl;
}
267 => {
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x46 |
0x61 ..= 0x66 => {
input.cursor += 1;
yystate = 266;
continue 'yyl;
}
0x50 |
0x70 => {
input.cursor += 1;
yystate = 322;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
268 => {
yych = input.data[input.cursor];
match yych {
0x50 |
0x70 => {
input.cursor += 1;
yystate = 323;
continue 'yyl;
}
_ => {
yystate = 267;
continue 'yyl;
}
}
}
269 => {
yych = input.data[input.cursor];
match yych {
0x4C => {
input.cursor += 1;
yystate = 324;
continue 'yyl;
}
0x55 |
0x75 => {
input.cursor += 1;
yystate = 325;
continue 'yyl;
}
_ => {
yystate = 202;
continue 'yyl;
}
}
}
270 => {
yych = input.data[input.cursor];
match yych {
0x2B |
0x2D => {
input.cursor += 1;
yystate = 326;
continue 'yyl;
}
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 327;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
271 => {
yych = input.data[input.cursor];
match yych {
0x4C => {
input.cursor += 1;
yystate = 329;
continue 'yyl;
}
0x6C => {
input.cursor += 1;
yystate = 330;
continue 'yyl;
}
_ => {
yystate = 202;
continue 'yyl;
}
}
}
272 => {
yych = input.data[input.cursor];
match yych {
0x55 |
0x75 => {
input.cursor += 1;
yystate = 325;
continue 'yyl;
}
0x6C => {
input.cursor += 1;
yystate = 324;
continue 'yyl;
}
_ => {
yystate = 202;
continue 'yyl;
}
}
}
273 => {
yych = input.data[input.cursor];
match yych {
0x67 => {
input.cursor += 1;
yystate = 331;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
274 => {
yych = input.data[input.cursor];
match yych {
0x6D => {
input.cursor += 1;
yystate = 332;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
275 => {
yych = input.data[input.cursor];
match yych {
0x6C => {
input.cursor += 1;
yystate = 333;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
276 => {
yych = input.data[input.cursor];
match yych {
0x70 => {
input.cursor += 1;
yystate = 335;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
277 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 336;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
278 => {
yych = input.data[input.cursor];
match yych {
0x67 => {
input.cursor += 1;
yystate = 337;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
279 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 338;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
280 => {
yych = input.data[input.cursor];
match yych {
0x74 => {
input.cursor += 1;
yystate = 339;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
281 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 340;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
282 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 283;
continue 'yyl;
}
}
}
283 => { return input.token(TName::Auto) }
284 => {
yych = input.data[input.cursor];
match yych {
0x6B => {
input.cursor += 1;
yystate = 341;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
285 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 286;
continue 'yyl;
}
}
}
286 => { return input.token(TName::Case) }
287 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 288;
continue 'yyl;
}
}
}
288 => { return input.token(TName::Char) }
289 => {
yych = input.data[input.cursor];
match yych {
0x74 => {
input.cursor += 1;
yystate = 343;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
290 => {
yych = input.data[input.cursor];
match yych {
0x69 => {
input.cursor += 1;
yystate = 345;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
291 => {
yych = input.data[input.cursor];
match yych {
0x75 => {
input.cursor += 1;
yystate = 346;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
292 => {
yych = input.data[input.cursor];
match yych {
0x6C => {
input.cursor += 1;
yystate = 347;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
293 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 294;
continue 'yyl;
}
}
}
294 => { return input.token(TName::Else) }
295 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 296;
continue 'yyl;
}
}
}
296 => { return input.token(TName::Enum) }
297 => {
yych = input.data[input.cursor];
match yych {
0x72 => {
input.cursor += 1;
yystate = 348;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
298 => {
yych = input.data[input.cursor];
match yych {
0x74 => {
input.cursor += 1;
yystate = 349;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
299 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 300;
continue 'yyl;
}
}
}
300 => { return input.token(TName::Goto) }
301 => {
yych = input.data[input.cursor];
match yych {
0x6E => {
input.cursor += 1;
yystate = 351;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
302 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 303;
continue 'yyl;
}
}
}
303 => { return input.token(TName::Long) }
304 => {
yych = input.data[input.cursor];
match yych {
0x73 => {
input.cursor += 1;
yystate = 352;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
305 => {
yych = input.data[input.cursor];
match yych {
0x72 => {
input.cursor += 1;
yystate = 353;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
306 => {
yych = input.data[input.cursor];
match yych {
0x72 => {
input.cursor += 1;
yystate = 354;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
307 => {
yych = input.data[input.cursor];
match yych {
0x74 => {
input.cursor += 1;
yystate = 355;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
308 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 357;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
309 => {
yych = input.data[input.cursor];
match yych {
0x6F => {
input.cursor += 1;
yystate = 358;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
310 => {
yych = input.data[input.cursor];
match yych {
0x69 => {
input.cursor += 1;
yystate = 359;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
311 => {
yych = input.data[input.cursor];
match yych {
0x63 => {
input.cursor += 1;
yystate = 360;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
312 => {
yych = input.data[input.cursor];
match yych {
0x63 => {
input.cursor += 1;
yystate = 361;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
313 => {
yych = input.data[input.cursor];
match yych {
0x64 => {
input.cursor += 1;
yystate = 362;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
314 => {
yych = input.data[input.cursor];
match yych {
0x6E => {
input.cursor += 1;
yystate = 363;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
315 => {
yych = input.data[input.cursor];
match yych {
0x67 => {
input.cursor += 1;
yystate = 365;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
316 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 317;
continue 'yyl;
}
}
}
317 => { return input.token(TName::Void) }
318 => {
yych = input.data[input.cursor];
match yych {
0x74 => {
input.cursor += 1;
yystate = 366;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
319 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 367;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
320 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x46 |
0x61 ..= 0x66 => {
input.cursor += 1;
yystate = 169;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
321 => {
yyaccept = 13;
input.marker = input.cursor;
yych = input.data[input.cursor];
match yych {
0x01 ..= 0x29 |
0x2B ..= 0x7F => {
input.cursor += 1;
yystate = 104;
continue 'yyl;
}
0x2A => {
input.cursor += 1;
yystate = 178;
continue 'yyl;
}
0xC2 ..= 0xDF => {
input.cursor += 1;
yystate = 179;
continue 'yyl;
}
0xE0 => {
input.cursor += 1;
yystate = 180;
continue 'yyl;
}
0xE1 ..= 0xEF => {
input.cursor += 1;
yystate = 181;
continue 'yyl;
}
0xF0 => {
input.cursor += 1;
yystate = 182;
continue 'yyl;
}
0xF1 ..= 0xF3 => {
input.cursor += 1;
yystate = 183;
continue 'yyl;
}
0xF4 => {
input.cursor += 1;
yystate = 184;
continue 'yyl;
}
_ => {
yystate = 262;
continue 'yyl;
}
}
}
322 => {
yych = input.data[input.cursor];
match yych {
0x2B |
0x2D => {
input.cursor += 1;
yystate = 369;
continue 'yyl;
}
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 370;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
323 => {
yych = input.data[input.cursor];
match yych {
0x2B |
0x2D => {
input.cursor += 1;
yystate = 372;
continue 'yyl;
}
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 373;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
324 => {
yych = input.data[input.cursor];
match yych {
0x55 |
0x75 => {
input.cursor += 1;
yystate = 325;
continue 'yyl;
}
_ => {
yystate = 202;
continue 'yyl;
}
}
}
325 => {
yystate = 202;
continue 'yyl;
}
326 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 327;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
327 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 327;
continue 'yyl;
}
0x46 |
0x4C |
0x66 |
0x6C => {
input.cursor += 1;
yystate = 375;
continue 'yyl;
}
_ => {
yystate = 328;
continue 'yyl;
}
}
}
328 => { return input.token(TName::FloatConst) }
329 => {
yych = input.data[input.cursor];
match yych {
0x4C => {
input.cursor += 1;
yystate = 325;
continue 'yyl;
}
_ => {
yystate = 202;
continue 'yyl;
}
}
}
330 => {
yych = input.data[input.cursor];
match yych {
0x6C => {
input.cursor += 1;
yystate = 325;
continue 'yyl;
}
_ => {
yystate = 202;
continue 'yyl;
}
}
}
331 => {
yych = input.data[input.cursor];
match yych {
0x6E => {
input.cursor += 1;
yystate = 376;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
332 => {
yych = input.data[input.cursor];
match yych {
0x69 => {
input.cursor += 1;
yystate = 377;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
333 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 334;
continue 'yyl;
}
}
}
334 => { return input.token(TName::Bool) }
335 => {
yych = input.data[input.cursor];
match yych {
0x6C => {
input.cursor += 1;
yystate = 378;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
336 => {
yych = input.data[input.cursor];
match yych {
0x72 => {
input.cursor += 1;
yystate = 379;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
337 => {
yych = input.data[input.cursor];
match yych {
0x69 => {
input.cursor += 1;
yystate = 380;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
338 => {
yych = input.data[input.cursor];
match yych {
0x74 => {
input.cursor += 1;
yystate = 381;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
339 => {
yych = input.data[input.cursor];
match yych {
0x69 => {
input.cursor += 1;
yystate = 382;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
340 => {
yych = input.data[input.cursor];
match yych {
0x61 => {
input.cursor += 1;
yystate = 383;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
341 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 342;
continue 'yyl;
}
}
}
342 => { return input.token(TName::Break) }
343 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 344;
continue 'yyl;
}
}
}
344 => { return input.token(TName::Const) }
345 => {
yych = input.data[input.cursor];
match yych {
0x6E => {
input.cursor += 1;
yystate = 384;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
346 => {
yych = input.data[input.cursor];
match yych {
0x6C => {
input.cursor += 1;
yystate = 385;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
347 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 386;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
348 => {
yych = input.data[input.cursor];
match yych {
0x6E => {
input.cursor += 1;
yystate = 388;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
349 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 350;
continue 'yyl;
}
}
}
350 => { return input.token(TName::Float) }
351 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 390;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
352 => {
yych = input.data[input.cursor];
match yych {
0x74 => {
input.cursor += 1;
yystate = 392;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
353 => {
yych = input.data[input.cursor];
match yych {
0x69 => {
input.cursor += 1;
yystate = 393;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
354 => {
yych = input.data[input.cursor];
match yych {
0x6E => {
input.cursor += 1;
yystate = 394;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
355 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 356;
continue 'yyl;
}
}
}
356 => { return input.token(TName::Short) }
357 => {
yych = input.data[input.cursor];
match yych {
0x64 => {
input.cursor += 1;
yystate = 396;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
358 => {
yych = input.data[input.cursor];
match yych {
0x66 => {
input.cursor += 1;
yystate = 398;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
359 => {
yych = input.data[input.cursor];
match yych {
0x63 => {
input.cursor += 1;
yystate = 400;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
360 => {
yych = input.data[input.cursor];
match yych {
0x74 => {
input.cursor += 1;
yystate = 402;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
361 => {
yych = input.data[input.cursor];
match yych {
0x68 => {
input.cursor += 1;
yystate = 404;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
362 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 406;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
363 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 364;
continue 'yyl;
}
}
}
364 => { return input.token(TName::Union) }
365 => {
yych = input.data[input.cursor];
match yych {
0x6E => {
input.cursor += 1;
yystate = 407;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
366 => {
yych = input.data[input.cursor];
match yych {
0x69 => {
input.cursor += 1;
yystate = 408;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
367 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 368;
continue 'yyl;
}
}
}
368 => { return input.token(TName::While) }
369 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 370;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
370 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 370;
continue 'yyl;
}
0x46 |
0x4C |
0x66 |
0x6C => {
input.cursor += 1;
yystate = 409;
continue 'yyl;
}
_ => {
yystate = 371;
continue 'yyl;
}
}
}
371 => { return input.token(TName::FloatConst) }
372 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 373;
continue 'yyl;
}
_ => {
yystate = 75;
continue 'yyl;
}
}
}
373 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 => {
input.cursor += 1;
yystate = 373;
continue 'yyl;
}
0x46 |
0x4C |
0x66 |
0x6C => {
input.cursor += 1;
yystate = 410;
continue 'yyl;
}
_ => {
yystate = 374;
continue 'yyl;
}
}
}
374 => { return input.token(TName::FloatConst) }
375 => {
yystate = 328;
continue 'yyl;
}
376 => {
yych = input.data[input.cursor];
match yych {
0x61 => {
input.cursor += 1;
yystate = 411;
continue 'yyl;
}
0x6F => {
input.cursor += 1;
yystate = 412;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
377 => {
yych = input.data[input.cursor];
match yych {
0x63 => {
input.cursor += 1;
yystate = 413;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
378 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 415;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
379 => {
yych = input.data[input.cursor];
match yych {
0x69 => {
input.cursor += 1;
yystate = 416;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
380 => {
yych = input.data[input.cursor];
match yych {
0x6E => {
input.cursor += 1;
yystate = 417;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
381 => {
yych = input.data[input.cursor];
match yych {
0x75 => {
input.cursor += 1;
yystate = 418;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
382 => {
yych = input.data[input.cursor];
match yych {
0x63 => {
input.cursor += 1;
yystate = 419;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
383 => {
yych = input.data[input.cursor];
match yych {
0x64 => {
input.cursor += 1;
yystate = 420;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
384 => {
yych = input.data[input.cursor];
match yych {
0x75 => {
input.cursor += 1;
yystate = 421;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
385 => {
yych = input.data[input.cursor];
match yych {
0x74 => {
input.cursor += 1;
yystate = 422;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
386 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 387;
continue 'yyl;
}
}
}
387 => { return input.token(TName::Double) }
388 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 389;
continue 'yyl;
}
}
}
389 => { return input.token(TName::Extern) }
390 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 391;
continue 'yyl;
}
}
}
391 => { return input.token(TName::Inline) }
392 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 424;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
393 => {
yych = input.data[input.cursor];
match yych {
0x63 => {
input.cursor += 1;
yystate = 425;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
394 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 395;
continue 'yyl;
}
}
}
395 => { return input.token(TName::Return) }
396 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 397;
continue 'yyl;
}
}
}
397 => { return input.token(TName::Signed) }
398 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 399;
continue 'yyl;
}
}
}
399 => { return input.token(TName::Sizeof) }
400 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 401;
continue 'yyl;
}
}
}
401 => { return input.token(TName::Static) }
402 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 403;
continue 'yyl;
}
}
}
403 => { return input.token(TName::Struct) }
404 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 405;
continue 'yyl;
}
}
}
405 => { return input.token(TName::Switch) }
406 => {
yych = input.data[input.cursor];
match yych {
0x66 => {
input.cursor += 1;
yystate = 426;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
407 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 428;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
408 => {
yych = input.data[input.cursor];
match yych {
0x6C => {
input.cursor += 1;
yystate = 429;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
409 => {
yystate = 371;
continue 'yyl;
}
410 => {
yystate = 374;
continue 'yyl;
}
411 => {
yych = input.data[input.cursor];
match yych {
0x73 => {
input.cursor += 1;
yystate = 430;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
412 => {
yych = input.data[input.cursor];
match yych {
0x66 => {
input.cursor += 1;
yystate = 432;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
413 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 414;
continue 'yyl;
}
}
}
414 => { return input.token(TName::Atomic) }
415 => {
yych = input.data[input.cursor];
match yych {
0x78 => {
input.cursor += 1;
yystate = 434;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
416 => {
yych = input.data[input.cursor];
match yych {
0x63 => {
input.cursor += 1;
yystate = 436;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
417 => {
yych = input.data[input.cursor];
match yych {
0x61 => {
input.cursor += 1;
yystate = 438;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
418 => {
yych = input.data[input.cursor];
match yych {
0x72 => {
input.cursor += 1;
yystate = 439;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
419 => {
yych = input.data[input.cursor];
match yych {
0x5F => {
input.cursor += 1;
yystate = 440;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
420 => {
yych = input.data[input.cursor];
match yych {
0x5F => {
input.cursor += 1;
yystate = 441;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
421 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 442;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
422 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 423;
continue 'yyl;
}
}
}
423 => { return input.token(TName::Default) }
424 => {
yych = input.data[input.cursor];
match yych {
0x72 => {
input.cursor += 1;
yystate = 444;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
425 => {
yych = input.data[input.cursor];
match yych {
0x74 => {
input.cursor += 1;
yystate = 446;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
426 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 427;
continue 'yyl;
}
}
}
427 => { return input.token(TName::Typedef) }
428 => {
yych = input.data[input.cursor];
match yych {
0x64 => {
input.cursor += 1;
yystate = 448;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
429 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 450;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
430 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 431;
continue 'yyl;
}
}
}
431 => { return input.token(TName::Alignas) }
432 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 433;
continue 'yyl;
}
}
}
433 => { return input.token(TName::Alignof) }
434 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 435;
continue 'yyl;
}
}
}
435 => { return input.token(TName::Complex) }
436 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 437;
continue 'yyl;
}
}
}
437 => { return input.token(TName::Generic) }
438 => {
yych = input.data[input.cursor];
match yych {
0x72 => {
input.cursor += 1;
yystate = 452;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
439 => {
yych = input.data[input.cursor];
match yych {
0x6E => {
input.cursor += 1;
yystate = 453;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
440 => {
yych = input.data[input.cursor];
match yych {
0x61 => {
input.cursor += 1;
yystate = 455;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
441 => {
yych = input.data[input.cursor];
match yych {
0x6C => {
input.cursor += 1;
yystate = 456;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
442 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 443;
continue 'yyl;
}
}
}
443 => { return input.token(TName::Continue) }
444 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 445;
continue 'yyl;
}
}
}
445 => { return input.token(TName::Register) }
446 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 447;
continue 'yyl;
}
}
}
447 => { return input.token(TName::Restrict) }
448 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 449;
continue 'yyl;
}
}
}
449 => { return input.token(TName::Unsigned) }
450 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 451;
continue 'yyl;
}
}
}
451 => { return input.token(TName::Volatile) }
452 => {
yych = input.data[input.cursor];
match yych {
0x79 => {
input.cursor += 1;
yystate = 457;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
453 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 454;
continue 'yyl;
}
}
}
454 => { return input.token(TName::Noreturn) }
455 => {
yych = input.data[input.cursor];
match yych {
0x73 => {
input.cursor += 1;
yystate = 459;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
456 => {
yych = input.data[input.cursor];
match yych {
0x6F => {
input.cursor += 1;
yystate = 460;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
457 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 458;
continue 'yyl;
}
}
}
458 => { return input.token(TName::Imaginary) }
459 => {
yych = input.data[input.cursor];
match yych {
0x73 => {
input.cursor += 1;
yystate = 461;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
460 => {
yych = input.data[input.cursor];
match yych {
0x63 => {
input.cursor += 1;
yystate = 462;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
461 => {
yych = input.data[input.cursor];
match yych {
0x65 => {
input.cursor += 1;
yystate = 463;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
462 => {
yych = input.data[input.cursor];
match yych {
0x61 => {
input.cursor += 1;
yystate = 464;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
463 => {
yych = input.data[input.cursor];
match yych {
0x72 => {
input.cursor += 1;
yystate = 465;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
464 => {
yych = input.data[input.cursor];
match yych {
0x6C => {
input.cursor += 1;
yystate = 466;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
465 => {
yych = input.data[input.cursor];
match yych {
0x74 => {
input.cursor += 1;
yystate = 468;
continue 'yyl;
}
_ => {
yystate = 43;
continue 'yyl;
}
}
}
466 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 467;
continue 'yyl;
}
}
}
467 => { return input.token(TName::ThreadLocal) }
468 => {
yych = input.data[input.cursor];
match yych {
0x30 ..= 0x39 |
0x41 ..= 0x5A |
0x5F |
0x61 ..= 0x7A => {
input.cursor += 1;
yystate = 42;
continue 'yyl;
}
_ => {
yystate = 469;
continue 'yyl;
}
}
}
469 => { return input.token(TName::StaticAssert) }
_ => {
panic!("internal lexer error")
}
}
}
}
}
const DEBUG: bool = false;
macro_rules! log {
($($fmt:expr)? $(, $args:expr)*) => {
if DEBUG { println!($($fmt)? $(, $args)*) }
}
}
fn main() -> std::io::Result<()> {
use std::env;
use std::fs;
// Treats the first command line argument as a filename and returns file
// contents as a string. If there is no filename, returns a pre-defined
// example string (this is used for testing).
let args: Vec<String> = env::args().collect();
// We append a '\0' at the end of the string to act as a sentinel.
let mut str: String;
if args.len() < 2 {
str = "int main() { return 0; }\0".to_string(); // example C program
} else {
str = fs::read_to_string(&args[1])?;
str.push('\0');
}
let mut input = Input::new(str);
loop {
match next_token(&mut input) {
Ok(Some(token)) => log!("{:#?}", token),
Ok(None) => {
log!("EOF");
break;
},
Err(error) => {
log!("error: {:#?}", error);
break;
},
};
};
Ok(())
}