zxbasic/
keywords.rs

1#[derive(Debug, Copy, Clone, PartialEq)]
2pub enum Keyword {
3    Rnd,
4    Inkey,
5    Pi,
6    Fn,
7    Point,
8    Screen,
9    Attr,
10    At,
11    Tab,
12    ValStr,
13    Code,
14    Val,
15    Len,
16    Sin,
17    Cos,
18    Tan,
19    Asn,
20    Acs,
21    Atn,
22    Ln,
23    Exp,
24    Int,
25    Sqr,
26    Sgn,
27    Abs,
28    Peek,
29    In,
30    Usr,
31    Str,
32    Chr,
33    Not,
34    Bin,
35    Or,
36    And,
37    LessOrEqual,
38    GreaterOrEqual,
39    NotEqual,
40    Line,
41    Then,
42    To,
43    Step,
44    DefFn,
45    Cat,
46    Format,
47    Move,
48    Erase,
49    Open,
50    Close,
51    Merge,
52    Verify,
53    Beep,
54    Circle,
55    Ink,
56    Paper,
57    Flash,
58    Bright,
59    Inverse,
60    Over,
61    Out,
62    Lprint,
63    Llist,
64    Stop,
65    Read,
66    Data,
67    Restore,
68    New,
69    Border,
70    Continue,
71    Dim,
72    Rem,
73    For,
74    GoTo,
75    GoSub,
76    Input,
77    Load,
78    List,
79    Let,
80    Pause,
81    Next,
82    Poke,
83    Print,
84    Plot,
85    Run,
86    Save,
87    Randomize,
88    If,
89    Cls,
90    Draw,
91    Clear,
92    Return,
93    Copy,
94}
95
96impl Keyword {
97    pub fn to_byte(&self) -> u8 {
98        match self {
99            Self::Rnd => 165,
100            Self::Inkey => 166,
101            Self::Pi => 167,
102            Self::Fn => 168,
103            Self::Point => 169,
104            Self::Screen => 170,
105            Self::Attr => 171,
106            Self::At => 172,
107            Self::Tab => 173,
108            Self::ValStr => 174,
109            Self::Code => 175,
110            Self::Val => 176,
111            Self::Len => 177,
112            Self::Sin => 178,
113            Self::Cos => 179,
114            Self::Tan => 180,
115            Self::Asn => 181,
116            Self::Acs => 182,
117            Self::Atn => 183,
118            Self::Ln => 184,
119            Self::Exp => 185,
120            Self::Int => 186,
121            Self::Sqr => 187,
122            Self::Sgn => 188,
123            Self::Abs => 189,
124            Self::Peek => 190,
125            Self::In => 191,
126            Self::Usr => 192,
127            Self::Str => 193,
128            Self::Chr => 194,
129            Self::Not => 195,
130            Self::Bin => 196,
131            Self::Or => 197,
132            Self::And => 198,
133            Self::LessOrEqual => 199,
134            Self::GreaterOrEqual => 200,
135            Self::NotEqual => 201,
136            Self::Line => 202,
137            Self::Then => 203,
138            Self::To => 204,
139            Self::Step => 205,
140            Self::DefFn => 206,
141            Self::Cat => 207,
142            Self::Format => 208,
143            Self::Move => 209,
144            Self::Erase => 210,
145            Self::Open => 211,
146            Self::Close => 212,
147            Self::Merge => 213,
148            Self::Verify => 214,
149            Self::Beep => 215,
150            Self::Circle => 216,
151            Self::Ink => 217,
152            Self::Paper => 218,
153            Self::Flash => 219,
154            Self::Bright => 220,
155            Self::Inverse => 221,
156            Self::Over => 222,
157            Self::Out => 223,
158            Self::Lprint => 224,
159            Self::Llist => 225,
160            Self::Stop => 226,
161            Self::Read => 227,
162            Self::Data => 228,
163            Self::Restore => 229,
164            Self::New => 230,
165            Self::Border => 231,
166            Self::Continue => 232,
167            Self::Dim => 233,
168            Self::Rem => 234,
169            Self::For => 235,
170            Self::GoTo => 236,
171            Self::GoSub => 237,
172            Self::Input => 238,
173            Self::Load => 239,
174            Self::List => 240,
175            Self::Let => 241,
176            Self::Pause => 242,
177            Self::Next => 243,
178            Self::Poke => 244,
179            Self::Print => 245,
180            Self::Plot => 246,
181            Self::Run => 247,
182            Self::Save => 248,
183            Self::Randomize => 249,
184            Self::If => 250,
185            Self::Cls => 251,
186            Self::Draw => 252,
187            Self::Clear => 253,
188            Self::Return => 254,
189            Self::Copy => 255,
190        }
191    }
192}