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

difftreelog

source

crates/jrsonnet-rowan-parser/jsonnet.ungram5.4 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    ObjBody60ExprArrayComp =61    '['62    Expr63    ','?64    CompSpec*65    ']'6667ExprImport =68    ImportKind Text6970ImportKind =71    'importstr'72|   'importbin'73|   'import'7475ExprVar =76    name:Name77ExprLocal =78    'local'79    (Bind (',' Bind)* ','?)80    ';'81    Expr8283ExprIfThenElse =84    'if'85    cond:Expr86    'then'87    then:TrueExpr88    ('else' else_:FalseExpr)?8990ExprFunction =91    'function'92    '('93    ParamsDesc94    ')'95    Expr96ExprAssert =97    Assertion98    ';'99    Expr100ExprError =101    'error'102    Expr103104Expr =105    ExprBinary106|   ExprUnary107|   ExprSlice108|   ExprIndex109|   ExprIndexExpr110|   ExprApply111|   ExprObjExtend112|   ExprParened113|   ExprIntrinsicThisFile114|   ExprIntrinsicId115|   ExprIntrinsic116|   ExprString117|   ExprNumber118|   ExprLiteral119|   ExprArray120|   ExprObject121|   ExprArrayComp122|   ExprImport123|   ExprVar124|   ExprLocal125|   ExprIfThenElse126|   ExprFunction127|   ExprAssert128|   ExprError129130BinaryOperator =131    '||' | '&&'132|   '|' | '^' | '&'133|   '==' | '!=' | '<' | '>' | '<=' | '>=' | 'in'134|   '<<' | '>>'135|   '+' | '-'136|   '*' | '/' | '%'137|   'META_OBJECT_APPLY!'138|   'ERROR_NO_OPERATOR!'139140UnaryOperator =141    '-' | '!' | '~'142143SliceDescEnd=Expr144SliceDescStep=Expr145SliceDesc =146    '['147    from:Expr?148    ':'149    (150        end:SliceDescEnd?151        (152            ':'153            step:SliceDescStep?154        )?155    )?156    ']'157158Name =159    'LIT_IDENT!'160161ArgsDesc =162    '('163    (Arg (',' Arg)* ','?)?164    ')'165Arg =166    (name:Name '=')? Expr167168ObjBodyComp =169    '{'170    pre:ObjLocalPostComma*171    '['172    key:LhsExpr173    ']'174    '+'?175    ':'176    value:Expr177    post:ObjLocalPreComma*178    CompSpec*179    '}'180ObjBodyMemberList =181    '{'182    (Member (',' Member)* ','?)?183    '}'184ObjBody =185    ObjBodyComp186|   ObjBodyMemberList187188ObjLocalPostComma =189    ObjLocal190    ','191ObjLocalPreComma =192    ','193    ObjLocal194195MemberBindStmt = ObjLocal196MemberAssertStmt = Assertion197MemberField = Field198Member =199    MemberBindStmt200|   MemberAssertStmt201|   MemberField202203ObjLocal =204    'local'205    Bind206207FieldNormal =208    FieldName209    '+'?210    Visibility211    Expr212FieldMethod =213    FieldName214    ParamsDesc215    Visibility216    Expr217Field =218    FieldNormal219|   FieldMethod220221FieldNameFixed =222    id:Name223|   Text224FieldNameDynamic =225    '['226    Expr227    ']'228FieldName =229    FieldNameFixed230|   FieldNameDynamic231232Visibility =233    ':::'234|   '::'235|   ':'236237Literal =238    'null'239|   'true'240|   'false'241|   'self'242|   '$'243|   'super'244245Text =246    'LIT_STRING_DOUBLE!'247|   'ERROR_STRING_DOUBLE_UNTERMINATED!'248|   'LIT_STRING_SINGLE!'249|   'ERROR_STRING_SINGLE_UNTERMINATED!'250|   'LIT_STRING_DOUBLE_VERBATIM!'251|   'ERROR_STRING_DOUBLE_VERBATIM_UNTERMINATED!'252|   'LIT_STRING_SINGLE_VERBATIM!'253|   'ERROR_STRING_SINGLE_VERBATIM_UNTERMINATED!'254|   'ERROR_STRING_VERBATIM_MISSING_QUOTES!'255|   'LIT_STRING_BLOCK!'256|   'ERROR_STRING_BLOCK_UNEXPECTED_END!'257|   'ERROR_STRING_BLOCK_MISSING_NEW_LINE!'258|   'ERROR_STRING_BLOCK_MISSING_TERMINATION!'259|   'ERROR_STRING_BLOCK_MISSING_INDENT!'260261Number =262    'LIT_FLOAT!'263|   'ERROR_FLOAT_JUNK_AFTER_POINT!'264|   'ERROR_FLOAT_JUNK_AFTER_EXPONENT!'265|   'ERROR_FLOAT_JUNK_AFTER_EXPONENT_SIGN!'266267ForSpec =268    'for'269    bind:Name270    'in'271    Expr272IfSpec =273    'if'274    Expr275CompSpec =276    ForSpec277|   IfSpec278279BindDestruct =280    into:Destruct281    '='282    value:Expr283BindFunction =284    name:Name285    params:ParamsDesc286    '='287    value:Expr288Bind =289    BindDestruct290|   BindFunction291292ParamsDesc =293    '('294    (Param (',' Param)* ','?)?295    ')'296Param =297    Destruct298    (299        '='300        Expr301    )?302303Assertion =304    'assert'305    condition:LhsExpr306    (307        ':'308        message:Expr309    )?310311DestructFull =312    Name313DestructSkip =314    '?'315DestructArray =316    '['317    (318        DestructArrayPart319        (',' DestructArrayPart)*320        ','?321    )?322    ']'323DestructObject =324    '{'325    (326        DestructObjectField327        (',' DestructObjectField)*328        ','?329    )?330    DestructRest?331    ','?332    '}'333Destruct =334    DestructFull335|   DestructSkip336|   DestructArray337|   DestructObject338339DestructArrayElement =340    Destruct341DestructArrayPart =342    DestructArrayElement343|   DestructRest344345DestructRest =346    '...'347    into:Name?348349DestructObjectField =350    field:Name351    (352        ':'353        Destruct354    )?355    (356        '='357        Expr358    )?359360// Aliases used to resolve node type conflicts361TrueExpr=Expr362FalseExpr=Expr363LhsExpr=Expr364365// Trivia - tokens which will be implicitly skipped for parser366Trivia =367    'LIT_WHITESPACE!'368|   'LIT_MULTI_LINE_COMMENT!'369|   'ERROR_COMMENT_TOO_SHORT!'370|   'ERROR_COMMENT_UNTERMINATED!'371|   'LIT_SINGLE_LINE_HASH_COMMENT!'372|   'LIT_SINGLE_LINE_SLASH_COMMENT!'