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

difftreelog

source

crates/jrsonnet-rowan-parser/jsonnet.ungram5.1 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:Name68ExprLocal =69    'local'70    (Bind (',' Bind)* ','?)71    ';'72    Expr7374ExprIfThenElse =75    'if'76    cond:Expr77    'then'78    then:TrueExpr79    ('else' else_:FalseExpr)?8081ExprFunction =82    'function'83    '('84    ParamsDesc85    ')'86    Expr87ExprAssert =88    Assertion89    ';'90    Expr91ExprError =92    'error'93    Expr9495Expr =96    ExprBinary97|   ExprUnary98|   ExprSlice99|   ExprIndex100|   ExprIndexExpr101|   ExprApply102|   ExprObjExtend103|   ExprParened104|   ExprString105|   ExprNumber106|   ExprLiteral107|   ExprArray108|   ExprObject109|   ExprArrayComp110|   ExprImport111|   ExprVar112|   ExprLocal113|   ExprIfThenElse114|   ExprFunction115|   ExprAssert116|   ExprError117118BinaryOperator =119    '||' | '&&'120|   '|' | '^' | '&'121|   '==' | '!=' | '<' | '>' | '<=' | '>=' | 'in'122|   '<<' | '>>'123|   '+' | '-'124|   '*' | '/' | '%'125|   'META_OBJECT_APPLY!'126|   'ERROR_NO_OPERATOR!'127128UnaryOperator =129    '-' | '!' | '~'130131SliceDescEnd=Expr132SliceDescStep=Expr133SliceDesc =134    '['135    from:Expr?136    ':'137    (138        end:SliceDescEnd?139        (140            ':'141            step:SliceDescStep?142        )?143    )?144    ']'145146Name =147    'LIT_IDENT!'148149ArgsDesc =150    '('151    (Arg (',' Arg)* ','?)?152    ')'153Arg =154    (name:Name '=')? Expr155156ObjBodyComp =157    '{'158    (MemberComp (',' MemberComp)* ','?)?159    CompSpec*160    '}'161ObjBodyMemberList =162    '{'163    (Member (',' Member)* ','?)?164    '}'165ObjBody =166    ObjBodyComp167|   ObjBodyMemberList168169MemberBindStmt = ObjLocal170MemberAssertStmt = Assertion171MemberFieldNormal =172    FieldName173    '+'?174    Visibility175    Expr176MemberFieldMethod =177    FieldName178    ParamsDesc179    Visibility180    Expr181MemberComp =182    MemberBindStmt183|    MemberFieldNormal184|   MemberFieldMethod185Member =186    MemberBindStmt187|   MemberAssertStmt188|   MemberFieldNormal189|   MemberFieldMethod190191ObjLocal =192    'local'193    Bind194195FieldNameFixed =196    id:Name197|   Text198FieldNameDynamic =199    '['200    Expr201    ']'202FieldName =203    FieldNameFixed204|   FieldNameDynamic205206Visibility =207    ':::'208|   '::'209|   ':'210211Literal =212    'null'213|   'true'214|   'false'215|   'self'216|   '$'217|   'super'218219Text =220    'LIT_STRING_DOUBLE!'221|   'ERROR_STRING_DOUBLE_UNTERMINATED!'222|   'LIT_STRING_SINGLE!'223|   'ERROR_STRING_SINGLE_UNTERMINATED!'224|   'LIT_STRING_DOUBLE_VERBATIM!'225|   'ERROR_STRING_DOUBLE_VERBATIM_UNTERMINATED!'226|   'LIT_STRING_SINGLE_VERBATIM!'227|   'ERROR_STRING_SINGLE_VERBATIM_UNTERMINATED!'228|   'ERROR_STRING_VERBATIM_MISSING_QUOTES!'229|   'LIT_STRING_BLOCK!'230|   'ERROR_STRING_BLOCK_UNEXPECTED_END!'231|   'ERROR_STRING_BLOCK_MISSING_NEW_LINE!'232|   'ERROR_STRING_BLOCK_MISSING_TERMINATION!'233|   'ERROR_STRING_BLOCK_MISSING_INDENT!'234235Number =236    'LIT_FLOAT!'237|   'ERROR_FLOAT_JUNK_AFTER_POINT!'238|   'ERROR_FLOAT_JUNK_AFTER_EXPONENT!'239|   'ERROR_FLOAT_JUNK_AFTER_EXPONENT_SIGN!'240241ForSpec =242    'for'243    bind:Name244    'in'245    Expr246IfSpec =247    'if'248    Expr249CompSpec =250    ForSpec251|   IfSpec252253BindDestruct =254    into:Destruct255    '='256    value:Expr257BindFunction =258    name:Name259    params:ParamsDesc260    '='261    value:Expr262Bind =263    BindDestruct264|   BindFunction265266ParamsDesc =267    '('268    (Param (',' Param)* ','?)?269    ')'270Param =271    Destruct272    (273        '='274        Expr275    )?276277Assertion =278    'assert'279    condition:LhsExpr280    (281        ':'282        message:Expr283    )?284285DestructFull =286    Name287DestructSkip =288    '?'289DestructArray =290    '['291    (292        DestructArrayPart293        (',' DestructArrayPart)*294        ','?295    )?296    ']'297DestructObject =298    '{'299    (300        DestructObjectField301        (',' DestructObjectField)*302        ','?303    )?304    DestructRest?305    ','?306    '}'307Destruct =308    DestructFull309|   DestructSkip310|   DestructArray311|   DestructObject312313DestructArrayElement =314    Destruct315DestructArrayPart =316    DestructArrayElement317|   DestructRest318319DestructRest =320    '...'321    into:Name?322323DestructObjectField =324    field:Name325    (326        ':'327        Destruct328    )?329    (330        '='331        Expr332    )?333334// Aliases used to resolve node type conflicts335TrueExpr=Expr336FalseExpr=Expr337LhsExpr=Expr338339// Trivia - tokens which will be implicitly skipped for parser340Trivia =341    'LIT_WHITESPACE!'342|   'LIT_MULTI_LINE_COMMENT!'343|   'ERROR_COMMENT_TOO_SHORT!'344|   'ERROR_COMMENT_UNTERMINATED!'345|   'LIT_SINGLE_LINE_HASH_COMMENT!'346|   'LIT_SINGLE_LINE_SLASH_COMMENT!'347348CustomError =349    'ERROR_MISSING_TOKEN!'350|   'ERROR_UNEXPECTED_TOKEN!'351|   'ERROR_CUSTOM!'