File tree Expand file tree Collapse file tree 4 files changed +2973
-2933
lines changed Expand file tree Collapse file tree 4 files changed +2973
-2933
lines changed Original file line number Diff line number Diff line change @@ -285,7 +285,7 @@ Type cast expressions
285
285
286
286
1000 as u8;
287
287
let character = integer as char;
288
- let size: f64 = len(values) as f64;
288
+ let size: f64 = 1.0 + - len(values) as f64 + 1.0 ;
289
289
290
290
--------------------------------------------------------------------------------
291
291
@@ -302,12 +302,17 @@ let size: f64 = len(values) as f64;
302
302
(let_declaration
303
303
pattern: (identifier)
304
304
type: (primitive_type)
305
- value: (type_cast_expression
306
- value: (call_expression
307
- function: (identifier)
308
- arguments: (arguments
309
- (identifier)))
310
- type: (primitive_type))))
305
+ value: (binary_expression
306
+ left: (binary_expression
307
+ left: (float_literal)
308
+ right: (type_cast_expression
309
+ value: (unary_expression
310
+ (call_expression
311
+ function: (identifier)
312
+ arguments: (arguments
313
+ (identifier))))
314
+ type: (primitive_type)))
315
+ right: (float_literal))))
311
316
312
317
================================================================================
313
318
Call expressions
Original file line number Diff line number Diff line change @@ -2,7 +2,8 @@ const PREC = {
2
2
range : 15 ,
3
3
call : 14 ,
4
4
field : 13 ,
5
- unary : 11 ,
5
+ unary : 12 ,
6
+ cast : 11 ,
6
7
multiplicative : 10 ,
7
8
additive : 9 ,
8
9
shift : 8 ,
@@ -1074,11 +1075,11 @@ module.exports = grammar({
1074
1075
field ( 'right' , $ . _expression )
1075
1076
) ) ,
1076
1077
1077
- type_cast_expression : $ => seq (
1078
+ type_cast_expression : $ => prec . left ( PREC . cast , seq (
1078
1079
field ( 'value' , $ . _expression ) ,
1079
1080
'as' ,
1080
1081
field ( 'type' , $ . _type )
1081
- ) ,
1082
+ ) ) ,
1082
1083
1083
1084
return_expression : $ => choice (
1084
1085
prec . left ( seq ( 'return' , $ . _expression ) ) ,
Original file line number Diff line number Diff line change 5798
5798
},
5799
5799
"unary_expression" : {
5800
5800
"type" : " PREC" ,
5801
- "value" : 11 ,
5801
+ "value" : 12 ,
5802
5802
"content" : {
5803
5803
"type" : " SEQ" ,
5804
5804
"members" : [
5841
5841
},
5842
5842
"reference_expression" : {
5843
5843
"type" : " PREC" ,
5844
- "value" : 11 ,
5844
+ "value" : 12 ,
5845
5845
"content" : {
5846
5846
"type" : " SEQ" ,
5847
5847
"members" : [
6334
6334
}
6335
6335
},
6336
6336
"type_cast_expression" : {
6337
- "type" : " SEQ" ,
6338
- "members" : [
6339
- {
6340
- "type" : " FIELD" ,
6341
- "name" : " value" ,
6342
- "content" : {
6343
- "type" : " SYMBOL" ,
6344
- "name" : " _expression"
6345
- }
6346
- },
6347
- {
6348
- "type" : " STRING" ,
6349
- "value" : " as"
6350
- },
6351
- {
6352
- "type" : " FIELD" ,
6353
- "name" : " type" ,
6354
- "content" : {
6355
- "type" : " SYMBOL" ,
6356
- "name" : " _type"
6337
+ "type" : " PREC_LEFT" ,
6338
+ "value" : 11 ,
6339
+ "content" : {
6340
+ "type" : " SEQ" ,
6341
+ "members" : [
6342
+ {
6343
+ "type" : " FIELD" ,
6344
+ "name" : " value" ,
6345
+ "content" : {
6346
+ "type" : " SYMBOL" ,
6347
+ "name" : " _expression"
6348
+ }
6349
+ },
6350
+ {
6351
+ "type" : " STRING" ,
6352
+ "value" : " as"
6353
+ },
6354
+ {
6355
+ "type" : " FIELD" ,
6356
+ "name" : " type" ,
6357
+ "content" : {
6358
+ "type" : " SYMBOL" ,
6359
+ "name" : " _type"
6360
+ }
6357
6361
}
6358
- }
6359
- ]
6362
+ ]
6363
+ }
6360
6364
},
6361
6365
"return_expression" : {
6362
6366
"type" : " CHOICE" ,
You can’t perform that action at this time.
0 commit comments