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

difftreelog

source

crates/jrsonnet-rowan-parser/jsonnet.ungram5.2 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    Literal41ExprString =42    Text43ExprNumber =44    Number45ExprArray =46    '['47    (Expr (',' Expr)* ','?)?48    ']'49ExprObject =50    ObjBody51ExprArrayComp =52    '['53    Expr54    ','?55    CompSpec*56    ']'5758ExprImport =59    ImportKind Text6061ImportKind =62    'importstr'63|   'importbin'64|   'import'6566ExprVar =67    name:Name6869ExprIfThenElse =70    'if'71    cond:Expr72    'then'73    then:TrueExpr74    ('else' else_:FalseExpr)?7576ExprFunction =77    'function'78    '('79    ParamsDesc80    ')'81    Expr82ExprAssert =83    Assertion84    ';'85    Expr86ExprError =87    'error'88    Expr8990StmtLocal =91    'local'92    (Bind (',' Bind)* ','?)93    ';'9495Expr =96    StmtLocal*97    ExprBase98ExprBase =99    ExprBinary100|   ExprUnary101|   ExprSlice102|   ExprIndex103|   ExprIndexExpr104|   ExprApply105|   ExprObjExtend106|   ExprParened107|   ExprString108|   ExprNumber109|   ExprLiteral110|   ExprArray111|   ExprObject112|   ExprArrayComp113|   ExprImport114|   ExprVar115|   ExprIfThenElse116|   ExprFunction117|   ExprAssert118|   ExprError119120BinaryOperator =121    '||' | '&&'122|   '|' | '^' | '&'123|   '==' | '!=' | '<' | '>' | '<=' | '>=' | 'in'124|   '<<' | '>>'125|   '+' | '-'126|   '*' | '/' | '%'127|   'META_OBJECT_APPLY!'128|   'ERROR_NO_OPERATOR!'129130UnaryOperator =131    '-' | '!' | '~'132133SliceDescEnd=Expr134SliceDescStep=Expr135SliceDesc =136    '['137    from:Expr?138    ':'139    (140        end:SliceDescEnd?141        (142            ':'143            step:SliceDescStep?144        )?145    )?146    ']'147148Name =149    'LIT_IDENT!'150151ArgsDesc =152    '('153    (Arg (',' Arg)* ','?)?154    ')'155Arg =156    (name:Name '=')? Expr157158ObjBodyComp =159    '{'160    (MemberComp (',' MemberComp)* ','?)?161    CompSpec*162    '}'163ObjBodyMemberList =164    '{'165    (Member (',' Member)* ','?)?166    '}'167ObjBody =168    ObjBodyComp169|   ObjBodyMemberList170171MemberBindStmt = ObjLocal172MemberAssertStmt = Assertion173MemberFieldNormal =174    FieldName175    '+'?176    Visibility177    Expr178MemberFieldMethod =179    FieldName180    ParamsDesc181    Visibility182    Expr183MemberComp =184    MemberBindStmt185|    MemberFieldNormal186|   MemberFieldMethod187Member =188    MemberBindStmt189|   MemberAssertStmt190|   MemberFieldNormal191|   MemberFieldMethod192193ObjLocal =194    'local'195    Bind196197FieldNameFixed =198    id:Name199|   Text200FieldNameDynamic =201    '['202    Expr203    ']'204FieldName =205    FieldNameFixed206|   FieldNameDynamic207208Visibility =209    ':::'210|   '::'211|   ':'212213Literal =214    'null'215|   'true'216|   'false'217|   'self'218|   '$'219|   'super'220221Text =222    'LIT_STRING_DOUBLE!'223|   'ERROR_STRING_DOUBLE_UNTERMINATED!'224|   'LIT_STRING_SINGLE!'225|   'ERROR_STRING_SINGLE_UNTERMINATED!'226|   'LIT_STRING_DOUBLE_VERBATIM!'227|   'ERROR_STRING_DOUBLE_VERBATIM_UNTERMINATED!'228|   'LIT_STRING_SINGLE_VERBATIM!'229|   'ERROR_STRING_SINGLE_VERBATIM_UNTERMINATED!'230|   'ERROR_STRING_VERBATIM_MISSING_QUOTES!'231|   'LIT_STRING_BLOCK!'232|   'ERROR_STRING_BLOCK_UNEXPECTED_END!'233|   'ERROR_STRING_BLOCK_MISSING_NEW_LINE!'234|   'ERROR_STRING_BLOCK_MISSING_TERMINATION!'235|   'ERROR_STRING_BLOCK_MISSING_INDENT!'236237Number =238    'LIT_FLOAT!'239|   'ERROR_FLOAT_JUNK_AFTER_POINT!'240|   'ERROR_FLOAT_JUNK_AFTER_EXPONENT!'241|   'ERROR_FLOAT_JUNK_AFTER_EXPONENT_SIGN!'242243ForSpec =244    'for'245    bind:Name246    'in'247    Expr248IfSpec =249    'if'250    Expr251CompSpec =252    ForSpec253|   IfSpec254255BindDestruct =256    into:Destruct257    '='258    value:Expr259BindFunction =260    name:Name261    params:ParamsDesc262    '='263    value:Expr264Bind =265    BindDestruct266|   BindFunction267268ParamsDesc =269    '('270    (Param (',' Param)* ','?)?271    ')'272Param =273    Destruct274    (275        '='276        Expr277    )?278279Assertion =280    'assert'281    condition:LhsExpr282    (283        ':'284        message:Expr285    )?286287DestructFull =288    Name289DestructSkip =290    '?'291DestructArray =292    '['293    (294        DestructArrayPart295        (',' DestructArrayPart)*296        ','?297    )?298    ']'299DestructObject =300    '{'301    (302        DestructObjectField303        (',' DestructObjectField)*304        ','?305    )?306    DestructRest?307    ','?308    '}'309Destruct =310    DestructFull311|   DestructSkip312|   DestructArray313|   DestructObject314315DestructArrayElement =316    Destruct317DestructArrayPart =318    DestructArrayElement319|   DestructRest320321DestructRest =322    '...'323    into:Name?324325DestructObjectField =326    field:Name327    (328        ':'329        Destruct330    )?331    (332        '='333        Expr334    )?335336// Aliases used to resolve node type conflicts337TrueExpr=Expr338FalseExpr=Expr339LhsExpr=Expr340341// Trivia - tokens which will be implicitly skipped for parser342Trivia =343    'LIT_WHITESPACE!'344|   'LIT_MULTI_LINE_COMMENT!'345|   'ERROR_COMMENT_TOO_SHORT!'346|   'ERROR_COMMENT_UNTERMINATED!'347|   'LIT_SINGLE_LINE_HASH_COMMENT!'348|   'LIT_SINGLE_LINE_SLASH_COMMENT!'349350CustomError =351    'ERROR_MISSING_TOKEN!'352|   'ERROR_UNEXPECTED_TOKEN!'353|   'ERROR_CUSTOM!'