From 6a499b2c77f3f80f9fc4d4c54b51157338768027 Mon Sep 17 00:00:00 2001 From: Spotandjake Date: Sat, 7 Jan 2023 15:46:32 -0500 Subject: [PATCH] fix: Support More Assignment Statements - Update Docs - Support More Assignment - Add Tests For Assignment Operators --- Documentation/TODO.md | 36 +- .../Data/Parser/Operator_Precedence_Pass.br | 9 +- .../Data/Parser/Operator_Precedence_Pass.json | 2 +- .../Tests/__snapshots__/Parser.test.ts.snap | 542 +++++++++++++----- src/Compiler/Lexer/Tokens.ts | 2 +- src/Compiler/Parser/index.ts | 2 +- 6 files changed, 403 insertions(+), 190 deletions(-) diff --git a/Documentation/TODO.md b/Documentation/TODO.md index acd5458..f3c45e1 100644 --- a/Documentation/TODO.md +++ b/Documentation/TODO.md @@ -44,9 +44,6 @@ + [x] Look into creating our own wasm ir using https://github.com/iden3/wasmbuilder/blob/master/src/codebuilder.js instead of using binaryen for raw codegen + [ ] Tasks For Day 2 + [ ] Write New Tests Based On The Improvements To The Compiler - + [ ] Unary Operators - + [ ] Order Of Operations - + [ ] Post Fix Operator Testing + [ ] Tests For Type Definitions And TypeChecker + [ ] Tests For Object Spread Syntax + [x] Analyze Arrays @@ -57,11 +54,6 @@ + [ ] Implement wasm multivalue types and syntax + [ ] Look Into Complexity of using multivalue to allocate things like objects on the stack. + [ ] Determine Syntax For Wasm Reference Types -+ [ ] Tasks for Day 4 - + [ ] Look Into Writing Linker - + [ ] Find Way To Parse Without Binaryen - + [ ] Find Way To Compile Without Binaryen - + [ ] Find Way To Optimize Without Binaryen + [ ] Tasks For Day 5 + [ ] Rewrite Grammar in ENBF + [ ] Consider Simplifying Grammar Based Off Of This new Optimal Form @@ -177,34 +169,13 @@ + [x] Implement Analysis For ADT Enums + [ ] Implement Type Checking For ADT Enums + [ ] Expressions - + [x] Fix Operator Precedence In Parsing - + [x] Comparisons - + [x] Equal - + [x] Not Equal - + [x] Less Then - + [x] Greater Then - + [x] Less Then Equal - + [x] Greater Then Equal - + [x] Arithmetic - + [x] Addition - + [x] Subtraction - + [x] Multiplication - + [x] Division - + [ ] Logical - + [x] Not - + [ ] And - + [ ] Or + + [x] Support Custom Operators + [x] Member Access + [x] Parenthesis Expression + [x] Function Call + [ ] Statements + [x] Declaration - + [ ] Assignment - + [x] Equal - + [ ] PlusEqual - + [ ] SubtractEqual - + [ ] MultiplyEqual - + [ ] DivideEqual + + [x] Custom Assignment Operator + [x] If Statement + [x] general Parsing + [x] Else @@ -245,7 +216,7 @@ + [ ] No Non Wasm Primitive's + [ ] Linker + [ ] Make Dependency Tree - + [ ] Link Program + + [x] Link Program + [ ] Runtime Globals + [ ] Malloc + [ ] GC @@ -260,6 +231,7 @@ + [ ] String + [ ] General + [ ] Print + + [ ] Default Operators Look Into https://istanbul.js.org/ \ No newline at end of file diff --git a/__tests__/Data/Parser/Operator_Precedence_Pass.br b/__tests__/Data/Parser/Operator_Precedence_Pass.br index 855796e..81ec9e5 100644 --- a/__tests__/Data/Parser/Operator_Precedence_Pass.br +++ b/__tests__/Data/Parser/Operator_Precedence_Pass.br @@ -5,7 +5,7 @@ let cINFIX: i32 = 1n * 1n; let dINFIX: i32 = 1n / 1n; let eINFIX: i32 = 1n % 1n; let fINFIX: i32 = 1n ^ 1n; -let fINFIX: i32 = 1n == 1n; +let gINFIX: i32 = 1n == 1n; // Prefix Operators let aPREFIX: i32 = +1n; let bPREFIX: i32 = -1n; @@ -20,6 +20,13 @@ let cPOSTFIX: i32 = 1n*; let dPOSTFIX: i32 = 1n/; let ePOSTFIX: i32 = 1n%; let fPOSTFIX: i32 = 1n^; +// Assingment Operators +aINFIX += 1n; +bINFIX -= 1n; +cINFIX *= 1n; +dINFIX /= 1n; +eINFIX %= 1n; +fINFIX ^= 1n; // Precedence let aPrecedence: i32 = (1n!) + (1n!); diff --git a/__tests__/Data/Parser/Operator_Precedence_Pass.json b/__tests__/Data/Parser/Operator_Precedence_Pass.json index 664851c..f5ed118 100644 --- a/__tests__/Data/Parser/Operator_Precedence_Pass.json +++ b/__tests__/Data/Parser/Operator_Precedence_Pass.json @@ -1 +1 @@ -{"tokens":[{"image":"let","startOffset":19,"endOffset":21,"startLine":2,"endLine":2,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"aINFIX","startOffset":23,"endOffset":28,"startLine":2,"endLine":2,"startColumn":5,"endColumn":10,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":29,"endOffset":29,"startLine":2,"endLine":2,"startColumn":11,"endColumn":11,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":31,"endOffset":33,"startLine":2,"endLine":2,"startColumn":13,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":35,"endOffset":35,"startLine":2,"endLine":2,"startColumn":17,"endColumn":17,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":37,"endOffset":38,"startLine":2,"endLine":2,"startColumn":19,"endColumn":20,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"+","startOffset":40,"endOffset":40,"startLine":2,"endLine":2,"startColumn":22,"endColumn":22,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"1n","startOffset":42,"endOffset":43,"startLine":2,"endLine":2,"startColumn":24,"endColumn":25,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":44,"endOffset":44,"startLine":2,"endLine":2,"startColumn":26,"endColumn":26,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":46,"endOffset":48,"startLine":3,"endLine":3,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"bINFIX","startOffset":50,"endOffset":55,"startLine":3,"endLine":3,"startColumn":5,"endColumn":10,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":56,"endOffset":56,"startLine":3,"endLine":3,"startColumn":11,"endColumn":11,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":58,"endOffset":60,"startLine":3,"endLine":3,"startColumn":13,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":62,"endOffset":62,"startLine":3,"endLine":3,"startColumn":17,"endColumn":17,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":64,"endOffset":65,"startLine":3,"endLine":3,"startColumn":19,"endColumn":20,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"-","startOffset":67,"endOffset":67,"startLine":3,"endLine":3,"startColumn":22,"endColumn":22,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"1n","startOffset":69,"endOffset":70,"startLine":3,"endLine":3,"startColumn":24,"endColumn":25,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":71,"endOffset":71,"startLine":3,"endLine":3,"startColumn":26,"endColumn":26,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":73,"endOffset":75,"startLine":4,"endLine":4,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"cINFIX","startOffset":77,"endOffset":82,"startLine":4,"endLine":4,"startColumn":5,"endColumn":10,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":83,"endOffset":83,"startLine":4,"endLine":4,"startColumn":11,"endColumn":11,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":85,"endOffset":87,"startLine":4,"endLine":4,"startColumn":13,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":89,"endOffset":89,"startLine":4,"endLine":4,"startColumn":17,"endColumn":17,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":91,"endOffset":92,"startLine":4,"endLine":4,"startColumn":19,"endColumn":20,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"*","startOffset":94,"endOffset":94,"startLine":4,"endLine":4,"startColumn":22,"endColumn":22,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":"1n","startOffset":96,"endOffset":97,"startLine":4,"endLine":4,"startColumn":24,"endColumn":25,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":98,"endOffset":98,"startLine":4,"endLine":4,"startColumn":26,"endColumn":26,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":100,"endOffset":102,"startLine":5,"endLine":5,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"dINFIX","startOffset":104,"endOffset":109,"startLine":5,"endLine":5,"startColumn":5,"endColumn":10,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":110,"endOffset":110,"startLine":5,"endLine":5,"startColumn":11,"endColumn":11,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":112,"endOffset":114,"startLine":5,"endLine":5,"startColumn":13,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":116,"endOffset":116,"startLine":5,"endLine":5,"startColumn":17,"endColumn":17,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":118,"endOffset":119,"startLine":5,"endLine":5,"startColumn":19,"endColumn":20,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"/","startOffset":121,"endOffset":121,"startLine":5,"endLine":5,"startColumn":22,"endColumn":22,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":"1n","startOffset":123,"endOffset":124,"startLine":5,"endLine":5,"startColumn":24,"endColumn":25,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":125,"endOffset":125,"startLine":5,"endLine":5,"startColumn":26,"endColumn":26,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":127,"endOffset":129,"startLine":6,"endLine":6,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"eINFIX","startOffset":131,"endOffset":136,"startLine":6,"endLine":6,"startColumn":5,"endColumn":10,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":137,"endOffset":137,"startLine":6,"endLine":6,"startColumn":11,"endColumn":11,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":139,"endOffset":141,"startLine":6,"endLine":6,"startColumn":13,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":143,"endOffset":143,"startLine":6,"endLine":6,"startColumn":17,"endColumn":17,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":145,"endOffset":146,"startLine":6,"endLine":6,"startColumn":19,"endColumn":20,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"%","startOffset":148,"endOffset":148,"startLine":6,"endLine":6,"startColumn":22,"endColumn":22,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":"1n","startOffset":150,"endOffset":151,"startLine":6,"endLine":6,"startColumn":24,"endColumn":25,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":152,"endOffset":152,"startLine":6,"endLine":6,"startColumn":26,"endColumn":26,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":154,"endOffset":156,"startLine":7,"endLine":7,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"fINFIX","startOffset":158,"endOffset":163,"startLine":7,"endLine":7,"startColumn":5,"endColumn":10,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":164,"endOffset":164,"startLine":7,"endLine":7,"startColumn":11,"endColumn":11,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":166,"endOffset":168,"startLine":7,"endLine":7,"startColumn":13,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":170,"endOffset":170,"startLine":7,"endLine":7,"startColumn":17,"endColumn":17,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":172,"endOffset":173,"startLine":7,"endLine":7,"startColumn":19,"endColumn":20,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"^","startOffset":175,"endOffset":175,"startLine":7,"endLine":7,"startColumn":22,"endColumn":22,"tokenTypeIdx":60,"tokenType":"TknOperator150"},{"image":"1n","startOffset":177,"endOffset":178,"startLine":7,"endLine":7,"startColumn":24,"endColumn":25,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":179,"endOffset":179,"startLine":7,"endLine":7,"startColumn":26,"endColumn":26,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":181,"endOffset":183,"startLine":8,"endLine":8,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"fINFIX","startOffset":185,"endOffset":190,"startLine":8,"endLine":8,"startColumn":5,"endColumn":10,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":191,"endOffset":191,"startLine":8,"endLine":8,"startColumn":11,"endColumn":11,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":193,"endOffset":195,"startLine":8,"endLine":8,"startColumn":13,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":197,"endOffset":197,"startLine":8,"endLine":8,"startColumn":17,"endColumn":17,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":199,"endOffset":200,"startLine":8,"endLine":8,"startColumn":19,"endColumn":20,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"==","startOffset":202,"endOffset":203,"startLine":8,"endLine":8,"startColumn":22,"endColumn":23,"tokenTypeIdx":60,"tokenType":"TknOperator150"},{"image":"1n","startOffset":205,"endOffset":206,"startLine":8,"endLine":8,"startColumn":25,"endColumn":26,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":207,"endOffset":207,"startLine":8,"endLine":8,"startColumn":27,"endColumn":27,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":229,"endOffset":231,"startLine":10,"endLine":10,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"aPREFIX","startOffset":233,"endOffset":239,"startLine":10,"endLine":10,"startColumn":5,"endColumn":11,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":240,"endOffset":240,"startLine":10,"endLine":10,"startColumn":12,"endColumn":12,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":242,"endOffset":244,"startLine":10,"endLine":10,"startColumn":14,"endColumn":16,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":246,"endOffset":246,"startLine":10,"endLine":10,"startColumn":18,"endColumn":18,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"+","startOffset":248,"endOffset":248,"startLine":10,"endLine":10,"startColumn":20,"endColumn":20,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"1n","startOffset":249,"endOffset":250,"startLine":10,"endLine":10,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":251,"endOffset":251,"startLine":10,"endLine":10,"startColumn":23,"endColumn":23,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":253,"endOffset":255,"startLine":11,"endLine":11,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"bPREFIX","startOffset":257,"endOffset":263,"startLine":11,"endLine":11,"startColumn":5,"endColumn":11,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":264,"endOffset":264,"startLine":11,"endLine":11,"startColumn":12,"endColumn":12,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":266,"endOffset":268,"startLine":11,"endLine":11,"startColumn":14,"endColumn":16,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":270,"endOffset":270,"startLine":11,"endLine":11,"startColumn":18,"endColumn":18,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"-","startOffset":272,"endOffset":272,"startLine":11,"endLine":11,"startColumn":20,"endColumn":20,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"1n","startOffset":273,"endOffset":274,"startLine":11,"endLine":11,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":275,"endOffset":275,"startLine":11,"endLine":11,"startColumn":23,"endColumn":23,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":277,"endOffset":279,"startLine":12,"endLine":12,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"cPREFIX","startOffset":281,"endOffset":287,"startLine":12,"endLine":12,"startColumn":5,"endColumn":11,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":288,"endOffset":288,"startLine":12,"endLine":12,"startColumn":12,"endColumn":12,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":290,"endOffset":292,"startLine":12,"endLine":12,"startColumn":14,"endColumn":16,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":294,"endOffset":294,"startLine":12,"endLine":12,"startColumn":18,"endColumn":18,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"*","startOffset":296,"endOffset":296,"startLine":12,"endLine":12,"startColumn":20,"endColumn":20,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":"1n","startOffset":297,"endOffset":298,"startLine":12,"endLine":12,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":299,"endOffset":299,"startLine":12,"endLine":12,"startColumn":23,"endColumn":23,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":301,"endOffset":303,"startLine":13,"endLine":13,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"dPREFIX","startOffset":305,"endOffset":311,"startLine":13,"endLine":13,"startColumn":5,"endColumn":11,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":312,"endOffset":312,"startLine":13,"endLine":13,"startColumn":12,"endColumn":12,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":314,"endOffset":316,"startLine":13,"endLine":13,"startColumn":14,"endColumn":16,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":318,"endOffset":318,"startLine":13,"endLine":13,"startColumn":18,"endColumn":18,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"/","startOffset":320,"endOffset":320,"startLine":13,"endLine":13,"startColumn":20,"endColumn":20,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":"1n","startOffset":321,"endOffset":322,"startLine":13,"endLine":13,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":323,"endOffset":323,"startLine":13,"endLine":13,"startColumn":23,"endColumn":23,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":325,"endOffset":327,"startLine":14,"endLine":14,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"ePREFIX","startOffset":329,"endOffset":335,"startLine":14,"endLine":14,"startColumn":5,"endColumn":11,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":336,"endOffset":336,"startLine":14,"endLine":14,"startColumn":12,"endColumn":12,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":338,"endOffset":340,"startLine":14,"endLine":14,"startColumn":14,"endColumn":16,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":342,"endOffset":342,"startLine":14,"endLine":14,"startColumn":18,"endColumn":18,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"%","startOffset":344,"endOffset":344,"startLine":14,"endLine":14,"startColumn":20,"endColumn":20,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":"1n","startOffset":345,"endOffset":346,"startLine":14,"endLine":14,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":347,"endOffset":347,"startLine":14,"endLine":14,"startColumn":23,"endColumn":23,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":349,"endOffset":351,"startLine":15,"endLine":15,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"fPREFIX","startOffset":353,"endOffset":359,"startLine":15,"endLine":15,"startColumn":5,"endColumn":11,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":360,"endOffset":360,"startLine":15,"endLine":15,"startColumn":12,"endColumn":12,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":362,"endOffset":364,"startLine":15,"endLine":15,"startColumn":14,"endColumn":16,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":366,"endOffset":366,"startLine":15,"endLine":15,"startColumn":18,"endColumn":18,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"^","startOffset":368,"endOffset":368,"startLine":15,"endLine":15,"startColumn":20,"endColumn":20,"tokenTypeIdx":60,"tokenType":"TknOperator150"},{"image":"1n","startOffset":369,"endOffset":370,"startLine":15,"endLine":15,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":371,"endOffset":371,"startLine":15,"endLine":15,"startColumn":23,"endColumn":23,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":394,"endOffset":396,"startLine":17,"endLine":17,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"aPOSTFIX","startOffset":398,"endOffset":405,"startLine":17,"endLine":17,"startColumn":5,"endColumn":12,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":406,"endOffset":406,"startLine":17,"endLine":17,"startColumn":13,"endColumn":13,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":408,"endOffset":410,"startLine":17,"endLine":17,"startColumn":15,"endColumn":17,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":412,"endOffset":412,"startLine":17,"endLine":17,"startColumn":19,"endColumn":19,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":414,"endOffset":415,"startLine":17,"endLine":17,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"+","startOffset":416,"endOffset":416,"startLine":17,"endLine":17,"startColumn":23,"endColumn":23,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":";","startOffset":417,"endOffset":417,"startLine":17,"endLine":17,"startColumn":24,"endColumn":24,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":419,"endOffset":421,"startLine":18,"endLine":18,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"bPOSTFIX","startOffset":423,"endOffset":430,"startLine":18,"endLine":18,"startColumn":5,"endColumn":12,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":431,"endOffset":431,"startLine":18,"endLine":18,"startColumn":13,"endColumn":13,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":433,"endOffset":435,"startLine":18,"endLine":18,"startColumn":15,"endColumn":17,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":437,"endOffset":437,"startLine":18,"endLine":18,"startColumn":19,"endColumn":19,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":439,"endOffset":440,"startLine":18,"endLine":18,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"-","startOffset":441,"endOffset":441,"startLine":18,"endLine":18,"startColumn":23,"endColumn":23,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":";","startOffset":442,"endOffset":442,"startLine":18,"endLine":18,"startColumn":24,"endColumn":24,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":444,"endOffset":446,"startLine":19,"endLine":19,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"cPOSTFIX","startOffset":448,"endOffset":455,"startLine":19,"endLine":19,"startColumn":5,"endColumn":12,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":456,"endOffset":456,"startLine":19,"endLine":19,"startColumn":13,"endColumn":13,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":458,"endOffset":460,"startLine":19,"endLine":19,"startColumn":15,"endColumn":17,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":462,"endOffset":462,"startLine":19,"endLine":19,"startColumn":19,"endColumn":19,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":464,"endOffset":465,"startLine":19,"endLine":19,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"*","startOffset":466,"endOffset":466,"startLine":19,"endLine":19,"startColumn":23,"endColumn":23,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":";","startOffset":467,"endOffset":467,"startLine":19,"endLine":19,"startColumn":24,"endColumn":24,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":469,"endOffset":471,"startLine":20,"endLine":20,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"dPOSTFIX","startOffset":473,"endOffset":480,"startLine":20,"endLine":20,"startColumn":5,"endColumn":12,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":481,"endOffset":481,"startLine":20,"endLine":20,"startColumn":13,"endColumn":13,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":483,"endOffset":485,"startLine":20,"endLine":20,"startColumn":15,"endColumn":17,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":487,"endOffset":487,"startLine":20,"endLine":20,"startColumn":19,"endColumn":19,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":489,"endOffset":490,"startLine":20,"endLine":20,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"/","startOffset":491,"endOffset":491,"startLine":20,"endLine":20,"startColumn":23,"endColumn":23,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":";","startOffset":492,"endOffset":492,"startLine":20,"endLine":20,"startColumn":24,"endColumn":24,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":494,"endOffset":496,"startLine":21,"endLine":21,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"ePOSTFIX","startOffset":498,"endOffset":505,"startLine":21,"endLine":21,"startColumn":5,"endColumn":12,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":506,"endOffset":506,"startLine":21,"endLine":21,"startColumn":13,"endColumn":13,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":508,"endOffset":510,"startLine":21,"endLine":21,"startColumn":15,"endColumn":17,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":512,"endOffset":512,"startLine":21,"endLine":21,"startColumn":19,"endColumn":19,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":514,"endOffset":515,"startLine":21,"endLine":21,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"%","startOffset":516,"endOffset":516,"startLine":21,"endLine":21,"startColumn":23,"endColumn":23,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":";","startOffset":517,"endOffset":517,"startLine":21,"endLine":21,"startColumn":24,"endColumn":24,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":519,"endOffset":521,"startLine":22,"endLine":22,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"fPOSTFIX","startOffset":523,"endOffset":530,"startLine":22,"endLine":22,"startColumn":5,"endColumn":12,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":531,"endOffset":531,"startLine":22,"endLine":22,"startColumn":13,"endColumn":13,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":533,"endOffset":535,"startLine":22,"endLine":22,"startColumn":15,"endColumn":17,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":537,"endOffset":537,"startLine":22,"endLine":22,"startColumn":19,"endColumn":19,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":539,"endOffset":540,"startLine":22,"endLine":22,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"^","startOffset":541,"endOffset":541,"startLine":22,"endLine":22,"startColumn":23,"endColumn":23,"tokenTypeIdx":60,"tokenType":"TknOperator150"},{"image":";","startOffset":542,"endOffset":542,"startLine":22,"endLine":22,"startColumn":24,"endColumn":24,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":559,"endOffset":561,"startLine":25,"endLine":25,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"aPrecedence","startOffset":563,"endOffset":573,"startLine":25,"endLine":25,"startColumn":5,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":574,"endOffset":574,"startLine":25,"endLine":25,"startColumn":16,"endColumn":16,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":576,"endOffset":578,"startLine":25,"endLine":25,"startColumn":18,"endColumn":20,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":580,"endOffset":580,"startLine":25,"endLine":25,"startColumn":22,"endColumn":22,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"(","startOffset":582,"endOffset":582,"startLine":25,"endLine":25,"startColumn":24,"endColumn":24,"tokenTypeIdx":44,"tokenType":"LeftParen"},{"image":"1n","startOffset":583,"endOffset":584,"startLine":25,"endLine":25,"startColumn":25,"endColumn":26,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"!","startOffset":585,"endOffset":585,"startLine":25,"endLine":25,"startColumn":27,"endColumn":27,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":")","startOffset":586,"endOffset":586,"startLine":25,"endLine":25,"startColumn":28,"endColumn":28,"tokenTypeIdx":45,"tokenType":"RightParen"},{"image":"+","startOffset":588,"endOffset":588,"startLine":25,"endLine":25,"startColumn":30,"endColumn":30,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"(","startOffset":590,"endOffset":590,"startLine":25,"endLine":25,"startColumn":32,"endColumn":32,"tokenTypeIdx":44,"tokenType":"LeftParen"},{"image":"1n","startOffset":591,"endOffset":592,"startLine":25,"endLine":25,"startColumn":33,"endColumn":34,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"!","startOffset":593,"endOffset":593,"startLine":25,"endLine":25,"startColumn":35,"endColumn":35,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":")","startOffset":594,"endOffset":594,"startLine":25,"endLine":25,"startColumn":36,"endColumn":36,"tokenTypeIdx":45,"tokenType":"RightParen"},{"image":";","startOffset":595,"endOffset":595,"startLine":25,"endLine":25,"startColumn":37,"endColumn":37,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":597,"endOffset":599,"startLine":26,"endLine":26,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"bPrecedence","startOffset":601,"endOffset":611,"startLine":26,"endLine":26,"startColumn":5,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":612,"endOffset":612,"startLine":26,"endLine":26,"startColumn":16,"endColumn":16,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":614,"endOffset":616,"startLine":26,"endLine":26,"startColumn":18,"endColumn":20,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":618,"endOffset":618,"startLine":26,"endLine":26,"startColumn":22,"endColumn":22,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"!","startOffset":620,"endOffset":620,"startLine":26,"endLine":26,"startColumn":24,"endColumn":24,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":"1n","startOffset":621,"endOffset":622,"startLine":26,"endLine":26,"startColumn":25,"endColumn":26,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"+","startOffset":624,"endOffset":624,"startLine":26,"endLine":26,"startColumn":28,"endColumn":28,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"!","startOffset":626,"endOffset":626,"startLine":26,"endLine":26,"startColumn":30,"endColumn":30,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":"1n","startOffset":627,"endOffset":628,"startLine":26,"endLine":26,"startColumn":31,"endColumn":32,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":629,"endOffset":629,"startLine":26,"endLine":26,"startColumn":33,"endColumn":33,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":631,"endOffset":633,"startLine":27,"endLine":27,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"cPrecedence","startOffset":635,"endOffset":645,"startLine":27,"endLine":27,"startColumn":5,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":646,"endOffset":646,"startLine":27,"endLine":27,"startColumn":16,"endColumn":16,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":648,"endOffset":650,"startLine":27,"endLine":27,"startColumn":18,"endColumn":20,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":652,"endOffset":652,"startLine":27,"endLine":27,"startColumn":22,"endColumn":22,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"!","startOffset":654,"endOffset":654,"startLine":27,"endLine":27,"startColumn":24,"endColumn":24,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":"1n","startOffset":655,"endOffset":656,"startLine":27,"endLine":27,"startColumn":25,"endColumn":26,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"!","startOffset":657,"endOffset":657,"startLine":27,"endLine":27,"startColumn":27,"endColumn":27,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":";","startOffset":658,"endOffset":658,"startLine":27,"endLine":27,"startColumn":28,"endColumn":28,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":660,"endOffset":662,"startLine":28,"endLine":28,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"dPrecedence","startOffset":664,"endOffset":674,"startLine":28,"endLine":28,"startColumn":5,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":675,"endOffset":675,"startLine":28,"endLine":28,"startColumn":16,"endColumn":16,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":677,"endOffset":679,"startLine":28,"endLine":28,"startColumn":18,"endColumn":20,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":681,"endOffset":681,"startLine":28,"endLine":28,"startColumn":22,"endColumn":22,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"!","startOffset":683,"endOffset":683,"startLine":28,"endLine":28,"startColumn":24,"endColumn":24,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":"1n","startOffset":684,"endOffset":685,"startLine":28,"endLine":28,"startColumn":25,"endColumn":26,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"!!","startOffset":686,"endOffset":687,"startLine":28,"endLine":28,"startColumn":27,"endColumn":28,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":";","startOffset":688,"endOffset":688,"startLine":28,"endLine":28,"startColumn":29,"endColumn":29,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":690,"endOffset":692,"startLine":29,"endLine":29,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"ePrecedence","startOffset":694,"endOffset":704,"startLine":29,"endLine":29,"startColumn":5,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":705,"endOffset":705,"startLine":29,"endLine":29,"startColumn":16,"endColumn":16,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":707,"endOffset":709,"startLine":29,"endLine":29,"startColumn":18,"endColumn":20,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":711,"endOffset":711,"startLine":29,"endLine":29,"startColumn":22,"endColumn":22,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"!!","startOffset":713,"endOffset":714,"startLine":29,"endLine":29,"startColumn":24,"endColumn":25,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":"1n","startOffset":715,"endOffset":716,"startLine":29,"endLine":29,"startColumn":26,"endColumn":27,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"!","startOffset":717,"endOffset":717,"startLine":29,"endLine":29,"startColumn":28,"endColumn":28,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":";","startOffset":718,"endOffset":718,"startLine":29,"endLine":29,"startColumn":29,"endColumn":29,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":720,"endOffset":722,"startLine":30,"endLine":30,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"fPrecedence","startOffset":724,"endOffset":734,"startLine":30,"endLine":30,"startColumn":5,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":735,"endOffset":735,"startLine":30,"endLine":30,"startColumn":16,"endColumn":16,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":737,"endOffset":739,"startLine":30,"endLine":30,"startColumn":18,"endColumn":20,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":741,"endOffset":741,"startLine":30,"endLine":30,"startColumn":22,"endColumn":22,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"+!","startOffset":743,"endOffset":744,"startLine":30,"endLine":30,"startColumn":24,"endColumn":25,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"1n","startOffset":745,"endOffset":746,"startLine":30,"endLine":30,"startColumn":26,"endColumn":27,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":747,"endOffset":747,"startLine":30,"endLine":30,"startColumn":28,"endColumn":28,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":749,"endOffset":751,"startLine":31,"endLine":31,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"gPrecedence","startOffset":753,"endOffset":763,"startLine":31,"endLine":31,"startColumn":5,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":764,"endOffset":764,"startLine":31,"endLine":31,"startColumn":16,"endColumn":16,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":766,"endOffset":768,"startLine":31,"endLine":31,"startColumn":18,"endColumn":20,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":770,"endOffset":770,"startLine":31,"endLine":31,"startColumn":22,"endColumn":22,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":772,"endOffset":773,"startLine":31,"endLine":31,"startColumn":24,"endColumn":25,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"!+","startOffset":774,"endOffset":775,"startLine":31,"endLine":31,"startColumn":26,"endColumn":27,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":";","startOffset":776,"endOffset":776,"startLine":31,"endLine":31,"startColumn":28,"endColumn":28,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":778,"endOffset":780,"startLine":32,"endLine":32,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"hPrecedence","startOffset":782,"endOffset":792,"startLine":32,"endLine":32,"startColumn":5,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":793,"endOffset":793,"startLine":32,"endLine":32,"startColumn":16,"endColumn":16,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":795,"endOffset":797,"startLine":32,"endLine":32,"startColumn":18,"endColumn":20,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":799,"endOffset":799,"startLine":32,"endLine":32,"startColumn":22,"endColumn":22,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":801,"endOffset":802,"startLine":32,"endLine":32,"startColumn":24,"endColumn":25,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"+","startOffset":804,"endOffset":804,"startLine":32,"endLine":32,"startColumn":27,"endColumn":27,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"1n","startOffset":806,"endOffset":807,"startLine":32,"endLine":32,"startColumn":29,"endColumn":30,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"**","startOffset":809,"endOffset":810,"startLine":32,"endLine":32,"startColumn":32,"endColumn":33,"tokenTypeIdx":57,"tokenType":"TknOperator180"},{"image":"1n","startOffset":812,"endOffset":813,"startLine":32,"endLine":32,"startColumn":35,"endColumn":36,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"+","startOffset":815,"endOffset":815,"startLine":32,"endLine":32,"startColumn":38,"endColumn":38,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"1n","startOffset":817,"endOffset":818,"startLine":32,"endLine":32,"startColumn":40,"endColumn":41,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"*","startOffset":820,"endOffset":820,"startLine":32,"endLine":32,"startColumn":43,"endColumn":43,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":"2n","startOffset":822,"endOffset":823,"startLine":32,"endLine":32,"startColumn":45,"endColumn":46,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"/","startOffset":825,"endOffset":825,"startLine":32,"endLine":32,"startColumn":48,"endColumn":48,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":"3n","startOffset":827,"endOffset":828,"startLine":32,"endLine":32,"startColumn":50,"endColumn":51,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"%","startOffset":830,"endOffset":830,"startLine":32,"endLine":32,"startColumn":53,"endColumn":53,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":"4n","startOffset":832,"endOffset":833,"startLine":32,"endLine":32,"startColumn":55,"endColumn":56,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"-","startOffset":835,"endOffset":835,"startLine":32,"endLine":32,"startColumn":58,"endColumn":58,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"5n","startOffset":837,"endOffset":838,"startLine":32,"endLine":32,"startColumn":60,"endColumn":61,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"^","startOffset":840,"endOffset":840,"startLine":32,"endLine":32,"startColumn":63,"endColumn":63,"tokenTypeIdx":60,"tokenType":"TknOperator150"},{"image":"6n","startOffset":842,"endOffset":843,"startLine":32,"endLine":32,"startColumn":65,"endColumn":66,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"==","startOffset":845,"endOffset":846,"startLine":32,"endLine":32,"startColumn":68,"endColumn":69,"tokenTypeIdx":60,"tokenType":"TknOperator150"},{"image":"7n","startOffset":848,"endOffset":849,"startLine":32,"endLine":32,"startColumn":71,"endColumn":72,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"&&","startOffset":851,"endOffset":852,"startLine":32,"endLine":32,"startColumn":74,"endColumn":75,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":"8n","startOffset":854,"endOffset":855,"startLine":32,"endLine":32,"startColumn":77,"endColumn":78,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"<","startOffset":857,"endOffset":857,"startLine":32,"endLine":32,"startColumn":80,"endColumn":80,"tokenTypeIdx":62,"tokenType":"TknLeftArrow"},{"image":"9n","startOffset":859,"endOffset":860,"startLine":32,"endLine":32,"startColumn":82,"endColumn":83,"tokenTypeIdx":35,"tokenType":"I32"},{"image":">","startOffset":862,"endOffset":862,"startLine":32,"endLine":32,"startColumn":85,"endColumn":85,"tokenTypeIdx":63,"tokenType":"TknRightArrow"},{"image":"10n","startOffset":864,"endOffset":866,"startLine":32,"endLine":32,"startColumn":87,"endColumn":89,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"?","startOffset":868,"endOffset":868,"startLine":32,"endLine":32,"startColumn":91,"endColumn":91,"tokenTypeIdx":64,"tokenType":"TknQuestionMark"},{"image":"12n","startOffset":870,"endOffset":872,"startLine":32,"endLine":32,"startColumn":93,"endColumn":95,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":873,"endOffset":873,"startLine":32,"endLine":32,"startColumn":96,"endColumn":96,"tokenTypeIdx":54,"tokenType":"Semicolon"}],"groups":{"Reserved":[]},"errors":[]} \ No newline at end of file +{"tokens":[{"image":"let","startOffset":19,"endOffset":21,"startLine":2,"endLine":2,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"aINFIX","startOffset":23,"endOffset":28,"startLine":2,"endLine":2,"startColumn":5,"endColumn":10,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":29,"endOffset":29,"startLine":2,"endLine":2,"startColumn":11,"endColumn":11,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":31,"endOffset":33,"startLine":2,"endLine":2,"startColumn":13,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":35,"endOffset":35,"startLine":2,"endLine":2,"startColumn":17,"endColumn":17,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":37,"endOffset":38,"startLine":2,"endLine":2,"startColumn":19,"endColumn":20,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"+","startOffset":40,"endOffset":40,"startLine":2,"endLine":2,"startColumn":22,"endColumn":22,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"1n","startOffset":42,"endOffset":43,"startLine":2,"endLine":2,"startColumn":24,"endColumn":25,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":44,"endOffset":44,"startLine":2,"endLine":2,"startColumn":26,"endColumn":26,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":46,"endOffset":48,"startLine":3,"endLine":3,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"bINFIX","startOffset":50,"endOffset":55,"startLine":3,"endLine":3,"startColumn":5,"endColumn":10,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":56,"endOffset":56,"startLine":3,"endLine":3,"startColumn":11,"endColumn":11,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":58,"endOffset":60,"startLine":3,"endLine":3,"startColumn":13,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":62,"endOffset":62,"startLine":3,"endLine":3,"startColumn":17,"endColumn":17,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":64,"endOffset":65,"startLine":3,"endLine":3,"startColumn":19,"endColumn":20,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"-","startOffset":67,"endOffset":67,"startLine":3,"endLine":3,"startColumn":22,"endColumn":22,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"1n","startOffset":69,"endOffset":70,"startLine":3,"endLine":3,"startColumn":24,"endColumn":25,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":71,"endOffset":71,"startLine":3,"endLine":3,"startColumn":26,"endColumn":26,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":73,"endOffset":75,"startLine":4,"endLine":4,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"cINFIX","startOffset":77,"endOffset":82,"startLine":4,"endLine":4,"startColumn":5,"endColumn":10,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":83,"endOffset":83,"startLine":4,"endLine":4,"startColumn":11,"endColumn":11,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":85,"endOffset":87,"startLine":4,"endLine":4,"startColumn":13,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":89,"endOffset":89,"startLine":4,"endLine":4,"startColumn":17,"endColumn":17,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":91,"endOffset":92,"startLine":4,"endLine":4,"startColumn":19,"endColumn":20,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"*","startOffset":94,"endOffset":94,"startLine":4,"endLine":4,"startColumn":22,"endColumn":22,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":"1n","startOffset":96,"endOffset":97,"startLine":4,"endLine":4,"startColumn":24,"endColumn":25,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":98,"endOffset":98,"startLine":4,"endLine":4,"startColumn":26,"endColumn":26,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":100,"endOffset":102,"startLine":5,"endLine":5,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"dINFIX","startOffset":104,"endOffset":109,"startLine":5,"endLine":5,"startColumn":5,"endColumn":10,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":110,"endOffset":110,"startLine":5,"endLine":5,"startColumn":11,"endColumn":11,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":112,"endOffset":114,"startLine":5,"endLine":5,"startColumn":13,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":116,"endOffset":116,"startLine":5,"endLine":5,"startColumn":17,"endColumn":17,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":118,"endOffset":119,"startLine":5,"endLine":5,"startColumn":19,"endColumn":20,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"/","startOffset":121,"endOffset":121,"startLine":5,"endLine":5,"startColumn":22,"endColumn":22,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":"1n","startOffset":123,"endOffset":124,"startLine":5,"endLine":5,"startColumn":24,"endColumn":25,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":125,"endOffset":125,"startLine":5,"endLine":5,"startColumn":26,"endColumn":26,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":127,"endOffset":129,"startLine":6,"endLine":6,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"eINFIX","startOffset":131,"endOffset":136,"startLine":6,"endLine":6,"startColumn":5,"endColumn":10,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":137,"endOffset":137,"startLine":6,"endLine":6,"startColumn":11,"endColumn":11,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":139,"endOffset":141,"startLine":6,"endLine":6,"startColumn":13,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":143,"endOffset":143,"startLine":6,"endLine":6,"startColumn":17,"endColumn":17,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":145,"endOffset":146,"startLine":6,"endLine":6,"startColumn":19,"endColumn":20,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"%","startOffset":148,"endOffset":148,"startLine":6,"endLine":6,"startColumn":22,"endColumn":22,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":"1n","startOffset":150,"endOffset":151,"startLine":6,"endLine":6,"startColumn":24,"endColumn":25,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":152,"endOffset":152,"startLine":6,"endLine":6,"startColumn":26,"endColumn":26,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":154,"endOffset":156,"startLine":7,"endLine":7,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"fINFIX","startOffset":158,"endOffset":163,"startLine":7,"endLine":7,"startColumn":5,"endColumn":10,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":164,"endOffset":164,"startLine":7,"endLine":7,"startColumn":11,"endColumn":11,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":166,"endOffset":168,"startLine":7,"endLine":7,"startColumn":13,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":170,"endOffset":170,"startLine":7,"endLine":7,"startColumn":17,"endColumn":17,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":172,"endOffset":173,"startLine":7,"endLine":7,"startColumn":19,"endColumn":20,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"^","startOffset":175,"endOffset":175,"startLine":7,"endLine":7,"startColumn":22,"endColumn":22,"tokenTypeIdx":60,"tokenType":"TknOperator150"},{"image":"1n","startOffset":177,"endOffset":178,"startLine":7,"endLine":7,"startColumn":24,"endColumn":25,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":179,"endOffset":179,"startLine":7,"endLine":7,"startColumn":26,"endColumn":26,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":181,"endOffset":183,"startLine":8,"endLine":8,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"gINFIX","startOffset":185,"endOffset":190,"startLine":8,"endLine":8,"startColumn":5,"endColumn":10,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":191,"endOffset":191,"startLine":8,"endLine":8,"startColumn":11,"endColumn":11,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":193,"endOffset":195,"startLine":8,"endLine":8,"startColumn":13,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":197,"endOffset":197,"startLine":8,"endLine":8,"startColumn":17,"endColumn":17,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":199,"endOffset":200,"startLine":8,"endLine":8,"startColumn":19,"endColumn":20,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"==","startOffset":202,"endOffset":203,"startLine":8,"endLine":8,"startColumn":22,"endColumn":23,"tokenTypeIdx":60,"tokenType":"TknOperator150"},{"image":"1n","startOffset":205,"endOffset":206,"startLine":8,"endLine":8,"startColumn":25,"endColumn":26,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":207,"endOffset":207,"startLine":8,"endLine":8,"startColumn":27,"endColumn":27,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":229,"endOffset":231,"startLine":10,"endLine":10,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"aPREFIX","startOffset":233,"endOffset":239,"startLine":10,"endLine":10,"startColumn":5,"endColumn":11,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":240,"endOffset":240,"startLine":10,"endLine":10,"startColumn":12,"endColumn":12,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":242,"endOffset":244,"startLine":10,"endLine":10,"startColumn":14,"endColumn":16,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":246,"endOffset":246,"startLine":10,"endLine":10,"startColumn":18,"endColumn":18,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"+","startOffset":248,"endOffset":248,"startLine":10,"endLine":10,"startColumn":20,"endColumn":20,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"1n","startOffset":249,"endOffset":250,"startLine":10,"endLine":10,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":251,"endOffset":251,"startLine":10,"endLine":10,"startColumn":23,"endColumn":23,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":253,"endOffset":255,"startLine":11,"endLine":11,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"bPREFIX","startOffset":257,"endOffset":263,"startLine":11,"endLine":11,"startColumn":5,"endColumn":11,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":264,"endOffset":264,"startLine":11,"endLine":11,"startColumn":12,"endColumn":12,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":266,"endOffset":268,"startLine":11,"endLine":11,"startColumn":14,"endColumn":16,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":270,"endOffset":270,"startLine":11,"endLine":11,"startColumn":18,"endColumn":18,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"-","startOffset":272,"endOffset":272,"startLine":11,"endLine":11,"startColumn":20,"endColumn":20,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"1n","startOffset":273,"endOffset":274,"startLine":11,"endLine":11,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":275,"endOffset":275,"startLine":11,"endLine":11,"startColumn":23,"endColumn":23,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":277,"endOffset":279,"startLine":12,"endLine":12,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"cPREFIX","startOffset":281,"endOffset":287,"startLine":12,"endLine":12,"startColumn":5,"endColumn":11,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":288,"endOffset":288,"startLine":12,"endLine":12,"startColumn":12,"endColumn":12,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":290,"endOffset":292,"startLine":12,"endLine":12,"startColumn":14,"endColumn":16,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":294,"endOffset":294,"startLine":12,"endLine":12,"startColumn":18,"endColumn":18,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"*","startOffset":296,"endOffset":296,"startLine":12,"endLine":12,"startColumn":20,"endColumn":20,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":"1n","startOffset":297,"endOffset":298,"startLine":12,"endLine":12,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":299,"endOffset":299,"startLine":12,"endLine":12,"startColumn":23,"endColumn":23,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":301,"endOffset":303,"startLine":13,"endLine":13,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"dPREFIX","startOffset":305,"endOffset":311,"startLine":13,"endLine":13,"startColumn":5,"endColumn":11,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":312,"endOffset":312,"startLine":13,"endLine":13,"startColumn":12,"endColumn":12,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":314,"endOffset":316,"startLine":13,"endLine":13,"startColumn":14,"endColumn":16,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":318,"endOffset":318,"startLine":13,"endLine":13,"startColumn":18,"endColumn":18,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"/","startOffset":320,"endOffset":320,"startLine":13,"endLine":13,"startColumn":20,"endColumn":20,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":"1n","startOffset":321,"endOffset":322,"startLine":13,"endLine":13,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":323,"endOffset":323,"startLine":13,"endLine":13,"startColumn":23,"endColumn":23,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":325,"endOffset":327,"startLine":14,"endLine":14,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"ePREFIX","startOffset":329,"endOffset":335,"startLine":14,"endLine":14,"startColumn":5,"endColumn":11,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":336,"endOffset":336,"startLine":14,"endLine":14,"startColumn":12,"endColumn":12,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":338,"endOffset":340,"startLine":14,"endLine":14,"startColumn":14,"endColumn":16,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":342,"endOffset":342,"startLine":14,"endLine":14,"startColumn":18,"endColumn":18,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"%","startOffset":344,"endOffset":344,"startLine":14,"endLine":14,"startColumn":20,"endColumn":20,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":"1n","startOffset":345,"endOffset":346,"startLine":14,"endLine":14,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":347,"endOffset":347,"startLine":14,"endLine":14,"startColumn":23,"endColumn":23,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":349,"endOffset":351,"startLine":15,"endLine":15,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"fPREFIX","startOffset":353,"endOffset":359,"startLine":15,"endLine":15,"startColumn":5,"endColumn":11,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":360,"endOffset":360,"startLine":15,"endLine":15,"startColumn":12,"endColumn":12,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":362,"endOffset":364,"startLine":15,"endLine":15,"startColumn":14,"endColumn":16,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":366,"endOffset":366,"startLine":15,"endLine":15,"startColumn":18,"endColumn":18,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"^","startOffset":368,"endOffset":368,"startLine":15,"endLine":15,"startColumn":20,"endColumn":20,"tokenTypeIdx":60,"tokenType":"TknOperator150"},{"image":"1n","startOffset":369,"endOffset":370,"startLine":15,"endLine":15,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":371,"endOffset":371,"startLine":15,"endLine":15,"startColumn":23,"endColumn":23,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":394,"endOffset":396,"startLine":17,"endLine":17,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"aPOSTFIX","startOffset":398,"endOffset":405,"startLine":17,"endLine":17,"startColumn":5,"endColumn":12,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":406,"endOffset":406,"startLine":17,"endLine":17,"startColumn":13,"endColumn":13,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":408,"endOffset":410,"startLine":17,"endLine":17,"startColumn":15,"endColumn":17,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":412,"endOffset":412,"startLine":17,"endLine":17,"startColumn":19,"endColumn":19,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":414,"endOffset":415,"startLine":17,"endLine":17,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"+","startOffset":416,"endOffset":416,"startLine":17,"endLine":17,"startColumn":23,"endColumn":23,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":";","startOffset":417,"endOffset":417,"startLine":17,"endLine":17,"startColumn":24,"endColumn":24,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":419,"endOffset":421,"startLine":18,"endLine":18,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"bPOSTFIX","startOffset":423,"endOffset":430,"startLine":18,"endLine":18,"startColumn":5,"endColumn":12,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":431,"endOffset":431,"startLine":18,"endLine":18,"startColumn":13,"endColumn":13,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":433,"endOffset":435,"startLine":18,"endLine":18,"startColumn":15,"endColumn":17,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":437,"endOffset":437,"startLine":18,"endLine":18,"startColumn":19,"endColumn":19,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":439,"endOffset":440,"startLine":18,"endLine":18,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"-","startOffset":441,"endOffset":441,"startLine":18,"endLine":18,"startColumn":23,"endColumn":23,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":";","startOffset":442,"endOffset":442,"startLine":18,"endLine":18,"startColumn":24,"endColumn":24,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":444,"endOffset":446,"startLine":19,"endLine":19,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"cPOSTFIX","startOffset":448,"endOffset":455,"startLine":19,"endLine":19,"startColumn":5,"endColumn":12,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":456,"endOffset":456,"startLine":19,"endLine":19,"startColumn":13,"endColumn":13,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":458,"endOffset":460,"startLine":19,"endLine":19,"startColumn":15,"endColumn":17,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":462,"endOffset":462,"startLine":19,"endLine":19,"startColumn":19,"endColumn":19,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":464,"endOffset":465,"startLine":19,"endLine":19,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"*","startOffset":466,"endOffset":466,"startLine":19,"endLine":19,"startColumn":23,"endColumn":23,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":";","startOffset":467,"endOffset":467,"startLine":19,"endLine":19,"startColumn":24,"endColumn":24,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":469,"endOffset":471,"startLine":20,"endLine":20,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"dPOSTFIX","startOffset":473,"endOffset":480,"startLine":20,"endLine":20,"startColumn":5,"endColumn":12,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":481,"endOffset":481,"startLine":20,"endLine":20,"startColumn":13,"endColumn":13,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":483,"endOffset":485,"startLine":20,"endLine":20,"startColumn":15,"endColumn":17,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":487,"endOffset":487,"startLine":20,"endLine":20,"startColumn":19,"endColumn":19,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":489,"endOffset":490,"startLine":20,"endLine":20,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"/","startOffset":491,"endOffset":491,"startLine":20,"endLine":20,"startColumn":23,"endColumn":23,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":";","startOffset":492,"endOffset":492,"startLine":20,"endLine":20,"startColumn":24,"endColumn":24,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":494,"endOffset":496,"startLine":21,"endLine":21,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"ePOSTFIX","startOffset":498,"endOffset":505,"startLine":21,"endLine":21,"startColumn":5,"endColumn":12,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":506,"endOffset":506,"startLine":21,"endLine":21,"startColumn":13,"endColumn":13,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":508,"endOffset":510,"startLine":21,"endLine":21,"startColumn":15,"endColumn":17,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":512,"endOffset":512,"startLine":21,"endLine":21,"startColumn":19,"endColumn":19,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":514,"endOffset":515,"startLine":21,"endLine":21,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"%","startOffset":516,"endOffset":516,"startLine":21,"endLine":21,"startColumn":23,"endColumn":23,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":";","startOffset":517,"endOffset":517,"startLine":21,"endLine":21,"startColumn":24,"endColumn":24,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":519,"endOffset":521,"startLine":22,"endLine":22,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"fPOSTFIX","startOffset":523,"endOffset":530,"startLine":22,"endLine":22,"startColumn":5,"endColumn":12,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":531,"endOffset":531,"startLine":22,"endLine":22,"startColumn":13,"endColumn":13,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":533,"endOffset":535,"startLine":22,"endLine":22,"startColumn":15,"endColumn":17,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":537,"endOffset":537,"startLine":22,"endLine":22,"startColumn":19,"endColumn":19,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":539,"endOffset":540,"startLine":22,"endLine":22,"startColumn":21,"endColumn":22,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"^","startOffset":541,"endOffset":541,"startLine":22,"endLine":22,"startColumn":23,"endColumn":23,"tokenTypeIdx":60,"tokenType":"TknOperator150"},{"image":";","startOffset":542,"endOffset":542,"startLine":22,"endLine":22,"startColumn":24,"endColumn":24,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"aINFIX","startOffset":568,"endOffset":573,"startLine":24,"endLine":24,"startColumn":1,"endColumn":6,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"+=","startOffset":575,"endOffset":576,"startLine":24,"endLine":24,"startColumn":8,"endColumn":9,"tokenTypeIdx":66,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":578,"endOffset":579,"startLine":24,"endLine":24,"startColumn":11,"endColumn":12,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":580,"endOffset":580,"startLine":24,"endLine":24,"startColumn":13,"endColumn":13,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"bINFIX","startOffset":582,"endOffset":587,"startLine":25,"endLine":25,"startColumn":1,"endColumn":6,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"-=","startOffset":589,"endOffset":590,"startLine":25,"endLine":25,"startColumn":8,"endColumn":9,"tokenTypeIdx":66,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":592,"endOffset":593,"startLine":25,"endLine":25,"startColumn":11,"endColumn":12,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":594,"endOffset":594,"startLine":25,"endLine":25,"startColumn":13,"endColumn":13,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"cINFIX","startOffset":596,"endOffset":601,"startLine":26,"endLine":26,"startColumn":1,"endColumn":6,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"*=","startOffset":603,"endOffset":604,"startLine":26,"endLine":26,"startColumn":8,"endColumn":9,"tokenTypeIdx":66,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":606,"endOffset":607,"startLine":26,"endLine":26,"startColumn":11,"endColumn":12,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":608,"endOffset":608,"startLine":26,"endLine":26,"startColumn":13,"endColumn":13,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"dINFIX","startOffset":610,"endOffset":615,"startLine":27,"endLine":27,"startColumn":1,"endColumn":6,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"/=","startOffset":617,"endOffset":618,"startLine":27,"endLine":27,"startColumn":8,"endColumn":9,"tokenTypeIdx":66,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":620,"endOffset":621,"startLine":27,"endLine":27,"startColumn":11,"endColumn":12,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":622,"endOffset":622,"startLine":27,"endLine":27,"startColumn":13,"endColumn":13,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"eINFIX","startOffset":624,"endOffset":629,"startLine":28,"endLine":28,"startColumn":1,"endColumn":6,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"%=","startOffset":631,"endOffset":632,"startLine":28,"endLine":28,"startColumn":8,"endColumn":9,"tokenTypeIdx":66,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":634,"endOffset":635,"startLine":28,"endLine":28,"startColumn":11,"endColumn":12,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":636,"endOffset":636,"startLine":28,"endLine":28,"startColumn":13,"endColumn":13,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"fINFIX","startOffset":638,"endOffset":643,"startLine":29,"endLine":29,"startColumn":1,"endColumn":6,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"^=","startOffset":645,"endOffset":646,"startLine":29,"endLine":29,"startColumn":8,"endColumn":9,"tokenTypeIdx":66,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":648,"endOffset":649,"startLine":29,"endLine":29,"startColumn":11,"endColumn":12,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":650,"endOffset":650,"startLine":29,"endLine":29,"startColumn":13,"endColumn":13,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":667,"endOffset":669,"startLine":32,"endLine":32,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"aPrecedence","startOffset":671,"endOffset":681,"startLine":32,"endLine":32,"startColumn":5,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":682,"endOffset":682,"startLine":32,"endLine":32,"startColumn":16,"endColumn":16,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":684,"endOffset":686,"startLine":32,"endLine":32,"startColumn":18,"endColumn":20,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":688,"endOffset":688,"startLine":32,"endLine":32,"startColumn":22,"endColumn":22,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"(","startOffset":690,"endOffset":690,"startLine":32,"endLine":32,"startColumn":24,"endColumn":24,"tokenTypeIdx":44,"tokenType":"LeftParen"},{"image":"1n","startOffset":691,"endOffset":692,"startLine":32,"endLine":32,"startColumn":25,"endColumn":26,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"!","startOffset":693,"endOffset":693,"startLine":32,"endLine":32,"startColumn":27,"endColumn":27,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":")","startOffset":694,"endOffset":694,"startLine":32,"endLine":32,"startColumn":28,"endColumn":28,"tokenTypeIdx":45,"tokenType":"RightParen"},{"image":"+","startOffset":696,"endOffset":696,"startLine":32,"endLine":32,"startColumn":30,"endColumn":30,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"(","startOffset":698,"endOffset":698,"startLine":32,"endLine":32,"startColumn":32,"endColumn":32,"tokenTypeIdx":44,"tokenType":"LeftParen"},{"image":"1n","startOffset":699,"endOffset":700,"startLine":32,"endLine":32,"startColumn":33,"endColumn":34,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"!","startOffset":701,"endOffset":701,"startLine":32,"endLine":32,"startColumn":35,"endColumn":35,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":")","startOffset":702,"endOffset":702,"startLine":32,"endLine":32,"startColumn":36,"endColumn":36,"tokenTypeIdx":45,"tokenType":"RightParen"},{"image":";","startOffset":703,"endOffset":703,"startLine":32,"endLine":32,"startColumn":37,"endColumn":37,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":705,"endOffset":707,"startLine":33,"endLine":33,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"bPrecedence","startOffset":709,"endOffset":719,"startLine":33,"endLine":33,"startColumn":5,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":720,"endOffset":720,"startLine":33,"endLine":33,"startColumn":16,"endColumn":16,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":722,"endOffset":724,"startLine":33,"endLine":33,"startColumn":18,"endColumn":20,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":726,"endOffset":726,"startLine":33,"endLine":33,"startColumn":22,"endColumn":22,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"!","startOffset":728,"endOffset":728,"startLine":33,"endLine":33,"startColumn":24,"endColumn":24,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":"1n","startOffset":729,"endOffset":730,"startLine":33,"endLine":33,"startColumn":25,"endColumn":26,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"+","startOffset":732,"endOffset":732,"startLine":33,"endLine":33,"startColumn":28,"endColumn":28,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"!","startOffset":734,"endOffset":734,"startLine":33,"endLine":33,"startColumn":30,"endColumn":30,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":"1n","startOffset":735,"endOffset":736,"startLine":33,"endLine":33,"startColumn":31,"endColumn":32,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":737,"endOffset":737,"startLine":33,"endLine":33,"startColumn":33,"endColumn":33,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":739,"endOffset":741,"startLine":34,"endLine":34,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"cPrecedence","startOffset":743,"endOffset":753,"startLine":34,"endLine":34,"startColumn":5,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":754,"endOffset":754,"startLine":34,"endLine":34,"startColumn":16,"endColumn":16,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":756,"endOffset":758,"startLine":34,"endLine":34,"startColumn":18,"endColumn":20,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":760,"endOffset":760,"startLine":34,"endLine":34,"startColumn":22,"endColumn":22,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"!","startOffset":762,"endOffset":762,"startLine":34,"endLine":34,"startColumn":24,"endColumn":24,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":"1n","startOffset":763,"endOffset":764,"startLine":34,"endLine":34,"startColumn":25,"endColumn":26,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"!","startOffset":765,"endOffset":765,"startLine":34,"endLine":34,"startColumn":27,"endColumn":27,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":";","startOffset":766,"endOffset":766,"startLine":34,"endLine":34,"startColumn":28,"endColumn":28,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":768,"endOffset":770,"startLine":35,"endLine":35,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"dPrecedence","startOffset":772,"endOffset":782,"startLine":35,"endLine":35,"startColumn":5,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":783,"endOffset":783,"startLine":35,"endLine":35,"startColumn":16,"endColumn":16,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":785,"endOffset":787,"startLine":35,"endLine":35,"startColumn":18,"endColumn":20,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":789,"endOffset":789,"startLine":35,"endLine":35,"startColumn":22,"endColumn":22,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"!","startOffset":791,"endOffset":791,"startLine":35,"endLine":35,"startColumn":24,"endColumn":24,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":"1n","startOffset":792,"endOffset":793,"startLine":35,"endLine":35,"startColumn":25,"endColumn":26,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"!!","startOffset":794,"endOffset":795,"startLine":35,"endLine":35,"startColumn":27,"endColumn":28,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":";","startOffset":796,"endOffset":796,"startLine":35,"endLine":35,"startColumn":29,"endColumn":29,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":798,"endOffset":800,"startLine":36,"endLine":36,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"ePrecedence","startOffset":802,"endOffset":812,"startLine":36,"endLine":36,"startColumn":5,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":813,"endOffset":813,"startLine":36,"endLine":36,"startColumn":16,"endColumn":16,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":815,"endOffset":817,"startLine":36,"endLine":36,"startColumn":18,"endColumn":20,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":819,"endOffset":819,"startLine":36,"endLine":36,"startColumn":22,"endColumn":22,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"!!","startOffset":821,"endOffset":822,"startLine":36,"endLine":36,"startColumn":24,"endColumn":25,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":"1n","startOffset":823,"endOffset":824,"startLine":36,"endLine":36,"startColumn":26,"endColumn":27,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"!","startOffset":825,"endOffset":825,"startLine":36,"endLine":36,"startColumn":28,"endColumn":28,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":";","startOffset":826,"endOffset":826,"startLine":36,"endLine":36,"startColumn":29,"endColumn":29,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":828,"endOffset":830,"startLine":37,"endLine":37,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"fPrecedence","startOffset":832,"endOffset":842,"startLine":37,"endLine":37,"startColumn":5,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":843,"endOffset":843,"startLine":37,"endLine":37,"startColumn":16,"endColumn":16,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":845,"endOffset":847,"startLine":37,"endLine":37,"startColumn":18,"endColumn":20,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":849,"endOffset":849,"startLine":37,"endLine":37,"startColumn":22,"endColumn":22,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"+!","startOffset":851,"endOffset":852,"startLine":37,"endLine":37,"startColumn":24,"endColumn":25,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"1n","startOffset":853,"endOffset":854,"startLine":37,"endLine":37,"startColumn":26,"endColumn":27,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":855,"endOffset":855,"startLine":37,"endLine":37,"startColumn":28,"endColumn":28,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":857,"endOffset":859,"startLine":38,"endLine":38,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"gPrecedence","startOffset":861,"endOffset":871,"startLine":38,"endLine":38,"startColumn":5,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":872,"endOffset":872,"startLine":38,"endLine":38,"startColumn":16,"endColumn":16,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":874,"endOffset":876,"startLine":38,"endLine":38,"startColumn":18,"endColumn":20,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":878,"endOffset":878,"startLine":38,"endLine":38,"startColumn":22,"endColumn":22,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":880,"endOffset":881,"startLine":38,"endLine":38,"startColumn":24,"endColumn":25,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"!+","startOffset":882,"endOffset":883,"startLine":38,"endLine":38,"startColumn":26,"endColumn":27,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":";","startOffset":884,"endOffset":884,"startLine":38,"endLine":38,"startColumn":28,"endColumn":28,"tokenTypeIdx":54,"tokenType":"Semicolon"},{"image":"let","startOffset":886,"endOffset":888,"startLine":39,"endLine":39,"startColumn":1,"endColumn":3,"tokenTypeIdx":22,"tokenType":"LetToken"},{"image":"hPrecedence","startOffset":890,"endOffset":900,"startLine":39,"endLine":39,"startColumn":5,"endColumn":15,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":":","startOffset":901,"endOffset":901,"startLine":39,"endLine":39,"startColumn":16,"endColumn":16,"tokenTypeIdx":53,"tokenType":"Colon"},{"image":"i32","startOffset":903,"endOffset":905,"startLine":39,"endLine":39,"startColumn":18,"endColumn":20,"tokenTypeIdx":77,"tokenType":"TknIdentifier"},{"image":"=","startOffset":907,"endOffset":907,"startLine":39,"endLine":39,"startColumn":22,"endColumn":22,"tokenTypeIdx":67,"tokenType":"TknAssignmentOperator"},{"image":"1n","startOffset":909,"endOffset":910,"startLine":39,"endLine":39,"startColumn":24,"endColumn":25,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"+","startOffset":912,"endOffset":912,"startLine":39,"endLine":39,"startColumn":27,"endColumn":27,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"1n","startOffset":914,"endOffset":915,"startLine":39,"endLine":39,"startColumn":29,"endColumn":30,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"**","startOffset":917,"endOffset":918,"startLine":39,"endLine":39,"startColumn":32,"endColumn":33,"tokenTypeIdx":57,"tokenType":"TknOperator180"},{"image":"1n","startOffset":920,"endOffset":921,"startLine":39,"endLine":39,"startColumn":35,"endColumn":36,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"+","startOffset":923,"endOffset":923,"startLine":39,"endLine":39,"startColumn":38,"endColumn":38,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"1n","startOffset":925,"endOffset":926,"startLine":39,"endLine":39,"startColumn":40,"endColumn":41,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"*","startOffset":928,"endOffset":928,"startLine":39,"endLine":39,"startColumn":43,"endColumn":43,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":"2n","startOffset":930,"endOffset":931,"startLine":39,"endLine":39,"startColumn":45,"endColumn":46,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"/","startOffset":933,"endOffset":933,"startLine":39,"endLine":39,"startColumn":48,"endColumn":48,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":"3n","startOffset":935,"endOffset":936,"startLine":39,"endLine":39,"startColumn":50,"endColumn":51,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"%","startOffset":938,"endOffset":938,"startLine":39,"endLine":39,"startColumn":53,"endColumn":53,"tokenTypeIdx":58,"tokenType":"TknOperator170"},{"image":"4n","startOffset":940,"endOffset":941,"startLine":39,"endLine":39,"startColumn":55,"endColumn":56,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"-","startOffset":943,"endOffset":943,"startLine":39,"endLine":39,"startColumn":58,"endColumn":58,"tokenTypeIdx":59,"tokenType":"TknOperator160"},{"image":"5n","startOffset":945,"endOffset":946,"startLine":39,"endLine":39,"startColumn":60,"endColumn":61,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"^","startOffset":948,"endOffset":948,"startLine":39,"endLine":39,"startColumn":63,"endColumn":63,"tokenTypeIdx":60,"tokenType":"TknOperator150"},{"image":"6n","startOffset":950,"endOffset":951,"startLine":39,"endLine":39,"startColumn":65,"endColumn":66,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"==","startOffset":953,"endOffset":954,"startLine":39,"endLine":39,"startColumn":68,"endColumn":69,"tokenTypeIdx":60,"tokenType":"TknOperator150"},{"image":"7n","startOffset":956,"endOffset":957,"startLine":39,"endLine":39,"startColumn":71,"endColumn":72,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"&&","startOffset":959,"endOffset":960,"startLine":39,"endLine":39,"startColumn":74,"endColumn":75,"tokenTypeIdx":61,"tokenType":"TknOperator140"},{"image":"8n","startOffset":962,"endOffset":963,"startLine":39,"endLine":39,"startColumn":77,"endColumn":78,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"<","startOffset":965,"endOffset":965,"startLine":39,"endLine":39,"startColumn":80,"endColumn":80,"tokenTypeIdx":62,"tokenType":"TknLeftArrow"},{"image":"9n","startOffset":967,"endOffset":968,"startLine":39,"endLine":39,"startColumn":82,"endColumn":83,"tokenTypeIdx":35,"tokenType":"I32"},{"image":">","startOffset":970,"endOffset":970,"startLine":39,"endLine":39,"startColumn":85,"endColumn":85,"tokenTypeIdx":63,"tokenType":"TknRightArrow"},{"image":"10n","startOffset":972,"endOffset":974,"startLine":39,"endLine":39,"startColumn":87,"endColumn":89,"tokenTypeIdx":35,"tokenType":"I32"},{"image":"?","startOffset":976,"endOffset":976,"startLine":39,"endLine":39,"startColumn":91,"endColumn":91,"tokenTypeIdx":64,"tokenType":"TknQuestionMark"},{"image":"12n","startOffset":978,"endOffset":980,"startLine":39,"endLine":39,"startColumn":93,"endColumn":95,"tokenTypeIdx":35,"tokenType":"I32"},{"image":";","startOffset":981,"endOffset":981,"startLine":39,"endLine":39,"startColumn":96,"endColumn":96,"tokenTypeIdx":54,"tokenType":"Semicolon"}],"groups":{"Reserved":[]},"errors":[]} \ No newline at end of file diff --git a/__tests__/Tests/__snapshots__/Parser.test.ts.snap b/__tests__/Tests/__snapshots__/Parser.test.ts.snap index 2c2bd75..ea16df5 100644 --- a/__tests__/Tests/__snapshots__/Parser.test.ts.snap +++ b/__tests__/Tests/__snapshots__/Parser.test.ts.snap @@ -9075,7 +9075,7 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "flags": [], "name": { "category": 6, - "name": "fINFIX", + "name": "gINFIX", "nodeType": 50, "position": { "basePath": "", @@ -9946,6 +9946,240 @@ exports[`Parser: Operator Precedence Pass 1`] = ` }, }, }, + { + "category": 1, + "name": { + "category": 6, + "name": "aINFIX", + "nodeType": 51, + "position": { + "basePath": "", + "col": 1, + "file": "file", + "length": 6, + "line": 24, + "offset": 568, + }, + }, + "nodeType": 13, + "operatorImage": "+=", + "position": { + "basePath": "", + "col": 1, + "file": "file", + "length": 12, + "line": 24, + "offset": 568, + }, + "value": { + "category": 4, + "nodeType": 25, + "position": { + "basePath": "", + "col": 11, + "file": "file", + "length": 2, + "line": 24, + "offset": 578, + }, + "value": 1, + }, + }, + { + "category": 1, + "name": { + "category": 6, + "name": "bINFIX", + "nodeType": 51, + "position": { + "basePath": "", + "col": 1, + "file": "file", + "length": 6, + "line": 25, + "offset": 582, + }, + }, + "nodeType": 13, + "operatorImage": "-=", + "position": { + "basePath": "", + "col": 1, + "file": "file", + "length": 12, + "line": 25, + "offset": 582, + }, + "value": { + "category": 4, + "nodeType": 25, + "position": { + "basePath": "", + "col": 11, + "file": "file", + "length": 2, + "line": 25, + "offset": 592, + }, + "value": 1, + }, + }, + { + "category": 1, + "name": { + "category": 6, + "name": "cINFIX", + "nodeType": 51, + "position": { + "basePath": "", + "col": 1, + "file": "file", + "length": 6, + "line": 26, + "offset": 596, + }, + }, + "nodeType": 13, + "operatorImage": "*=", + "position": { + "basePath": "", + "col": 1, + "file": "file", + "length": 12, + "line": 26, + "offset": 596, + }, + "value": { + "category": 4, + "nodeType": 25, + "position": { + "basePath": "", + "col": 11, + "file": "file", + "length": 2, + "line": 26, + "offset": 606, + }, + "value": 1, + }, + }, + { + "category": 1, + "name": { + "category": 6, + "name": "dINFIX", + "nodeType": 51, + "position": { + "basePath": "", + "col": 1, + "file": "file", + "length": 6, + "line": 27, + "offset": 610, + }, + }, + "nodeType": 13, + "operatorImage": "/=", + "position": { + "basePath": "", + "col": 1, + "file": "file", + "length": 12, + "line": 27, + "offset": 610, + }, + "value": { + "category": 4, + "nodeType": 25, + "position": { + "basePath": "", + "col": 11, + "file": "file", + "length": 2, + "line": 27, + "offset": 620, + }, + "value": 1, + }, + }, + { + "category": 1, + "name": { + "category": 6, + "name": "eINFIX", + "nodeType": 51, + "position": { + "basePath": "", + "col": 1, + "file": "file", + "length": 6, + "line": 28, + "offset": 624, + }, + }, + "nodeType": 13, + "operatorImage": "%=", + "position": { + "basePath": "", + "col": 1, + "file": "file", + "length": 12, + "line": 28, + "offset": 624, + }, + "value": { + "category": 4, + "nodeType": 25, + "position": { + "basePath": "", + "col": 11, + "file": "file", + "length": 2, + "line": 28, + "offset": 634, + }, + "value": 1, + }, + }, + { + "category": 1, + "name": { + "category": 6, + "name": "fINFIX", + "nodeType": 51, + "position": { + "basePath": "", + "col": 1, + "file": "file", + "length": 6, + "line": 29, + "offset": 638, + }, + }, + "nodeType": 13, + "operatorImage": "^=", + "position": { + "basePath": "", + "col": 1, + "file": "file", + "length": 12, + "line": 29, + "offset": 638, + }, + "value": { + "category": 4, + "nodeType": 25, + "position": { + "basePath": "", + "col": 11, + "file": "file", + "length": 2, + "line": 29, + "offset": 648, + }, + "value": 1, + }, + }, { "category": 1, "declarationType": 1, @@ -9959,8 +10193,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 5, "file": "file", "length": 11, - "line": 25, - "offset": 563, + "line": 32, + "offset": 671, }, }, "nodeType": 12, @@ -9969,8 +10203,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 1, "file": "file", "length": 37, - "line": 25, - "offset": 559, + "line": 32, + "offset": 667, }, "value": { "category": 3, @@ -9982,8 +10216,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 24, "file": "file", "length": 5, - "line": 25, - "offset": 582, + "line": 32, + "offset": 690, }, "value": { "category": 3, @@ -9994,8 +10228,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 27, "file": "file", "length": 1, - "line": 25, - "offset": 585, + "line": 32, + "offset": 693, }, "statement": false, "value": { @@ -10006,8 +10240,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 25, "file": "file", "length": 2, - "line": 25, - "offset": 583, + "line": 32, + "offset": 691, }, "value": 1, }, @@ -10020,8 +10254,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 24, "file": "file", "length": 13, - "line": 25, - "offset": 582, + "line": 32, + "offset": 690, }, "rhs": { "category": 3, @@ -10031,8 +10265,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 32, "file": "file", "length": 5, - "line": 25, - "offset": 590, + "line": 32, + "offset": 698, }, "value": { "category": 3, @@ -10043,8 +10277,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 35, "file": "file", "length": 1, - "line": 25, - "offset": 593, + "line": 32, + "offset": 701, }, "statement": false, "value": { @@ -10055,8 +10289,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 33, "file": "file", "length": 2, - "line": 25, - "offset": 591, + "line": 32, + "offset": 699, }, "value": 1, }, @@ -10072,8 +10306,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 18, "file": "file", "length": 3, - "line": 25, - "offset": 576, + "line": 32, + "offset": 684, }, }, }, @@ -10090,8 +10324,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 5, "file": "file", "length": 11, - "line": 26, - "offset": 601, + "line": 33, + "offset": 709, }, }, "nodeType": 12, @@ -10100,8 +10334,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 1, "file": "file", "length": 34, - "line": 26, - "offset": 597, + "line": 33, + "offset": 705, }, "value": { "category": 3, @@ -10114,8 +10348,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 24, "file": "file", "length": 4, - "line": 26, - "offset": 620, + "line": 33, + "offset": 728, }, "value": { "category": 4, @@ -10125,8 +10359,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 25, "file": "file", "length": 2, - "line": 26, - "offset": 621, + "line": 33, + "offset": 729, }, "value": 1, }, @@ -10138,8 +10372,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 24, "file": "file", "length": 10, - "line": 26, - "offset": 620, + "line": 33, + "offset": 728, }, "rhs": { "category": 3, @@ -10150,8 +10384,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 30, "file": "file", "length": 4, - "line": 26, - "offset": 626, + "line": 33, + "offset": 734, }, "value": { "category": 4, @@ -10161,8 +10395,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 31, "file": "file", "length": 2, - "line": 26, - "offset": 627, + "line": 33, + "offset": 735, }, "value": 1, }, @@ -10177,8 +10411,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 18, "file": "file", "length": 3, - "line": 26, - "offset": 614, + "line": 33, + "offset": 722, }, }, }, @@ -10195,8 +10429,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 5, "file": "file", "length": 11, - "line": 27, - "offset": 635, + "line": 34, + "offset": 743, }, }, "nodeType": 12, @@ -10205,8 +10439,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 1, "file": "file", "length": 29, - "line": 27, - "offset": 631, + "line": 34, + "offset": 739, }, "value": { "category": 3, @@ -10217,8 +10451,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 27, "file": "file", "length": 2, - "line": 27, - "offset": 657, + "line": 34, + "offset": 765, }, "statement": false, "value": { @@ -10230,8 +10464,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 24, "file": "file", "length": 4, - "line": 27, - "offset": 654, + "line": 34, + "offset": 762, }, "value": { "category": 4, @@ -10241,8 +10475,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 25, "file": "file", "length": 2, - "line": 27, - "offset": 655, + "line": 34, + "offset": 763, }, "value": 1, }, @@ -10257,8 +10491,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 18, "file": "file", "length": 3, - "line": 27, - "offset": 648, + "line": 34, + "offset": 756, }, }, }, @@ -10275,8 +10509,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 5, "file": "file", "length": 11, - "line": 28, - "offset": 664, + "line": 35, + "offset": 772, }, }, "nodeType": 12, @@ -10285,8 +10519,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 1, "file": "file", "length": 29, - "line": 28, - "offset": 660, + "line": 35, + "offset": 768, }, "value": { "category": 3, @@ -10297,8 +10531,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 27, "file": "file", "length": 2, - "line": 28, - "offset": 686, + "line": 35, + "offset": 794, }, "statement": false, "value": { @@ -10310,8 +10544,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 24, "file": "file", "length": 4, - "line": 28, - "offset": 683, + "line": 35, + "offset": 791, }, "value": { "category": 4, @@ -10321,8 +10555,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 25, "file": "file", "length": 2, - "line": 28, - "offset": 684, + "line": 35, + "offset": 792, }, "value": 1, }, @@ -10337,8 +10571,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 18, "file": "file", "length": 3, - "line": 28, - "offset": 677, + "line": 35, + "offset": 785, }, }, }, @@ -10355,8 +10589,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 5, "file": "file", "length": 11, - "line": 29, - "offset": 694, + "line": 36, + "offset": 802, }, }, "nodeType": 12, @@ -10365,8 +10599,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 1, "file": "file", "length": 30, - "line": 29, - "offset": 690, + "line": 36, + "offset": 798, }, "value": { "category": 3, @@ -10377,8 +10611,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 28, "file": "file", "length": 2, - "line": 29, - "offset": 717, + "line": 36, + "offset": 825, }, "statement": false, "value": { @@ -10390,8 +10624,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 24, "file": "file", "length": 5, - "line": 29, - "offset": 713, + "line": 36, + "offset": 821, }, "value": { "category": 4, @@ -10401,8 +10635,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 26, "file": "file", "length": 2, - "line": 29, - "offset": 715, + "line": 36, + "offset": 823, }, "value": 1, }, @@ -10417,8 +10651,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 18, "file": "file", "length": 3, - "line": 29, - "offset": 707, + "line": 36, + "offset": 815, }, }, }, @@ -10435,8 +10669,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 5, "file": "file", "length": 11, - "line": 30, - "offset": 724, + "line": 37, + "offset": 832, }, }, "nodeType": 12, @@ -10445,8 +10679,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 1, "file": "file", "length": 29, - "line": 30, - "offset": 720, + "line": 37, + "offset": 828, }, "value": { "category": 3, @@ -10457,8 +10691,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 24, "file": "file", "length": 5, - "line": 30, - "offset": 743, + "line": 37, + "offset": 851, }, "value": { "category": 4, @@ -10468,8 +10702,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 26, "file": "file", "length": 2, - "line": 30, - "offset": 745, + "line": 37, + "offset": 853, }, "value": 1, }, @@ -10483,8 +10717,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 18, "file": "file", "length": 3, - "line": 30, - "offset": 737, + "line": 37, + "offset": 845, }, }, }, @@ -10501,8 +10735,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 5, "file": "file", "length": 11, - "line": 31, - "offset": 753, + "line": 38, + "offset": 861, }, }, "nodeType": 12, @@ -10511,8 +10745,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 1, "file": "file", "length": 27, - "line": 31, - "offset": 749, + "line": 38, + "offset": 857, }, "value": { "category": 3, @@ -10523,8 +10757,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 26, "file": "file", "length": 1, - "line": 31, - "offset": 774, + "line": 38, + "offset": 882, }, "statement": false, "value": { @@ -10535,8 +10769,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 24, "file": "file", "length": 2, - "line": 31, - "offset": 772, + "line": 38, + "offset": 880, }, "value": 1, }, @@ -10550,8 +10784,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 18, "file": "file", "length": 3, - "line": 31, - "offset": 766, + "line": 38, + "offset": 874, }, }, }, @@ -10568,8 +10802,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 5, "file": "file", "length": 11, - "line": 32, - "offset": 782, + "line": 39, + "offset": 890, }, }, "nodeType": 12, @@ -10578,8 +10812,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 1, "file": "file", "length": 96, - "line": 32, - "offset": 778, + "line": 39, + "offset": 886, }, "value": { "category": 3, @@ -10593,8 +10827,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 24, "file": "file", "length": 2, - "line": 32, - "offset": 801, + "line": 39, + "offset": 909, }, "value": 1, }, @@ -10605,8 +10839,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 24, "file": "file", "length": 7, - "line": 32, - "offset": 801, + "line": 39, + "offset": 909, }, "rhs": { "category": 4, @@ -10616,8 +10850,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 29, "file": "file", "length": 2, - "line": 32, - "offset": 806, + "line": 39, + "offset": 914, }, "value": 1, }, @@ -10629,8 +10863,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 24, "file": "file", "length": 72, - "line": 32, - "offset": 801, + "line": 39, + "offset": 909, }, "rhs": { "category": 3, @@ -10648,8 +10882,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 35, "file": "file", "length": 2, - "line": 32, - "offset": 812, + "line": 39, + "offset": 920, }, "value": 1, }, @@ -10660,8 +10894,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 35, "file": "file", "length": 7, - "line": 32, - "offset": 812, + "line": 39, + "offset": 920, }, "rhs": { "category": 4, @@ -10671,8 +10905,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 40, "file": "file", "length": 2, - "line": 32, - "offset": 817, + "line": 39, + "offset": 925, }, "value": 1, }, @@ -10684,8 +10918,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 35, "file": "file", "length": 12, - "line": 32, - "offset": 812, + "line": 39, + "offset": 920, }, "rhs": { "category": 4, @@ -10695,8 +10929,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 45, "file": "file", "length": 2, - "line": 32, - "offset": 822, + "line": 39, + "offset": 930, }, "value": 2, }, @@ -10708,8 +10942,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 35, "file": "file", "length": 17, - "line": 32, - "offset": 812, + "line": 39, + "offset": 920, }, "rhs": { "category": 4, @@ -10719,8 +10953,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 50, "file": "file", "length": 2, - "line": 32, - "offset": 827, + "line": 39, + "offset": 935, }, "value": 3, }, @@ -10732,8 +10966,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 35, "file": "file", "length": 61, - "line": 32, - "offset": 812, + "line": 39, + "offset": 920, }, "rhs": { "category": 3, @@ -10745,8 +10979,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 55, "file": "file", "length": 2, - "line": 32, - "offset": 832, + "line": 39, + "offset": 940, }, "value": 4, }, @@ -10757,8 +10991,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 55, "file": "file", "length": 41, - "line": 32, - "offset": 832, + "line": 39, + "offset": 940, }, "rhs": { "category": 3, @@ -10772,8 +11006,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 60, "file": "file", "length": 2, - "line": 32, - "offset": 837, + "line": 39, + "offset": 945, }, "value": 5, }, @@ -10784,8 +11018,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 60, "file": "file", "length": 7, - "line": 32, - "offset": 837, + "line": 39, + "offset": 945, }, "rhs": { "category": 4, @@ -10795,8 +11029,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 65, "file": "file", "length": 2, - "line": 32, - "offset": 842, + "line": 39, + "offset": 950, }, "value": 6, }, @@ -10808,8 +11042,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 60, "file": "file", "length": 36, - "line": 32, - "offset": 837, + "line": 39, + "offset": 945, }, "rhs": { "category": 3, @@ -10827,8 +11061,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 71, "file": "file", "length": 2, - "line": 32, - "offset": 848, + "line": 39, + "offset": 956, }, "value": 7, }, @@ -10839,8 +11073,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 71, "file": "file", "length": 8, - "line": 32, - "offset": 848, + "line": 39, + "offset": 956, }, "rhs": { "category": 4, @@ -10850,8 +11084,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 77, "file": "file", "length": 2, - "line": 32, - "offset": 854, + "line": 39, + "offset": 962, }, "value": 8, }, @@ -10863,8 +11097,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 71, "file": "file", "length": 13, - "line": 32, - "offset": 848, + "line": 39, + "offset": 956, }, "rhs": { "category": 4, @@ -10874,8 +11108,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 82, "file": "file", "length": 2, - "line": 32, - "offset": 859, + "line": 39, + "offset": 967, }, "value": 9, }, @@ -10887,8 +11121,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 71, "file": "file", "length": 19, - "line": 32, - "offset": 848, + "line": 39, + "offset": 956, }, "rhs": { "category": 4, @@ -10898,8 +11132,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 87, "file": "file", "length": 3, - "line": 32, - "offset": 864, + "line": 39, + "offset": 972, }, "value": 10, }, @@ -10911,8 +11145,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 71, "file": "file", "length": 25, - "line": 32, - "offset": 848, + "line": 39, + "offset": 956, }, "rhs": { "category": 4, @@ -10922,8 +11156,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 93, "file": "file", "length": 3, - "line": 32, - "offset": 870, + "line": 39, + "offset": 978, }, "value": 12, }, @@ -10941,8 +11175,8 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "col": 18, "file": "file", "length": 3, - "line": 32, - "offset": 795, + "line": 39, + "offset": 903, }, }, }, @@ -10969,7 +11203,7 @@ exports[`Parser: Operator Precedence Pass 1`] = ` "basePath": "", "col": 0, "file": "file", - "length": 874, + "length": 982, "line": 0, "offset": 0, }, diff --git a/src/Compiler/Lexer/Tokens.ts b/src/Compiler/Lexer/Tokens.ts index daec1ec..529bce6 100644 --- a/src/Compiler/Lexer/Tokens.ts +++ b/src/Compiler/Lexer/Tokens.ts @@ -480,7 +480,7 @@ export const TknAssignmentOperator = createToken({ label: 'TknAssignmentOperator', name: LexerTokenType.TknAssignmentOperator, categories: assignmentOperators, - pattern: /(\+|-|\*|%)=/, + pattern: /[~$&*/+\-^|?%:.]=/, }); export const TknEqual = createToken({ label: 'Equal', diff --git a/src/Compiler/Parser/index.ts b/src/Compiler/Parser/index.ts index b484c3e..b3bcf96 100644 --- a/src/Compiler/Parser/index.ts +++ b/src/Compiler/Parser/index.ts @@ -523,7 +523,7 @@ class Parser extends EmbeddedActionsParser { 'assignmentStatement', (): Nodes.AssignmentStatementNode => { const name = this.SUBRULE(this.variableUsage); - const operatorImage = this.CONSUME(Tokens.assignmentOperators).image; + const operatorImage = this.CONSUME(Tokens.operators).image; const value = this.SUBRULE(this.expression); return this.ACTION((): Nodes.AssignmentStatementNode => { return {