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

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 = Expr78SuffixIndex =9    '?'?10    '.'11    index:Name12SuffixIndexExpr =13    ('?' '.')?14    '['15    index:Expr16    ']'17SuffixSlice =18    SliceDesc19SuffixApply =20    ArgsDesc21    'tailstrict'?22Suffix =23    SuffixIndex24|   SuffixIndexExpr25|   SuffixSlice26|   SuffixApply2728StmtLocal =29    'local'30    (Bind (',' Bind)* ','?)31    ';'32StmtAssert =33    Assertion34    ';'35Stmt =36    StmtLocal37|   StmtAssert3839ExprBinary =40    lhs:Expr41    BinaryOperator42    rhs:Expr43ExprUnary =44    UnaryOperator45    rhs:Expr46ExprObjExtend =47    Expr48    Expr49ExprParened =50    '('51    Expr52    ')'5354ExprLiteral =55    Literal56ExprString =57    Text58ExprNumber =59    Number60ExprArray =61    '['62    (Expr (',' Expr)* ','?)?63    ']'64ExprObject =65    ObjBody66ExprArrayComp =67    '['68    Expr69    ','?70    CompSpec*71    ']'7273ExprImport =74    ImportKind Text7576ImportKind =77    'importstr'78|   'importbin'79|   'import'8081ExprVar =82    name:Name8384ExprIfThenElse =85    'if'86    cond:Expr87    'then'88    then:TrueExpr89    ('else' else_:FalseExpr)?9091ExprFunction =92    'function'93    '('94    ParamsDesc95    ')'96    Expr97ExprError =98    'error'99    Expr100101Expr =102    Stmt*103    ExprBase104    Suffix*105106ExprBase =107    ExprBinary108|   ExprUnary109|   ExprObjExtend110|   ExprParened111|   ExprString112|   ExprNumber113|   ExprLiteral114|   ExprArray115|   ExprObject116|   ExprArrayComp117|   ExprImport118|   ExprVar119|   ExprIfThenElse120|   ExprFunction121|   ExprError122123BinaryOperator =124    '||' | '??' | '&&'125|   '|' | '^' | '&'126|   '==' | '!=' | '<' | '>' | '<=' | '>=' | 'in'127|   '<<' | '>>'128|   '+' | '-'129|   '*' | '/' | '%'130|   'META_OBJECT_APPLY!'131|   'ERROR_NO_OPERATOR!'132133UnaryOperator =134    '-' | '!' | '~'135136SliceDescEnd=Expr137SliceDescStep=Expr138SliceDesc =139    '['140    from:Expr?141    ':'142    (143        end:SliceDescEnd?144        (145            ':'146            step:SliceDescStep?147        )?148    )?149    ']'150151Name =152    'LIT_IDENT!'153154ArgsDesc =155    '('156    (Arg (',' Arg)* ','?)?157    ')'158Arg =159    (name:Name '=')? Expr160161ObjBodyComp =162    '{'163    (MemberComp (',' MemberComp)* ','?)?164    CompSpec*165    '}'166ObjBodyMemberList =167    '{'168    (Member (',' Member)* ','?)?169    '}'170ObjBody =171    ObjBodyComp172|   ObjBodyMemberList173174MemberBindStmt = ObjLocal175MemberAssertStmt = Assertion176MemberFieldNormal =177    FieldName178    '+'?179    Visibility180    Expr181MemberFieldMethod =182    FieldName183    ParamsDesc184    Visibility185    Expr186MemberComp =187    MemberBindStmt188|    MemberFieldNormal189|   MemberFieldMethod190Member =191    MemberBindStmt192|   MemberAssertStmt193|   MemberFieldNormal194|   MemberFieldMethod195196ObjLocal =197    'local'198    Bind199200FieldNameFixed =201    id:Name202|   Text203FieldNameDynamic =204    '['205    Expr206    ']'207FieldName =208    FieldNameFixed209|   FieldNameDynamic210211Visibility =212    ':::'213|   '::'214|   ':'215216Literal =217    'null'218|   'true'219|   'false'220|   'self'221|   '$'222|   'super'223224Text =225    'LIT_STRING_DOUBLE!'226|   'ERROR_STRING_DOUBLE_UNTERMINATED!'227|   'LIT_STRING_SINGLE!'228|   'ERROR_STRING_SINGLE_UNTERMINATED!'229|   'LIT_STRING_DOUBLE_VERBATIM!'230|   'ERROR_STRING_DOUBLE_VERBATIM_UNTERMINATED!'231|   'LIT_STRING_SINGLE_VERBATIM!'232|   'ERROR_STRING_SINGLE_VERBATIM_UNTERMINATED!'233|   'ERROR_STRING_VERBATIM_MISSING_QUOTES!'234|   'LIT_STRING_BLOCK!'235|   'ERROR_STRING_BLOCK_UNEXPECTED_END!'236|   'ERROR_STRING_BLOCK_MISSING_NEW_LINE!'237|   'ERROR_STRING_BLOCK_MISSING_TERMINATION!'238|   'ERROR_STRING_BLOCK_MISSING_INDENT!'239240Number =241    'LIT_FLOAT!'242|   'ERROR_FLOAT_JUNK_AFTER_POINT!'243|   'ERROR_FLOAT_JUNK_AFTER_EXPONENT!'244|   'ERROR_FLOAT_JUNK_AFTER_EXPONENT_SIGN!'245246ForSpec =247    'for'248    bind:Destruct249    'in'250    Expr251IfSpec =252    'if'253    Expr254CompSpec =255    ForSpec256|   IfSpec257258BindDestruct =259    into:Destruct260    '='261    value:Expr262BindFunction =263    name:Name264    params:ParamsDesc265    '='266    value:Expr267Bind =268    BindDestruct269|   BindFunction270271ParamsDesc =272    '('273    (Param (',' Param)* ','?)?274    ')'275Param =276    Destruct277    (278        '='279        Expr280    )?281282Assertion =283    'assert'284    condition:Expr285    (286        ':'287        message:Expr288    )?289290DestructFull =291    Name292DestructSkip =293    '?'294DestructArray =295    '['296    (297        DestructArrayPart298        (',' DestructArrayPart)*299        ','?300    )?301    ']'302DestructObject =303    '{'304    (305        DestructObjectField306        (',' DestructObjectField)*307        ','?308    )?309    DestructRest?310    ','?311    '}'312Destruct =313    DestructFull314|   DestructSkip315|   DestructArray316|   DestructObject317318DestructArrayElement =319    Destruct320DestructArrayPart =321    DestructArrayElement322|   DestructRest323324DestructRest =325    '...'326    into:Name?327328DestructObjectField =329    field:Name330    (331        ':'332        Destruct333    )?334    (335        '='336        Expr337    )?338339// Aliases used to resolve node type conflicts340TrueExpr=Expr341FalseExpr=Expr342343// Trivia - tokens which will be implicitly skipped for parser344Trivia =345    'LIT_WHITESPACE!'346|   'LIT_MULTI_LINE_COMMENT!'347|   'ERROR_COMMENT_TOO_SHORT!'348|   'ERROR_COMMENT_UNTERMINATED!'349|   'LIT_SINGLE_LINE_HASH_COMMENT!'350|   'LIT_SINGLE_LINE_SLASH_COMMENT!'351352CustomError =353    'ERROR_MISSING_TOKEN!'354|   'ERROR_UNEXPECTED_TOKEN!'355|   'ERROR_CUSTOM!'