Skip to content

Commit 6303612

Browse files
committed
implemented if expression parser
1 parent 1cb7741 commit 6303612

13 files changed

+754
-407
lines changed

Diff for: Numscript.g4

+3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ REMAINING: 'remaining';
1818
ALLOWING: 'allowing';
1919
UNBOUNDED: 'unbounded';
2020
OVERDRAFT: 'overdraft';
21+
IF: 'if';
22+
ELSE: 'else';
2123
KEPT: 'kept';
2224
SAVE: 'save';
2325
LPARENS: '(';
@@ -95,6 +97,7 @@ destinationInOrderClause: MAX valueExpr keptOrDestination;
9597
9698
destination:
9799
valueExpr # destAccount
100+
| ifBranch = destination IF valueExpr ELSE elseBranch = destination # destIf
98101
| LBRACE allotmentClauseDest+ RBRACE # destAllotment
99102
| LBRACE destinationInOrderClause* REMAINING keptOrDestination RBRACE # destInorder;
100103
allotmentClauseDest: allotment keptOrDestination;

Diff for: internal/parser/__snapshots__/parser_test.snap

+67-1
Original file line numberDiff line numberDiff line change
@@ -2199,7 +2199,6 @@ parser.Program{
21992199
}
22002200
---
22012201

2202-
22032202
[TestInfixPrec - 1]
22042203
parser.Program{
22052204
Vars: nil,
@@ -2264,3 +2263,70 @@ parser.Program{
22642263
},
22652264
}
22662265
---
2266+
2267+
[TestIfExprInDestSimple - 1]
2268+
parser.Program{
2269+
Vars: nil,
2270+
Statements: {
2271+
&parser.SendStatement{
2272+
Range: parser.Range{
2273+
Start: parser.Position{Character:0, Line:1},
2274+
End: parser.Position{Character:1, Line:6},
2275+
},
2276+
SentValue: &parser.SentValueAll{
2277+
Range: parser.Range{
2278+
Start: parser.Position{Character:5, Line:1},
2279+
End: parser.Position{Character:14, Line:1},
2280+
},
2281+
Asset: &parser.AssetLiteral{
2282+
Range: parser.Range{
2283+
Start: parser.Position{Character:6, Line:1},
2284+
End: parser.Position{Character:11, Line:1},
2285+
},
2286+
Asset: "USD/2",
2287+
},
2288+
},
2289+
Source: &parser.SourceAccount{
2290+
ValueExpr: &parser.AccountLiteral{
2291+
Range: parser.Range{
2292+
Start: parser.Position{Character:10, Line:2},
2293+
End: parser.Position{Character:16, Line:2},
2294+
},
2295+
Name: "world",
2296+
},
2297+
},
2298+
Destination: &parser.IfExpr[github.com/formancehq/numscript/internal/parser.Destination]{
2299+
Range: parser.Range{
2300+
Start: parser.Position{Character:2, Line:4},
2301+
End: parser.Position{Character:5, Line:5},
2302+
},
2303+
Condition: &parser.Variable{
2304+
Range: parser.Range{
2305+
Start: parser.Position{Character:9, Line:4},
2306+
End: parser.Position{Character:14, Line:4},
2307+
},
2308+
Name: "cond",
2309+
},
2310+
IfBranch: &parser.DestinationAccount{
2311+
ValueExpr: &parser.AccountLiteral{
2312+
Range: parser.Range{
2313+
Start: parser.Position{Character:2, Line:4},
2314+
End: parser.Position{Character:5, Line:4},
2315+
},
2316+
Name: "d1",
2317+
},
2318+
},
2319+
ElseBranch: &parser.DestinationAccount{
2320+
ValueExpr: &parser.AccountLiteral{
2321+
Range: parser.Range{
2322+
Start: parser.Position{Character:2, Line:5},
2323+
End: parser.Position{Character:5, Line:5},
2324+
},
2325+
Name: "d2",
2326+
},
2327+
},
2328+
},
2329+
},
2330+
},
2331+
}
2332+
---

Diff for: internal/parser/antlr/Numscript.interp

+5-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ null
1717
'allowing'
1818
'unbounded'
1919
'overdraft'
20+
'if'
21+
'else'
2022
'kept'
2123
'save'
2224
'('
@@ -57,6 +59,8 @@ REMAINING
5759
ALLOWING
5860
UNBOUNDED
5961
OVERDRAFT
62+
IF
63+
ELSE
6064
KEPT
6165
SAVE
6266
LPARENS
@@ -102,4 +106,4 @@ statement
102106

103107

104108
atn:
105-
[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]
109+
[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]

Diff for: internal/parser/antlr/Numscript.tokens

+36-32
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,28 @@ REMAINING=14
1515
ALLOWING=15
1616
UNBOUNDED=16
1717
OVERDRAFT=17
18-
KEPT=18
19-
SAVE=19
20-
LPARENS=20
21-
RPARENS=21
22-
LBRACKET=22
23-
RBRACKET=23
24-
LBRACE=24
25-
RBRACE=25
26-
COMMA=26
27-
EQ=27
28-
STAR=28
29-
MINUS=29
30-
RATIO_PORTION_LITERAL=30
31-
PERCENTAGE_PORTION_LITERAL=31
32-
STRING=32
33-
IDENTIFIER=33
34-
NUMBER=34
35-
VARIABLE_NAME=35
36-
ACCOUNT=36
37-
ASSET=37
18+
IF=18
19+
ELSE=19
20+
KEPT=20
21+
SAVE=21
22+
LPARENS=22
23+
RPARENS=23
24+
LBRACKET=24
25+
RBRACKET=25
26+
LBRACE=26
27+
RBRACE=27
28+
COMMA=28
29+
EQ=29
30+
STAR=30
31+
MINUS=31
32+
RATIO_PORTION_LITERAL=32
33+
PERCENTAGE_PORTION_LITERAL=33
34+
STRING=34
35+
IDENTIFIER=35
36+
NUMBER=36
37+
VARIABLE_NAME=37
38+
ACCOUNT=38
39+
ASSET=39
3840
'+'=1
3941
'vars'=6
4042
'max'=7
@@ -48,15 +50,17 @@ ASSET=37
4850
'allowing'=15
4951
'unbounded'=16
5052
'overdraft'=17
51-
'kept'=18
52-
'save'=19
53-
'('=20
54-
')'=21
55-
'['=22
56-
']'=23
57-
'{'=24
58-
'}'=25
59-
','=26
60-
'='=27
61-
'*'=28
62-
'-'=29
53+
'if'=18
54+
'else'=19
55+
'kept'=20
56+
'save'=21
57+
'('=22
58+
')'=23
59+
'['=24
60+
']'=25
61+
'{'=26
62+
'}'=27
63+
','=28
64+
'='=29
65+
'*'=30
66+
'-'=31

0 commit comments

Comments
 (0)