this repo has no description
at master 375 lines 9.8 kB view raw
1namespace Astrid; 2 3public class Token 4{ 5 public string value; 6 7 public int lineStart; 8 public int lineEnd; 9 public int charStart; 10 public int charEnd; 11 12 public Token(string value, int lineStart, int lineEnd, int charStart, int charEnd) 13 { 14 this.value = value; 15 16 this.lineStart = lineStart; 17 this.lineEnd = lineEnd; 18 this.charStart = charStart; 19 this.charEnd = charEnd; 20 } 21 22 public Token(int lineStart, int lineEnd, int charStart, int charEnd) 23 { 24 this.value = ""; 25 26 this.lineStart = lineStart; 27 this.lineEnd = lineEnd; 28 this.charStart = charStart; 29 this.charEnd = charEnd; 30 } 31} 32 33internal class TokenIdentifier : Token 34{ 35 public TokenIdentifier(string value, int lineStart, int lineEnd, int charStart, int charEnd) : base(value, lineStart, lineEnd, charStart, charEnd) 36 { 37 } 38} 39 40internal class TokenKeyword : Token 41{ 42 public TokenKeyword(string value, int lineStart, int lineEnd, int charStart, int charEnd) : base(value, lineStart, lineEnd, charStart, charEnd) 43 { 44 } 45} 46 47internal class TokenString : Token 48{ 49 public TokenString(string value, int lineStart, int lineEnd, int charStart, int charEnd) : base(value, lineStart, lineEnd, charStart, charEnd) 50 { 51 } 52} 53 54internal class TokenFloat : Token 55{ 56 public TokenFloat(string value, int lineStart, int lineEnd, int charStart, int charEnd) : base(value, lineStart, lineEnd, charStart, charEnd) 57 { 58 } 59} 60 61internal class TokenInt : Token 62{ 63 public TokenInt(string value, int lineStart, int lineEnd, int charStart, int charEnd) : base(value, lineStart, lineEnd, charStart, charEnd) 64 { 65 } 66} 67 68internal class TokenBoolean : Token 69{ 70 public TokenBoolean(string value, int lineStart, int lineEnd, int charStart, int charEnd) : base(value, lineStart, lineEnd, charStart, charEnd) 71 { 72 } 73} 74 75internal class TokenArrayString : Token 76{ 77 public TokenArrayString(string value, int lineStart, int lineEnd, int charStart, int charEnd) : base(value, lineStart, lineEnd, charStart, charEnd) 78 { 79 } 80} 81 82internal class TokenArrayFloat : Token 83{ 84 public TokenArrayFloat(string value, int lineStart, int lineEnd, int charStart, int charEnd) : base(value, lineStart, lineEnd, charStart, charEnd) 85 { 86 } 87} 88 89internal class TokenArrayInt : Token 90{ 91 public TokenArrayInt(string value, int lineStart, int lineEnd, int charStart, int charEnd) : base(value, lineStart, lineEnd, charStart, charEnd) 92 { 93 } 94} 95 96internal class TokenArrayBoolean : Token 97{ 98 public TokenArrayBoolean(string value, int lineStart, int lineEnd, int charStart, int charEnd) : base(value, lineStart, lineEnd, charStart, charEnd) 99 { 100 } 101} 102 103internal class TokenAssign : Token 104{ 105 public TokenAssign(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 106 { 107 this.value = "="; 108 } 109} 110 111internal class TokenAssignMinus : Token 112{ 113 public TokenAssignMinus(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 114 { 115 this.value = "-="; 116 } 117} 118 119internal class TokenAssignPlus : Token 120{ 121 public TokenAssignPlus(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 122 { 123 this.value = "+="; 124 } 125} 126 127internal class TokenAssignDivide : Token 128{ 129 public TokenAssignDivide(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 130 { 131 this.value = "/="; 132 } 133} 134 135internal class TokenAssignMultiply : Token 136{ 137 public TokenAssignMultiply(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 138 { 139 this.value = "*="; 140 } 141} 142 143internal class TokenAssignPower : Token 144{ 145 public TokenAssignPower(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 146 { 147 this.value = "^="; 148 } 149} 150 151internal class TokenAssignModulo : Token 152{ 153 public TokenAssignModulo(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 154 { 155 this.value = "%="; 156 } 157} 158 159internal class TokenComma : Token 160{ 161 public TokenComma(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 162 { 163 this.value = ","; 164 } 165} 166 167internal class TokenArrayStart : Token 168{ 169 public TokenArrayStart(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 170 { 171 this.value = "["; 172 } 173} 174 175internal class TokenArrayEnd : Token 176{ 177 public TokenArrayEnd(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 178 { 179 this.value = "]"; 180 } 181} 182 183internal class TokenParenStart : Token 184{ 185 public TokenParenStart(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 186 { 187 this.value = "("; 188 } 189} 190 191internal class TokenParenEnd : Token 192{ 193 public TokenParenEnd(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 194 { 195 this.value = ")"; 196 } 197} 198 199internal class TokenColon : Token 200{ 201 public TokenColon(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 202 { 203 this.value = ":"; 204 } 205} 206 207internal class TokenDoubleColon : Token 208{ 209 public TokenDoubleColon(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 210 { 211 this.value = "::"; 212 } 213} 214 215internal class TokenBlockStart : Token 216{ 217 public TokenBlockStart(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 218 { 219 this.value = "{"; 220 } 221} 222 223internal class TokenBlockEnd : Token 224{ 225 public TokenBlockEnd(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 226 { 227 this.value = "}"; 228 } 229} 230 231internal class TokenEOL : Token 232{ 233 public TokenEOL(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 234 { 235 this.value = ";"; 236 } 237} 238 239internal class TokenNamespaceSeparator : Token 240{ 241 public TokenNamespaceSeparator(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 242 { 243 this.value = "."; 244 } 245} 246 247internal class TokenPlus : Token 248{ 249 public TokenPlus(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 250 { 251 this.value = "+"; 252 } 253} 254 255internal class TokenMinus : Token 256{ 257 public TokenMinus(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 258 { 259 this.value = "-"; 260 } 261} 262 263internal class TokenMultiply : Token 264{ 265 public TokenMultiply(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 266 { 267 this.value = "*"; 268 } 269} 270 271internal class TokenDivide : Token 272{ 273 public TokenDivide(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 274 { 275 this.value = "/"; 276 } 277} 278 279internal class TokenPower : Token 280{ 281 public TokenPower(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 282 { 283 this.value = "^"; 284 } 285} 286 287internal class TokenModulo : Token 288{ 289 public TokenModulo(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 290 { 291 this.value = "%"; 292 } 293} 294 295internal class TokenOr : Token 296{ 297 public TokenOr(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 298 { 299 this.value = "||"; 300 } 301} 302 303internal class TokenAnd : Token 304{ 305 public TokenAnd(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 306 { 307 this.value = "&&"; 308 } 309} 310 311internal class TokenNot : Token 312{ 313 public TokenNot(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 314 { 315 this.value = "!"; 316 } 317} 318 319internal class TokenEquals : Token 320{ 321 public TokenEquals(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 322 { 323 this.value = "=="; 324 } 325} 326 327internal class TokenNotEquals : Token 328{ 329 public TokenNotEquals(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 330 { 331 this.value = "!="; 332 } 333} 334 335internal class TokenGreater : Token 336{ 337 public TokenGreater(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 338 { 339 this.value = ">"; 340 } 341} 342 343internal class TokenGreaterEquals : Token 344{ 345 public TokenGreaterEquals(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 346 { 347 this.value = ">="; 348 } 349} 350 351internal class TokenLesser : Token 352{ 353 public TokenLesser(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 354 { 355 this.value = "<"; 356 } 357} 358 359internal class TokenLesserEquals : Token 360{ 361 public TokenLesserEquals(int lineStart, int lineEnd, int charStart, int charEnd) : base(lineStart, lineEnd, charStart, charEnd) 362 { 363 this.value = "<="; 364 } 365} 366 367public class InvalidTokenTypeException : Exception 368{ 369 public dynamic token; 370 371 public InvalidTokenTypeException(string message, dynamic token) : base(message) 372 { 373 this.token = token; 374 } 375}