Skip to content

Commit

Permalink
implemented if expression parser
Browse files Browse the repository at this point in the history
  • Loading branch information
ascandone committed Nov 22, 2024
1 parent 1cb7741 commit 6303612
Show file tree
Hide file tree
Showing 13 changed files with 754 additions and 407 deletions.
3 changes: 3 additions & 0 deletions Numscript.g4
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ REMAINING: 'remaining';
ALLOWING: 'allowing';
UNBOUNDED: 'unbounded';
OVERDRAFT: 'overdraft';
IF: 'if';
ELSE: 'else';
KEPT: 'kept';
SAVE: 'save';
LPARENS: '(';
Expand Down Expand Up @@ -95,6 +97,7 @@ destinationInOrderClause: MAX valueExpr keptOrDestination;
destination:
valueExpr # destAccount
| ifBranch = destination IF valueExpr ELSE elseBranch = destination # destIf
| LBRACE allotmentClauseDest+ RBRACE # destAllotment
| LBRACE destinationInOrderClause* REMAINING keptOrDestination RBRACE # destInorder;
allotmentClauseDest: allotment keptOrDestination;
Expand Down
68 changes: 67 additions & 1 deletion internal/parser/__snapshots__/parser_test.snap
Original file line number Diff line number Diff line change
Expand Up @@ -2199,7 +2199,6 @@ parser.Program{
}
---


[TestInfixPrec - 1]
parser.Program{
Vars: nil,
Expand Down Expand Up @@ -2264,3 +2263,70 @@ parser.Program{
},
}
---

[TestIfExprInDestSimple - 1]
parser.Program{
Vars: nil,
Statements: {
&parser.SendStatement{
Range: parser.Range{
Start: parser.Position{Character:0, Line:1},
End: parser.Position{Character:1, Line:6},
},
SentValue: &parser.SentValueAll{
Range: parser.Range{
Start: parser.Position{Character:5, Line:1},
End: parser.Position{Character:14, Line:1},
},
Asset: &parser.AssetLiteral{
Range: parser.Range{
Start: parser.Position{Character:6, Line:1},
End: parser.Position{Character:11, Line:1},
},
Asset: "USD/2",
},
},
Source: &parser.SourceAccount{
ValueExpr: &parser.AccountLiteral{
Range: parser.Range{
Start: parser.Position{Character:10, Line:2},
End: parser.Position{Character:16, Line:2},
},
Name: "world",
},
},
Destination: &parser.IfExpr[github.com/formancehq/numscript/internal/parser.Destination]{
Range: parser.Range{
Start: parser.Position{Character:2, Line:4},
End: parser.Position{Character:5, Line:5},
},
Condition: &parser.Variable{
Range: parser.Range{
Start: parser.Position{Character:9, Line:4},
End: parser.Position{Character:14, Line:4},
},
Name: "cond",
},
IfBranch: &parser.DestinationAccount{
ValueExpr: &parser.AccountLiteral{
Range: parser.Range{
Start: parser.Position{Character:2, Line:4},
End: parser.Position{Character:5, Line:4},
},
Name: "d1",
},
},
ElseBranch: &parser.DestinationAccount{
ValueExpr: &parser.AccountLiteral{
Range: parser.Range{
Start: parser.Position{Character:2, Line:5},
End: parser.Position{Character:5, Line:5},
},
Name: "d2",
},
},
},
},
},
}
---
6 changes: 5 additions & 1 deletion internal/parser/antlr/Numscript.interp
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ null
'allowing'
'unbounded'
'overdraft'
'if'
'else'
'kept'
'save'
'('
Expand Down Expand Up @@ -57,6 +59,8 @@ REMAINING
ALLOWING
UNBOUNDED
OVERDRAFT
IF
ELSE
KEPT
SAVE
LPARENS
Expand Down Expand Up @@ -102,4 +106,4 @@ statement


atn:
[4, 1, 37, 223, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 3, 1, 48, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 58, 8, 2, 1, 2, 1, 2, 1, 2, 5, 2, 63, 8, 2, 10, 2, 12, 2, 66, 9, 2, 1, 3, 1, 3, 1, 3, 5, 3, 71, 8, 3, 10, 3, 12, 3, 74, 9, 3, 1, 4, 1, 4, 1, 4, 3, 4, 79, 8, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 3, 6, 89, 8, 6, 1, 7, 1, 7, 1, 7, 5, 7, 94, 8, 7, 10, 7, 12, 7, 97, 9, 7, 1, 7, 1, 7, 1, 8, 3, 8, 102, 8, 8, 1, 8, 5, 8, 105, 8, 8, 10, 8, 12, 8, 108, 9, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 3, 10, 119, 8, 10, 1, 11, 1, 11, 1, 11, 3, 11, 124, 8, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 4, 12, 141, 8, 12, 11, 12, 12, 12, 142, 1, 12, 1, 12, 1, 12, 1, 12, 5, 12, 149, 8, 12, 10, 12, 12, 12, 152, 9, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 160, 8, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 3, 14, 169, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 4, 16, 178, 8, 16, 11, 16, 12, 16, 179, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 186, 8, 16, 10, 16, 12, 16, 189, 9, 16, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16, 195, 8, 16, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 3, 18, 202, 8, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 221, 8, 19, 1, 19, 0, 1, 4, 20, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 0, 1, 2, 0, 1, 1, 29, 29, 234, 0, 40, 1, 0, 0, 0, 2, 47, 1, 0, 0, 0, 4, 57, 1, 0, 0, 0, 6, 67, 1, 0, 0, 0, 8, 75, 1, 0, 0, 0, 10, 82, 1, 0, 0, 0, 12, 85, 1, 0, 0, 0, 14, 90, 1, 0, 0, 0, 16, 101, 1, 0, 0, 0, 18, 111, 1, 0, 0, 0, 20, 118, 1, 0, 0, 0, 22, 123, 1, 0, 0, 0, 24, 159, 1, 0, 0, 0, 26, 161, 1, 0, 0, 0, 28, 168, 1, 0, 0, 0, 30, 170, 1, 0, 0, 0, 32, 194, 1, 0, 0, 0, 34, 196, 1, 0, 0, 0, 36, 201, 1, 0, 0, 0, 38, 220, 1, 0, 0, 0, 40, 41, 5, 22, 0, 0, 41, 42, 3, 4, 2, 0, 42, 43, 3, 4, 2, 0, 43, 44, 5, 23, 0, 0, 44, 1, 1, 0, 0, 0, 45, 48, 5, 30, 0, 0, 46, 48, 5, 31, 0, 0, 47, 45, 1, 0, 0, 0, 47, 46, 1, 0, 0, 0, 48, 3, 1, 0, 0, 0, 49, 50, 6, 2, -1, 0, 50, 58, 5, 35, 0, 0, 51, 58, 5, 37, 0, 0, 52, 58, 5, 32, 0, 0, 53, 58, 5, 36, 0, 0, 54, 58, 5, 34, 0, 0, 55, 58, 3, 0, 0, 0, 56, 58, 3, 2, 1, 0, 57, 49, 1, 0, 0, 0, 57, 51, 1, 0, 0, 0, 57, 52, 1, 0, 0, 0, 57, 53, 1, 0, 0, 0, 57, 54, 1, 0, 0, 0, 57, 55, 1, 0, 0, 0, 57, 56, 1, 0, 0, 0, 58, 64, 1, 0, 0, 0, 59, 60, 10, 1, 0, 0, 60, 61, 7, 0, 0, 0, 61, 63, 3, 4, 2, 2, 62, 59, 1, 0, 0, 0, 63, 66, 1, 0, 0, 0, 64, 62, 1, 0, 0, 0, 64, 65, 1, 0, 0, 0, 65, 5, 1, 0, 0, 0, 66, 64, 1, 0, 0, 0, 67, 72, 3, 4, 2, 0, 68, 69, 5, 26, 0, 0, 69, 71, 3, 4, 2, 0, 70, 68, 1, 0, 0, 0, 71, 74, 1, 0, 0, 0, 72, 70, 1, 0, 0, 0, 72, 73, 1, 0, 0, 0, 73, 7, 1, 0, 0, 0, 74, 72, 1, 0, 0, 0, 75, 76, 5, 33, 0, 0, 76, 78, 5, 20, 0, 0, 77, 79, 3, 6, 3, 0, 78, 77, 1, 0, 0, 0, 78, 79, 1, 0, 0, 0, 79, 80, 1, 0, 0, 0, 80, 81, 5, 21, 0, 0, 81, 9, 1, 0, 0, 0, 82, 83, 5, 27, 0, 0, 83, 84, 3, 8, 4, 0, 84, 11, 1, 0, 0, 0, 85, 86, 5, 33, 0, 0, 86, 88, 5, 35, 0, 0, 87, 89, 3, 10, 5, 0, 88, 87, 1, 0, 0, 0, 88, 89, 1, 0, 0, 0, 89, 13, 1, 0, 0, 0, 90, 91, 5, 6, 0, 0, 91, 95, 5, 24, 0, 0, 92, 94, 3, 12, 6, 0, 93, 92, 1, 0, 0, 0, 94, 97, 1, 0, 0, 0, 95, 93, 1, 0, 0, 0, 95, 96, 1, 0, 0, 0, 96, 98, 1, 0, 0, 0, 97, 95, 1, 0, 0, 0, 98, 99, 5, 25, 0, 0, 99, 15, 1, 0, 0, 0, 100, 102, 3, 14, 7, 0, 101, 100, 1, 0, 0, 0, 101, 102, 1, 0, 0, 0, 102, 106, 1, 0, 0, 0, 103, 105, 3, 38, 19, 0, 104, 103, 1, 0, 0, 0, 105, 108, 1, 0, 0, 0, 106, 104, 1, 0, 0, 0, 106, 107, 1, 0, 0, 0, 107, 109, 1, 0, 0, 0, 108, 106, 1, 0, 0, 0, 109, 110, 5, 0, 0, 1, 110, 17, 1, 0, 0, 0, 111, 112, 5, 22, 0, 0, 112, 113, 3, 4, 2, 0, 113, 114, 5, 28, 0, 0, 114, 115, 5, 23, 0, 0, 115, 19, 1, 0, 0, 0, 116, 119, 3, 0, 0, 0, 117, 119, 5, 35, 0, 0, 118, 116, 1, 0, 0, 0, 118, 117, 1, 0, 0, 0, 119, 21, 1, 0, 0, 0, 120, 124, 3, 2, 1, 0, 121, 124, 5, 35, 0, 0, 122, 124, 5, 14, 0, 0, 123, 120, 1, 0, 0, 0, 123, 121, 1, 0, 0, 0, 123, 122, 1, 0, 0, 0, 124, 23, 1, 0, 0, 0, 125, 126, 3, 4, 2, 0, 126, 127, 5, 15, 0, 0, 127, 128, 5, 16, 0, 0, 128, 129, 5, 17, 0, 0, 129, 160, 1, 0, 0, 0, 130, 131, 3, 4, 2, 0, 131, 132, 5, 15, 0, 0, 132, 133, 5, 17, 0, 0, 133, 134, 5, 12, 0, 0, 134, 135, 5, 13, 0, 0, 135, 136, 3, 4, 2, 0, 136, 160, 1, 0, 0, 0, 137, 160, 3, 4, 2, 0, 138, 140, 5, 24, 0, 0, 139, 141, 3, 26, 13, 0, 140, 139, 1, 0, 0, 0, 141, 142, 1, 0, 0, 0, 142, 140, 1, 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 144, 1, 0, 0, 0, 144, 145, 5, 25, 0, 0, 145, 160, 1, 0, 0, 0, 146, 150, 5, 24, 0, 0, 147, 149, 3, 24, 12, 0, 148, 147, 1, 0, 0, 0, 149, 152, 1, 0, 0, 0, 150, 148, 1, 0, 0, 0, 150, 151, 1, 0, 0, 0, 151, 153, 1, 0, 0, 0, 152, 150, 1, 0, 0, 0, 153, 160, 5, 25, 0, 0, 154, 155, 5, 7, 0, 0, 155, 156, 3, 20, 10, 0, 156, 157, 5, 11, 0, 0, 157, 158, 3, 24, 12, 0, 158, 160, 1, 0, 0, 0, 159, 125, 1, 0, 0, 0, 159, 130, 1, 0, 0, 0, 159, 137, 1, 0, 0, 0, 159, 138, 1, 0, 0, 0, 159, 146, 1, 0, 0, 0, 159, 154, 1, 0, 0, 0, 160, 25, 1, 0, 0, 0, 161, 162, 3, 22, 11, 0, 162, 163, 5, 11, 0, 0, 163, 164, 3, 24, 12, 0, 164, 27, 1, 0, 0, 0, 165, 166, 5, 13, 0, 0, 166, 169, 3, 32, 16, 0, 167, 169, 5, 18, 0, 0, 168, 165, 1, 0, 0, 0, 168, 167, 1, 0, 0, 0, 169, 29, 1, 0, 0, 0, 170, 171, 5, 7, 0, 0, 171, 172, 3, 4, 2, 0, 172, 173, 3, 28, 14, 0, 173, 31, 1, 0, 0, 0, 174, 195, 3, 4, 2, 0, 175, 177, 5, 24, 0, 0, 176, 178, 3, 34, 17, 0, 177, 176, 1, 0, 0, 0, 178, 179, 1, 0, 0, 0, 179, 177, 1, 0, 0, 0, 179, 180, 1, 0, 0, 0, 180, 181, 1, 0, 0, 0, 181, 182, 5, 25, 0, 0, 182, 195, 1, 0, 0, 0, 183, 187, 5, 24, 0, 0, 184, 186, 3, 30, 15, 0, 185, 184, 1, 0, 0, 0, 186, 189, 1, 0, 0, 0, 187, 185, 1, 0, 0, 0, 187, 188, 1, 0, 0, 0, 188, 190, 1, 0, 0, 0, 189, 187, 1, 0, 0, 0, 190, 191, 5, 14, 0, 0, 191, 192, 3, 28, 14, 0, 192, 193, 5, 25, 0, 0, 193, 195, 1, 0, 0, 0, 194, 174, 1, 0, 0, 0, 194, 175, 1, 0, 0, 0, 194, 183, 1, 0, 0, 0, 195, 33, 1, 0, 0, 0, 196, 197, 3, 22, 11, 0, 197, 198, 3, 28, 14, 0, 198, 35, 1, 0, 0, 0, 199, 202, 3, 4, 2, 0, 200, 202, 3, 18, 9, 0, 201, 199, 1, 0, 0, 0, 201, 200, 1, 0, 0, 0, 202, 37, 1, 0, 0, 0, 203, 204, 5, 10, 0, 0, 204, 205, 3, 36, 18, 0, 205, 206, 5, 20, 0, 0, 206, 207, 5, 8, 0, 0, 207, 208, 5, 27, 0, 0, 208, 209, 3, 24, 12, 0, 209, 210, 5, 9, 0, 0, 210, 211, 5, 27, 0, 0, 211, 212, 3, 32, 16, 0, 212, 213, 5, 21, 0, 0, 213, 221, 1, 0, 0, 0, 214, 215, 5, 19, 0, 0, 215, 216, 3, 36, 18, 0, 216, 217, 5, 11, 0, 0, 217, 218, 3, 4, 2, 0, 218, 221, 1, 0, 0, 0, 219, 221, 3, 8, 4, 0, 220, 203, 1, 0, 0, 0, 220, 214, 1, 0, 0, 0, 220, 219, 1, 0, 0, 0, 221, 39, 1, 0, 0, 0, 20, 47, 57, 64, 72, 78, 88, 95, 101, 106, 118, 123, 142, 150, 159, 168, 179, 187, 194, 201, 220]
[4, 1, 39, 235, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 3, 1, 48, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 58, 8, 2, 1, 2, 1, 2, 1, 2, 5, 2, 63, 8, 2, 10, 2, 12, 2, 66, 9, 2, 1, 3, 1, 3, 1, 3, 5, 3, 71, 8, 3, 10, 3, 12, 3, 74, 9, 3, 1, 4, 1, 4, 1, 4, 3, 4, 79, 8, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 3, 6, 89, 8, 6, 1, 7, 1, 7, 1, 7, 5, 7, 94, 8, 7, 10, 7, 12, 7, 97, 9, 7, 1, 7, 1, 7, 1, 8, 3, 8, 102, 8, 8, 1, 8, 5, 8, 105, 8, 8, 10, 8, 12, 8, 108, 9, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 3, 10, 119, 8, 10, 1, 11, 1, 11, 1, 11, 3, 11, 124, 8, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 4, 12, 141, 8, 12, 11, 12, 12, 12, 142, 1, 12, 1, 12, 1, 12, 1, 12, 5, 12, 149, 8, 12, 10, 12, 12, 12, 152, 9, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 160, 8, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 3, 14, 169, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 4, 16, 179, 8, 16, 11, 16, 12, 16, 180, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 187, 8, 16, 10, 16, 12, 16, 190, 9, 16, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16, 196, 8, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 204, 8, 16, 10, 16, 12, 16, 207, 9, 16, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 3, 18, 214, 8, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 233, 8, 19, 1, 19, 0, 2, 4, 32, 20, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 0, 1, 2, 0, 1, 1, 31, 31, 247, 0, 40, 1, 0, 0, 0, 2, 47, 1, 0, 0, 0, 4, 57, 1, 0, 0, 0, 6, 67, 1, 0, 0, 0, 8, 75, 1, 0, 0, 0, 10, 82, 1, 0, 0, 0, 12, 85, 1, 0, 0, 0, 14, 90, 1, 0, 0, 0, 16, 101, 1, 0, 0, 0, 18, 111, 1, 0, 0, 0, 20, 118, 1, 0, 0, 0, 22, 123, 1, 0, 0, 0, 24, 159, 1, 0, 0, 0, 26, 161, 1, 0, 0, 0, 28, 168, 1, 0, 0, 0, 30, 170, 1, 0, 0, 0, 32, 195, 1, 0, 0, 0, 34, 208, 1, 0, 0, 0, 36, 213, 1, 0, 0, 0, 38, 232, 1, 0, 0, 0, 40, 41, 5, 24, 0, 0, 41, 42, 3, 4, 2, 0, 42, 43, 3, 4, 2, 0, 43, 44, 5, 25, 0, 0, 44, 1, 1, 0, 0, 0, 45, 48, 5, 32, 0, 0, 46, 48, 5, 33, 0, 0, 47, 45, 1, 0, 0, 0, 47, 46, 1, 0, 0, 0, 48, 3, 1, 0, 0, 0, 49, 50, 6, 2, -1, 0, 50, 58, 5, 37, 0, 0, 51, 58, 5, 39, 0, 0, 52, 58, 5, 34, 0, 0, 53, 58, 5, 38, 0, 0, 54, 58, 5, 36, 0, 0, 55, 58, 3, 0, 0, 0, 56, 58, 3, 2, 1, 0, 57, 49, 1, 0, 0, 0, 57, 51, 1, 0, 0, 0, 57, 52, 1, 0, 0, 0, 57, 53, 1, 0, 0, 0, 57, 54, 1, 0, 0, 0, 57, 55, 1, 0, 0, 0, 57, 56, 1, 0, 0, 0, 58, 64, 1, 0, 0, 0, 59, 60, 10, 1, 0, 0, 60, 61, 7, 0, 0, 0, 61, 63, 3, 4, 2, 2, 62, 59, 1, 0, 0, 0, 63, 66, 1, 0, 0, 0, 64, 62, 1, 0, 0, 0, 64, 65, 1, 0, 0, 0, 65, 5, 1, 0, 0, 0, 66, 64, 1, 0, 0, 0, 67, 72, 3, 4, 2, 0, 68, 69, 5, 28, 0, 0, 69, 71, 3, 4, 2, 0, 70, 68, 1, 0, 0, 0, 71, 74, 1, 0, 0, 0, 72, 70, 1, 0, 0, 0, 72, 73, 1, 0, 0, 0, 73, 7, 1, 0, 0, 0, 74, 72, 1, 0, 0, 0, 75, 76, 5, 35, 0, 0, 76, 78, 5, 22, 0, 0, 77, 79, 3, 6, 3, 0, 78, 77, 1, 0, 0, 0, 78, 79, 1, 0, 0, 0, 79, 80, 1, 0, 0, 0, 80, 81, 5, 23, 0, 0, 81, 9, 1, 0, 0, 0, 82, 83, 5, 29, 0, 0, 83, 84, 3, 8, 4, 0, 84, 11, 1, 0, 0, 0, 85, 86, 5, 35, 0, 0, 86, 88, 5, 37, 0, 0, 87, 89, 3, 10, 5, 0, 88, 87, 1, 0, 0, 0, 88, 89, 1, 0, 0, 0, 89, 13, 1, 0, 0, 0, 90, 91, 5, 6, 0, 0, 91, 95, 5, 26, 0, 0, 92, 94, 3, 12, 6, 0, 93, 92, 1, 0, 0, 0, 94, 97, 1, 0, 0, 0, 95, 93, 1, 0, 0, 0, 95, 96, 1, 0, 0, 0, 96, 98, 1, 0, 0, 0, 97, 95, 1, 0, 0, 0, 98, 99, 5, 27, 0, 0, 99, 15, 1, 0, 0, 0, 100, 102, 3, 14, 7, 0, 101, 100, 1, 0, 0, 0, 101, 102, 1, 0, 0, 0, 102, 106, 1, 0, 0, 0, 103, 105, 3, 38, 19, 0, 104, 103, 1, 0, 0, 0, 105, 108, 1, 0, 0, 0, 106, 104, 1, 0, 0, 0, 106, 107, 1, 0, 0, 0, 107, 109, 1, 0, 0, 0, 108, 106, 1, 0, 0, 0, 109, 110, 5, 0, 0, 1, 110, 17, 1, 0, 0, 0, 111, 112, 5, 24, 0, 0, 112, 113, 3, 4, 2, 0, 113, 114, 5, 30, 0, 0, 114, 115, 5, 25, 0, 0, 115, 19, 1, 0, 0, 0, 116, 119, 3, 0, 0, 0, 117, 119, 5, 37, 0, 0, 118, 116, 1, 0, 0, 0, 118, 117, 1, 0, 0, 0, 119, 21, 1, 0, 0, 0, 120, 124, 3, 2, 1, 0, 121, 124, 5, 37, 0, 0, 122, 124, 5, 14, 0, 0, 123, 120, 1, 0, 0, 0, 123, 121, 1, 0, 0, 0, 123, 122, 1, 0, 0, 0, 124, 23, 1, 0, 0, 0, 125, 126, 3, 4, 2, 0, 126, 127, 5, 15, 0, 0, 127, 128, 5, 16, 0, 0, 128, 129, 5, 17, 0, 0, 129, 160, 1, 0, 0, 0, 130, 131, 3, 4, 2, 0, 131, 132, 5, 15, 0, 0, 132, 133, 5, 17, 0, 0, 133, 134, 5, 12, 0, 0, 134, 135, 5, 13, 0, 0, 135, 136, 3, 4, 2, 0, 136, 160, 1, 0, 0, 0, 137, 160, 3, 4, 2, 0, 138, 140, 5, 26, 0, 0, 139, 141, 3, 26, 13, 0, 140, 139, 1, 0, 0, 0, 141, 142, 1, 0, 0, 0, 142, 140, 1, 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 144, 1, 0, 0, 0, 144, 145, 5, 27, 0, 0, 145, 160, 1, 0, 0, 0, 146, 150, 5, 26, 0, 0, 147, 149, 3, 24, 12, 0, 148, 147, 1, 0, 0, 0, 149, 152, 1, 0, 0, 0, 150, 148, 1, 0, 0, 0, 150, 151, 1, 0, 0, 0, 151, 153, 1, 0, 0, 0, 152, 150, 1, 0, 0, 0, 153, 160, 5, 27, 0, 0, 154, 155, 5, 7, 0, 0, 155, 156, 3, 20, 10, 0, 156, 157, 5, 11, 0, 0, 157, 158, 3, 24, 12, 0, 158, 160, 1, 0, 0, 0, 159, 125, 1, 0, 0, 0, 159, 130, 1, 0, 0, 0, 159, 137, 1, 0, 0, 0, 159, 138, 1, 0, 0, 0, 159, 146, 1, 0, 0, 0, 159, 154, 1, 0, 0, 0, 160, 25, 1, 0, 0, 0, 161, 162, 3, 22, 11, 0, 162, 163, 5, 11, 0, 0, 163, 164, 3, 24, 12, 0, 164, 27, 1, 0, 0, 0, 165, 166, 5, 13, 0, 0, 166, 169, 3, 32, 16, 0, 167, 169, 5, 20, 0, 0, 168, 165, 1, 0, 0, 0, 168, 167, 1, 0, 0, 0, 169, 29, 1, 0, 0, 0, 170, 171, 5, 7, 0, 0, 171, 172, 3, 4, 2, 0, 172, 173, 3, 28, 14, 0, 173, 31, 1, 0, 0, 0, 174, 175, 6, 16, -1, 0, 175, 196, 3, 4, 2, 0, 176, 178, 5, 26, 0, 0, 177, 179, 3, 34, 17, 0, 178, 177, 1, 0, 0, 0, 179, 180, 1, 0, 0, 0, 180, 178, 1, 0, 0, 0, 180, 181, 1, 0, 0, 0, 181, 182, 1, 0, 0, 0, 182, 183, 5, 27, 0, 0, 183, 196, 1, 0, 0, 0, 184, 188, 5, 26, 0, 0, 185, 187, 3, 30, 15, 0, 186, 185, 1, 0, 0, 0, 187, 190, 1, 0, 0, 0, 188, 186, 1, 0, 0, 0, 188, 189, 1, 0, 0, 0, 189, 191, 1, 0, 0, 0, 190, 188, 1, 0, 0, 0, 191, 192, 5, 14, 0, 0, 192, 193, 3, 28, 14, 0, 193, 194, 5, 27, 0, 0, 194, 196, 1, 0, 0, 0, 195, 174, 1, 0, 0, 0, 195, 176, 1, 0, 0, 0, 195, 184, 1, 0, 0, 0, 196, 205, 1, 0, 0, 0, 197, 198, 10, 3, 0, 0, 198, 199, 5, 18, 0, 0, 199, 200, 3, 4, 2, 0, 200, 201, 5, 19, 0, 0, 201, 202, 3, 32, 16, 4, 202, 204, 1, 0, 0, 0, 203, 197, 1, 0, 0, 0, 204, 207, 1, 0, 0, 0, 205, 203, 1, 0, 0, 0, 205, 206, 1, 0, 0, 0, 206, 33, 1, 0, 0, 0, 207, 205, 1, 0, 0, 0, 208, 209, 3, 22, 11, 0, 209, 210, 3, 28, 14, 0, 210, 35, 1, 0, 0, 0, 211, 214, 3, 4, 2, 0, 212, 214, 3, 18, 9, 0, 213, 211, 1, 0, 0, 0, 213, 212, 1, 0, 0, 0, 214, 37, 1, 0, 0, 0, 215, 216, 5, 10, 0, 0, 216, 217, 3, 36, 18, 0, 217, 218, 5, 22, 0, 0, 218, 219, 5, 8, 0, 0, 219, 220, 5, 29, 0, 0, 220, 221, 3, 24, 12, 0, 221, 222, 5, 9, 0, 0, 222, 223, 5, 29, 0, 0, 223, 224, 3, 32, 16, 0, 224, 225, 5, 23, 0, 0, 225, 233, 1, 0, 0, 0, 226, 227, 5, 21, 0, 0, 227, 228, 3, 36, 18, 0, 228, 229, 5, 11, 0, 0, 229, 230, 3, 4, 2, 0, 230, 233, 1, 0, 0, 0, 231, 233, 3, 8, 4, 0, 232, 215, 1, 0, 0, 0, 232, 226, 1, 0, 0, 0, 232, 231, 1, 0, 0, 0, 233, 39, 1, 0, 0, 0, 21, 47, 57, 64, 72, 78, 88, 95, 101, 106, 118, 123, 142, 150, 159, 168, 180, 188, 195, 205, 213, 232]
68 changes: 36 additions & 32 deletions internal/parser/antlr/Numscript.tokens
Original file line number Diff line number Diff line change
Expand Up @@ -15,26 +15,28 @@ REMAINING=14
ALLOWING=15
UNBOUNDED=16
OVERDRAFT=17
KEPT=18
SAVE=19
LPARENS=20
RPARENS=21
LBRACKET=22
RBRACKET=23
LBRACE=24
RBRACE=25
COMMA=26
EQ=27
STAR=28
MINUS=29
RATIO_PORTION_LITERAL=30
PERCENTAGE_PORTION_LITERAL=31
STRING=32
IDENTIFIER=33
NUMBER=34
VARIABLE_NAME=35
ACCOUNT=36
ASSET=37
IF=18
ELSE=19
KEPT=20
SAVE=21
LPARENS=22
RPARENS=23
LBRACKET=24
RBRACKET=25
LBRACE=26
RBRACE=27
COMMA=28
EQ=29
STAR=30
MINUS=31
RATIO_PORTION_LITERAL=32
PERCENTAGE_PORTION_LITERAL=33
STRING=34
IDENTIFIER=35
NUMBER=36
VARIABLE_NAME=37
ACCOUNT=38
ASSET=39
'+'=1
'vars'=6
'max'=7
Expand All @@ -48,15 +50,17 @@ ASSET=37
'allowing'=15
'unbounded'=16
'overdraft'=17
'kept'=18
'save'=19
'('=20
')'=21
'['=22
']'=23
'{'=24
'}'=25
','=26
'='=27
'*'=28
'-'=29
'if'=18
'else'=19
'kept'=20
'save'=21
'('=22
')'=23
'['=24
']'=25
'{'=26
'}'=27
','=28
'='=29
'*'=30
'-'=31
Loading

0 comments on commit 6303612

Please sign in to comment.