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

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 = Assertion197MemberFieldNormal =198    FieldName199    '+'?200    Visibility201    Expr202MemberFieldMethod =203    FieldName204    ParamsDesc205    Visibility206    Expr207Member =208    MemberBindStmt209|   MemberAssertStmt210|   MemberFieldNormal211|   MemberFieldMethod212213ObjLocal =214    'local'215    Bind216217FieldNameFixed =218    id:Name219|   Text220FieldNameDynamic =221    '['222    Expr223    ']'224FieldName =225    FieldNameFixed226|   FieldNameDynamic227228Visibility =229    ':::'230|   '::'231|   ':'232233Literal =234    'null'235|   'true'236|   'false'237|   'self'238|   '$'239|   'super'240241Text =242    'LIT_STRING_DOUBLE!'243|   'ERROR_STRING_DOUBLE_UNTERMINATED!'244|   'LIT_STRING_SINGLE!'245|   'ERROR_STRING_SINGLE_UNTERMINATED!'246|   'LIT_STRING_DOUBLE_VERBATIM!'247|   'ERROR_STRING_DOUBLE_VERBATIM_UNTERMINATED!'248|   'LIT_STRING_SINGLE_VERBATIM!'249|   'ERROR_STRING_SINGLE_VERBATIM_UNTERMINATED!'250|   'ERROR_STRING_VERBATIM_MISSING_QUOTES!'251|   'LIT_STRING_BLOCK!'252|   'ERROR_STRING_BLOCK_UNEXPECTED_END!'253|   'ERROR_STRING_BLOCK_MISSING_NEW_LINE!'254|   'ERROR_STRING_BLOCK_MISSING_TERMINATION!'255|   'ERROR_STRING_BLOCK_MISSING_INDENT!'256257Number =258    'LIT_FLOAT!'259|   'ERROR_FLOAT_JUNK_AFTER_POINT!'260|   'ERROR_FLOAT_JUNK_AFTER_EXPONENT!'261|   'ERROR_FLOAT_JUNK_AFTER_EXPONENT_SIGN!'262263ForSpec =264    'for'265    bind:Name266    'in'267    Expr268IfSpec =269    'if'270    Expr271CompSpec =272    ForSpec273|   IfSpec274275BindDestruct =276    into:Destruct277    '='278    value:Expr279BindFunction =280    name:Name281    params:ParamsDesc282    '='283    value:Expr284Bind =285    BindDestruct286|   BindFunction287288ParamsDesc =289    '('290    (Param (',' Param)* ','?)?291    ')'292Param =293    Destruct294    (295        '='296        Expr297    )?298299Assertion =300    'assert'301    condition:LhsExpr302    (303        ':'304        message:Expr305    )?306307DestructFull =308    Name309DestructSkip =310    '?'311DestructArray =312    '['313    (314        DestructArrayPart315        (',' DestructArrayPart)*316        ','?317    )?318    ']'319DestructObject =320    '{'321    (322        DestructObjectField323        (',' DestructObjectField)*324        ','?325    )?326    DestructRest?327    ','?328    '}'329Destruct =330    DestructFull331|   DestructSkip332|   DestructArray333|   DestructObject334335DestructArrayElement =336    Destruct337DestructArrayPart =338    DestructArrayElement339|   DestructRest340341DestructRest =342    '...'343    into:Name?344345DestructObjectField =346    field:Name347    (348        ':'349        Destruct350    )?351    (352        '='353        Expr354    )?355356// Aliases used to resolve node type conflicts357TrueExpr=Expr358FalseExpr=Expr359LhsExpr=Expr360361// Trivia - tokens which will be implicitly skipped for parser362Trivia =363    'LIT_WHITESPACE!'364|   'LIT_MULTI_LINE_COMMENT!'365|   'ERROR_COMMENT_TOO_SHORT!'366|   'ERROR_COMMENT_UNTERMINATED!'367|   'LIT_SINGLE_LINE_HASH_COMMENT!'368|   'LIT_SINGLE_LINE_SLASH_COMMENT!'369370ParsingError =371    'ERROR_MISSING_TOKEN!'372|   'ERROR_UNEXPECTED_TOKEN!'373|   'ERROR_CUSTOM!'