44 extends = "com.intellij.extapi.psi.ASTWrapperPsiElement"
55
66 psiClassPrefix = "Toon"
7- psiImplClassSuffix= "Impl"
8- psiPackage= "com.github.xepozz.toon.language.psi"
9- psiImplPackage= "com.github.xepozz.toon.language.psi.impl"
7+ psiImplClassSuffix = "Impl"
8+ psiPackage = "com.github.xepozz.toon.language.psi"
9+ psiImplPackage = "com.github.xepozz.toon.language.psi.impl"
1010
11- elementTypeHolderClass= "com.github.xepozz.toon.language.psi.ToonTypes"
11+ elementTypeHolderClass = "com.github.xepozz.toon.language.psi.ToonTypes"
1212 elementTypeClass = "com.github.xepozz.toon.language.psi.ToonElementType"
1313 tokenTypeClass = "com.github.xepozz.toon.language.psi.ToonTokenType"
1414
15- psiImplUtilClass="com.github.xepozz.toon.language.psi.impl.ToonImplUtil"
16- tokens=[
17- LPAREN="LPAREN"
18- RPAREN="RPAREN"
15+ psiImplUtilClass = "com.github.xepozz.toon.language.psi.impl.ToonImplUtil"
16+
17+ tokens = [
18+ LPAREN = "LPAREN"
19+ RPAREN = "RPAREN"
20+ LBRACE = "LBRACE"
21+ RBRACE = "RBRACE"
22+ LBRACKET = "LBRACKET"
23+ RBRACKET = "RBRACKET"
24+ DELIMITER = "DELIMITER"
25+ COMMA = "COMMA"
26+ DASH = "DASH"
27+ SHARP = "SHARP"
28+ EOL = "EOL"
29+ COMMENT = "COMMENT"
30+ TEXT = "TEXT"
31+ NUMBER = "NUMBER"
32+ NULL = "NULL"
33+ BOOLEAN = "BOOLEAN"
34+ INDENT = "INDENT"
35+ DEDENT = "DEDENT"
36+ BLOCK = "BLOCK"
1937 ]
2038}
2139
2240file ::= entry*
2341
24- private entry ::= table | keyValueMap | COMMENT | EOL
42+ private entry ::=
43+ object_field
44+ | table
45+ | list_item
46+ | COMMENT
47+ | EOL
48+ object_field ::= key DELIMITER field_value {
49+ pin = 2
50+ }
51+ private field_value ::=
52+ value_list
53+ | nested_object
54+ | array
2555
26- table ::= tableDefinition DELIMITER (iterable | EOL array)
27- {
28- pin=2
56+ value_list ::= value (COMMA value)*
57+
58+ nested_object ::= EOL INDENT entry+ DEDENT {
59+ pin = 2
2960}
3061
31- tableDefinition ::= key LBRACKET SHARP? NUMBER RBRACKET (LBRACE iterable RBRACE)?
32- {
33- pin=2
62+ array ::= list_item (EOL list_item)+ {
63+ pin = 1
3464}
3565
36- array ::= keyValueArray+ | keyValueMap+ | valuesList
66+ list_item ::= DASH list_item_content {
67+ pin = 1
68+ }
3769
38- valuesList ::= iterable (EOL iterable)*
70+ private list_item_content ::=
71+ value_list
72+ | key DELIMITER field_value
3973
40- keyValueArray ::= keyValueArrayItem (EOL keyValueArrayItem)*
74+ table ::= table_header DELIMITER table_data EOL {
75+ pin = 2
76+ }
4177
42- keyValueArrayItem ::= DASH (keyValueMap | iterable)
43- {
44- pin=1
78+ table_header ::= key LBRACKET table_size RBRACKET field_list? {
79+ pin=4
4580}
4681
47- keyValueMap ::= key DELIMITER (iterable | EOL array)
48- {
49- pin=2
82+ table_size ::= SHARP? NUMBER
83+
84+ field_list ::= LBRACE field_names RBRACE {
85+ pin = 1
5086}
5187
52- key ::= TEXT
88+ field_names ::= key (COMMA key)*
5389
54- iterable ::= value (COMMA value)*
90+ private table_data ::=
91+ table_row | (EOL table_row)+
5592
56- value ::= TEXT | NULL | FALSE | TRUE | NUMBER
57- {
58- implements=["com.intellij.psi.PsiLiteralValue"]
59- methods=[getValue getReferences]
60- }
93+ table_row ::= value (COMMA value)*
94+
95+ key ::= TEXT
96+
97+ value ::=
98+ TEXT
99+ | NUMBER
100+ | NULL
101+ | BOOLEAN {
102+ implements = ["com.intellij.psi.PsiLiteralValue"]
103+ methods = [getValue getReferences]
104+ }
0 commit comments