git.delta.rocks / jrsonnet / refs/commits / b1b8b4cf86ba

difftreelog

source

crates/jrsonnet-rowan-parser/jsonnet.ungram5.3 KiBsourcehistory
1// This file describes structure of jsonnet source code2// It is also used to generate files in src/generated34// Token names ending with `!` are considered meta, and handled specifically56SourceFile = Expr78ExprBinary =9    lhs:LhsExpr10    BinaryOperator11    rhs:Expr12ExprUnary =13    UnaryOperator14    rhs:Expr15ExprSlice =16    Expr17    SliceDesc18ExprIndex =19    Expr20    '.'21    index:Name22ExprIndexExpr =23    base:LhsExpr24    '['25    index:Expr26    ']'27ExprApply =28    Expr29    ArgsDesc30    'tailstrict'?31ExprObjExtend =32    LhsExpr33    Expr34ExprParened =35    '('36    Expr37    ')'3839ExprLiteral =40    Literal41ExprIntrinsicThisFile =42    '$intrinsicThisFile'43ExprIntrinsicId =44    '$intrinsicId'45ExprIntrinsic =46    '$intrinsic'47    '('48    name:Name49    ')'50ExprString =51    Text52ExprNumber =53    Number54ExprArray =55    '['56    (Expr (',' Expr)* ','?)?57    ']'58ExprObject =59    '{'60    ObjBody61    '}'62ExprArrayComp =63    '['64    Expr65    ','?66    CompSpec*67    ']'6869ExprImport =70    ImportKind Text7172ImportKind =73    'importstr'74|   'importbin'75|   'import'7677ExprVar =78    name:Name79ExprLocal =80    'local'81    (Bind (',' Bind)* ','?)82    ';'83    Expr8485ExprIfThenElse =86    'if'87    cond:Expr88    'then'89    then:TrueExpr90    ('else' else_:FalseExpr)?9192ExprFunction =93    'function'94    '('95    ParamsDesc96    ')'97    Expr98ExprAssert =99    Assertion100    ';'101    Expr102ExprError =103    'error'104    Expr105106Expr =107    ExprBinary108|   ExprUnary109|   ExprSlice110|   ExprIndex111|   ExprIndexExpr112|   ExprApply113|   ExprObjExtend114|   ExprParened115|   ExprIntrinsicThisFile116|   ExprIntrinsicId117|   ExprIntrinsic118|   ExprString119|   ExprNumber120|   ExprLiteral121|   ExprArray122|   ExprObject123|   ExprArrayComp124|   ExprImport125|   ExprVar126|   ExprLocal127|   ExprIfThenElse128|   ExprFunction129|   ExprAssert130|   ExprError131132BinaryOperator =133    '||' | '&&'134|   '|' | '^' | '&'135|   '==' | '!=' | '<' | '>' | '<=' | '>=' | 'in'136|   '<<' | '>>'137|   '+' | '-'138|   '*' | '/' | '%'139|   'META_OBJECT_APPLY!'140|   'ERROR_NO_OPERATOR!'141142UnaryOperator =143    '-' | '!' | '~'144145SliceDescEnd=Expr146SliceDescStep=Expr147SliceDesc =148    '['149    from:Expr?150    ':'151    (152        end:SliceDescEnd?153        (154            ':'155            step:SliceDescStep?156        )?157    )?158    ']'159160Name =161    'LIT_IDENT!'162163ArgsDesc =164    '('165    (Arg (',' Arg)* ','?)?166    ')'167Arg =168    (name:Name '=')? Expr169170ObjBodyComp =171    pre:ObjLocalPostComma*172    '['173    key:LhsExpr174    ']'175    '+'?176    ':'177    value:Expr178    post:ObjLocalPreComma*179    CompSpec*180ObjBodyMemberList =181    (Member (',' Member)* ','?)?182ObjBody =183    ObjBodyComp184|   ObjBodyMemberList185186ObjLocalPostComma =187    ObjLocal188    ','189ObjLocalPreComma =190    ','191    ObjLocal192193MemberBindStmt = ObjLocal194MemberAssertStmt = Assertion195MemberField = Field196Member =197    MemberBindStmt198|   MemberAssertStmt199|   MemberField200201ObjLocal =202    'local'203    Bind204205FieldNormal =206    FieldName207    '+'?208    Visibility209    Expr210FieldMethod =211    FieldName212    ParamsDesc213    Visibility214    Expr215Field =216    FieldNormal217|   FieldMethod218219FieldNameFixed =220    id:Name221|   Text222FieldNameDynamic =223    '['224    Expr225    ']'226FieldName =227    FieldNameFixed228|   FieldNameDynamic229230Visibility =231    ':::'232|   '::'233|   ':'234235Literal =236    'null'237|   'true'238|   'false'239|   'self'240|   '$'241|   'super'242243Text =244    'LIT_STRING_DOUBLE!'245|   'ERROR_STRING_DOUBLE_UNTERMINATED!'246|   'LIT_STRING_SINGLE!'247|   'ERROR_STRING_SINGLE_UNTERMINATED!'248|   'LIT_STRING_DOUBLE_VERBATIM!'249|   'ERROR_STRING_DOUBLE_VERBATIM_UNTERMINATED!'250|   'LIT_STRING_SINGLE_VERBATIM!'251|   'ERROR_STRING_SINGLE_VERBATIM_UNTERMINATED!'252|   'ERROR_STRING_VERBATIM_MISSING_QUOTES!'253|   'LIT_STRING_BLOCK!'254|   'ERROR_STRING_BLOCK_UNEXPECTED_END!'255|   'ERROR_STRING_BLOCK_MISSING_NEW_LINE!'256|   'ERROR_STRING_BLOCK_MISSING_TERMINATION!'257|   'ERROR_STRING_BLOCK_MISSING_INDENT!'258259Number =260    'LIT_FLOAT!'261|   'ERROR_FLOAT_JUNK_AFTER_POINT!'262|   'ERROR_FLOAT_JUNK_AFTER_EXPONENT!'263|   'ERROR_FLOAT_JUNK_AFTER_EXPONENT_SIGN!'264265ForSpec =266    'for'267    bind:Name268    'in'269    Expr270IfSpec =271    'if'272    Expr273CompSpec =274    ForSpec275|   IfSpec276277BindDestruct =278    into:Destruct279    '='280    value:Expr281BindFunction =282    name:Name283    params:ParamsDesc284    '='285    value:Expr286Bind =287    BindDestruct288|   BindFunction289290ParamsDesc =291    '('292    (Param (',' Param)* ','?)?293    ')'294Param =295    Destruct296    (297        '='298        Expr299    )?300301Assertion =302    'assert'303    condition:LhsExpr304    (305        ':'306        message:Expr307    )?308309DestructFull =310    Name311DestructSkip =312    '?'313DestructArray =314    '['315    (316        DestructArrayPart317        (',' DestructArrayPart)*318        ','?319    )?320    ']'321DestructObject =322    '{'323    (324        DestructObjectField325        (',' DestructObjectField)*326        ','?327    )?328    DestructRest?329    ','?330    '}'331Destruct =332    DestructFull333|   DestructSkip334|   DestructArray335|   DestructObject336337DestructArrayElement =338    Destruct339DestructArrayPart =340    DestructArrayElement341|   DestructRest342343DestructRest =344    '...'345    into:Name?346347DestructObjectField =348    field:Name349    (350        ':'351        Destruct352    )?353    (354        '='355        Expr356    )?357358// Aliases used to resolve node type conflicts359TrueExpr=Expr360FalseExpr=Expr361LhsExpr=Expr362363// Trivia - tokens which will be implicitly skipped for parser364Trivia =365    'LIT_WHITESPACE!'366|   'LIT_MULTI_LINE_COMMENT!'367|   'ERROR_COMMENT_TOO_SHORT!'368|   'ERROR_COMMENT_UNTERMINATED!'369|   'LIT_SINGLE_LINE_HASH_COMMENT!'370|   'LIT_SINGLE_LINE_SLASH_COMMENT!'