Parser: raise corpus parse rate from 57% to 69%

Grammar gains: array types, directive flags, declaration-level directive
modifiers, parameter markers, backticked declaration names, notes after a
block-valued declaration, 'if cond then stmt', 'ifx c else v', '#module_parameters'
two-group form, '(.*)' prefix dereference, and '#asm' bodies consumed opaquely
(they are x86-64 assembly, not Jai).

Return items no longer take a default value: allowing one made
'f: (K) -> u32 = null' swallow the enclosing parameter's default and read the
rest of the parameter list as extra return values.
This commit is contained in:
hgranthorner
2026-08-04 12:13:26 -04:00
parent 37809b8aa7
commit 840a503e40
19 changed files with 727 additions and 220 deletions

View File

@@ -2,7 +2,8 @@ Jai File(0,49)
JaiStatementImpl(STATEMENT)(0,17)
JaiDeclarationImpl(DECLARATION)(0,17)
JaiDeclNamesImpl(DECL_NAMES)(0,1)
PsiElement(Jai:IDENT)('a')(0,1)
JaiDeclNameImpl(DECL_NAME)(0,1)
PsiElement(Jai:IDENT)('a')(0,1)
PsiElement(Jai::)(':')(2,3)
JaiRefExprImpl(REF_EXPR)(4,9)
PsiElement(Jai:IDENT)('float')(4,9)
@@ -14,7 +15,8 @@ Jai File(0,49)
JaiStatementImpl(STATEMENT)(18,26)
JaiDeclarationImpl(DECLARATION)(18,26)
JaiDeclNamesImpl(DECL_NAMES)(18,19)
PsiElement(Jai:IDENT)('b')(18,19)
JaiDeclNameImpl(DECL_NAME)(18,19)
PsiElement(Jai:IDENT)('b')(18,19)
PsiElement(Jai::=)(':=')(20,22)
JaiInitializerImpl(INITIALIZER)(23,25)
JaiLiteralExprImpl(LITERAL_EXPR)(23,25)
@@ -23,7 +25,8 @@ Jai File(0,49)
JaiStatementImpl(STATEMENT)(27,35)
JaiDeclarationImpl(DECLARATION)(27,35)
JaiDeclNamesImpl(DECL_NAMES)(27,28)
PsiElement(Jai:IDENT)('c')(27,28)
JaiDeclNameImpl(DECL_NAME)(27,28)
PsiElement(Jai:IDENT)('c')(27,28)
PsiElement(Jai:::)('::')(29,31)
JaiInitializerImpl(INITIALIZER)(32,34)
JaiLiteralExprImpl(LITERAL_EXPR)(32,34)