Skip to content
This repository was archived by the owner on Oct 20, 2022. It is now read-only.

Commit 223e949

Browse files
committed
grammar: inline operators
1 parent d9bb21e commit 223e949

File tree

9 files changed

+989
-1100
lines changed

9 files changed

+989
-1100
lines changed

grammar.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ module.exports = grammar({
115115
inline: ($) => [$.term, $.expression],
116116

117117
conflicts: ($) => [
118-
[$._structure_item, $.expr_operator_binary],
118+
[$._structure_item, $._expr_operator_binary],
119119
[
120120
$._structure_item,
121121
$.expr_map_update,
@@ -410,15 +410,15 @@ module.exports = grammar({
410410
seq(BINARY_LEFT, $.expression, BINARY_RIGHT, REV_FAT_ARROW, $.expression),
411411
expr_bitstring_filter: ($) => sepBy(COMMA, $.expression),
412412

413-
expr_op: ($) => choice($.expr_operator_unary, $.expr_operator_binary),
413+
expr_op: ($) => choice($._expr_operator_unary, $._expr_operator_binary),
414414

415-
expr_operator_unary: ($) =>
415+
_expr_operator_unary: ($) =>
416416
prec.right(
417417
PREC.UNARY_OP,
418418
seq(field("operator", oneOf(OP1)), field("operand", $.expression))
419419
),
420420

421-
expr_operator_binary: ($) =>
421+
_expr_operator_binary: ($) =>
422422
choice(
423423
prec.left(
424424
PREC.BINARY_OP,

src/grammar.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2088,15 +2088,15 @@
20882088
"members": [
20892089
{
20902090
"type": "SYMBOL",
2091-
"name": "expr_operator_unary"
2091+
"name": "_expr_operator_unary"
20922092
},
20932093
{
20942094
"type": "SYMBOL",
2095-
"name": "expr_operator_binary"
2095+
"name": "_expr_operator_binary"
20962096
}
20972097
]
20982098
},
2099-
"expr_operator_unary": {
2099+
"_expr_operator_unary": {
21002100
"type": "PREC_RIGHT",
21012101
"value": 10,
21022102
"content": {
@@ -2138,7 +2138,7 @@
21382138
]
21392139
}
21402140
},
2141-
"expr_operator_binary": {
2141+
"_expr_operator_binary": {
21422142
"type": "CHOICE",
21432143
"members": [
21442144
{
@@ -3921,7 +3921,7 @@
39213921
"conflicts": [
39223922
[
39233923
"_structure_item",
3924-
"expr_operator_binary"
3924+
"_expr_operator_binary"
39253925
],
39263926
[
39273927
"_structure_item",

src/node-types.json

Lines changed: 128 additions & 167 deletions
Original file line numberDiff line numberDiff line change
@@ -2855,29 +2855,10 @@
28552855
{
28562856
"type": "expr_op",
28572857
"named": true,
2858-
"fields": {},
2859-
"children": {
2860-
"multiple": false,
2861-
"required": true,
2862-
"types": [
2863-
{
2864-
"type": "expr_operator_binary",
2865-
"named": true
2866-
},
2867-
{
2868-
"type": "expr_operator_unary",
2869-
"named": true
2870-
}
2871-
]
2872-
}
2873-
},
2874-
{
2875-
"type": "expr_operator_binary",
2876-
"named": true,
28772858
"fields": {
28782859
"lhs": {
28792860
"multiple": true,
2880-
"required": true,
2861+
"required": false,
28812862
"types": [
28822863
{
28832864
"type": "(",
@@ -3009,123 +2990,9 @@
30092990
}
30102991
]
30112992
},
3012-
"operator": {
3013-
"multiple": false,
3014-
"required": true,
3015-
"types": [
3016-
{
3017-
"type": "*",
3018-
"named": false
3019-
},
3020-
{
3021-
"type": "+",
3022-
"named": false
3023-
},
3024-
{
3025-
"type": "++",
3026-
"named": false
3027-
},
3028-
{
3029-
"type": "-",
3030-
"named": false
3031-
},
3032-
{
3033-
"type": "--",
3034-
"named": false
3035-
},
3036-
{
3037-
"type": "/",
3038-
"named": false
3039-
},
3040-
{
3041-
"type": "/=",
3042-
"named": false
3043-
},
3044-
{
3045-
"type": "<",
3046-
"named": false
3047-
},
3048-
{
3049-
"type": "=!",
3050-
"named": false
3051-
},
3052-
{
3053-
"type": "=/=",
3054-
"named": false
3055-
},
3056-
{
3057-
"type": "=:=",
3058-
"named": false
3059-
},
3060-
{
3061-
"type": "=<",
3062-
"named": false
3063-
},
3064-
{
3065-
"type": "==",
3066-
"named": false
3067-
},
3068-
{
3069-
"type": ">",
3070-
"named": false
3071-
},
3072-
{
3073-
"type": ">=",
3074-
"named": false
3075-
},
3076-
{
3077-
"type": "and",
3078-
"named": false
3079-
},
3080-
{
3081-
"type": "andalso",
3082-
"named": false
3083-
},
3084-
{
3085-
"type": "band",
3086-
"named": false
3087-
},
3088-
{
3089-
"type": "bor",
3090-
"named": false
3091-
},
3092-
{
3093-
"type": "bsl",
3094-
"named": false
3095-
},
3096-
{
3097-
"type": "bsr",
3098-
"named": false
3099-
},
3100-
{
3101-
"type": "bxor",
3102-
"named": false
3103-
},
3104-
{
3105-
"type": "div",
3106-
"named": false
3107-
},
3108-
{
3109-
"type": "or",
3110-
"named": false
3111-
},
3112-
{
3113-
"type": "orelse",
3114-
"named": false
3115-
},
3116-
{
3117-
"type": "rem",
3118-
"named": false
3119-
},
3120-
{
3121-
"type": "xor",
3122-
"named": false
3123-
}
3124-
]
3125-
},
3126-
"rhs": {
2993+
"operand": {
31272994
"multiple": true,
3128-
"required": true,
2995+
"required": false,
31292996
"types": [
31302997
{
31312998
"type": "(",
@@ -3256,16 +3123,132 @@
32563123
"named": true
32573124
}
32583125
]
3259-
}
3260-
}
3261-
},
3262-
{
3263-
"type": "expr_operator_unary",
3264-
"named": true,
3265-
"fields": {
3266-
"operand": {
3267-
"multiple": true,
3126+
},
3127+
"operator": {
3128+
"multiple": false,
32683129
"required": true,
3130+
"types": [
3131+
{
3132+
"type": "*",
3133+
"named": false
3134+
},
3135+
{
3136+
"type": "+",
3137+
"named": false
3138+
},
3139+
{
3140+
"type": "++",
3141+
"named": false
3142+
},
3143+
{
3144+
"type": "-",
3145+
"named": false
3146+
},
3147+
{
3148+
"type": "--",
3149+
"named": false
3150+
},
3151+
{
3152+
"type": "/",
3153+
"named": false
3154+
},
3155+
{
3156+
"type": "/=",
3157+
"named": false
3158+
},
3159+
{
3160+
"type": "<",
3161+
"named": false
3162+
},
3163+
{
3164+
"type": "=!",
3165+
"named": false
3166+
},
3167+
{
3168+
"type": "=/=",
3169+
"named": false
3170+
},
3171+
{
3172+
"type": "=:=",
3173+
"named": false
3174+
},
3175+
{
3176+
"type": "=<",
3177+
"named": false
3178+
},
3179+
{
3180+
"type": "==",
3181+
"named": false
3182+
},
3183+
{
3184+
"type": ">",
3185+
"named": false
3186+
},
3187+
{
3188+
"type": ">=",
3189+
"named": false
3190+
},
3191+
{
3192+
"type": "and",
3193+
"named": false
3194+
},
3195+
{
3196+
"type": "andalso",
3197+
"named": false
3198+
},
3199+
{
3200+
"type": "band",
3201+
"named": false
3202+
},
3203+
{
3204+
"type": "bnot",
3205+
"named": false
3206+
},
3207+
{
3208+
"type": "bor",
3209+
"named": false
3210+
},
3211+
{
3212+
"type": "bsl",
3213+
"named": false
3214+
},
3215+
{
3216+
"type": "bsr",
3217+
"named": false
3218+
},
3219+
{
3220+
"type": "bxor",
3221+
"named": false
3222+
},
3223+
{
3224+
"type": "div",
3225+
"named": false
3226+
},
3227+
{
3228+
"type": "not",
3229+
"named": false
3230+
},
3231+
{
3232+
"type": "or",
3233+
"named": false
3234+
},
3235+
{
3236+
"type": "orelse",
3237+
"named": false
3238+
},
3239+
{
3240+
"type": "rem",
3241+
"named": false
3242+
},
3243+
{
3244+
"type": "xor",
3245+
"named": false
3246+
}
3247+
]
3248+
},
3249+
"rhs": {
3250+
"multiple": true,
3251+
"required": false,
32693252
"types": [
32703253
{
32713254
"type": "(",
@@ -3396,28 +3379,6 @@
33963379
"named": true
33973380
}
33983381
]
3399-
},
3400-
"operator": {
3401-
"multiple": false,
3402-
"required": true,
3403-
"types": [
3404-
{
3405-
"type": "+",
3406-
"named": false
3407-
},
3408-
{
3409-
"type": "-",
3410-
"named": false
3411-
},
3412-
{
3413-
"type": "bnot",
3414-
"named": false
3415-
},
3416-
{
3417-
"type": "not",
3418-
"named": false
3419-
}
3420-
]
34213382
}
34223383
}
34233384
},

0 commit comments

Comments
 (0)