Skip to content

Commit a58e7b9

Browse files
committed
key, value pair in the same array
1 parent 679a711 commit a58e7b9

23 files changed

Lines changed: 175 additions & 276 deletions

src/slang-nodes/ArgumentsDeclaration.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ import type { AstNode } from './types.d.ts';
1212
const createNonterminalVariant = createNonterminalVariantCreator<
1313
ArgumentsDeclaration,
1414
ast.ArgumentsDeclaration
15-
>(
16-
[ast.PositionalArgumentsDeclaration, ast.NamedArgumentsDeclaration],
17-
[PositionalArgumentsDeclaration, NamedArgumentsDeclaration]
18-
);
15+
>([
16+
[ast.PositionalArgumentsDeclaration, PositionalArgumentsDeclaration],
17+
[ast.NamedArgumentsDeclaration, NamedArgumentsDeclaration]
18+
]);
1919

2020
export class ArgumentsDeclaration extends SlangNode {
2121
readonly kind = NonterminalKind.ArgumentsDeclaration;

src/slang-nodes/ContractMember.ts

Lines changed: 15 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -23,38 +23,21 @@ import type { AstNode } from './types.d.ts';
2323
const createNonterminalVariant = createNonterminalVariantCreator<
2424
ContractMember,
2525
ast.ContractMember
26-
>(
27-
[
28-
ast.UsingDirective,
29-
ast.FunctionDefinition,
30-
ast.ConstructorDefinition,
31-
ast.ReceiveFunctionDefinition,
32-
ast.FallbackFunctionDefinition,
33-
ast.UnnamedFunctionDefinition,
34-
ast.ModifierDefinition,
35-
ast.StructDefinition,
36-
ast.EnumDefinition,
37-
ast.EventDefinition,
38-
ast.StateVariableDefinition,
39-
ast.ErrorDefinition,
40-
ast.UserDefinedValueTypeDefinition
41-
],
42-
[
43-
UsingDirective,
44-
FunctionDefinition,
45-
ConstructorDefinition,
46-
ReceiveFunctionDefinition,
47-
FallbackFunctionDefinition,
48-
UnnamedFunctionDefinition,
49-
ModifierDefinition,
50-
StructDefinition,
51-
EnumDefinition,
52-
EventDefinition,
53-
StateVariableDefinition,
54-
ErrorDefinition,
55-
UserDefinedValueTypeDefinition
56-
]
57-
);
26+
>([
27+
[ast.UsingDirective, UsingDirective],
28+
[ast.FunctionDefinition, FunctionDefinition],
29+
[ast.ConstructorDefinition, ConstructorDefinition],
30+
[ast.ReceiveFunctionDefinition, ReceiveFunctionDefinition],
31+
[ast.FallbackFunctionDefinition, FallbackFunctionDefinition],
32+
[ast.UnnamedFunctionDefinition, UnnamedFunctionDefinition],
33+
[ast.ModifierDefinition, ModifierDefinition],
34+
[ast.StructDefinition, StructDefinition],
35+
[ast.EnumDefinition, EnumDefinition],
36+
[ast.EventDefinition, EventDefinition],
37+
[ast.StateVariableDefinition, StateVariableDefinition],
38+
[ast.ErrorDefinition, ErrorDefinition],
39+
[ast.UserDefinedValueTypeDefinition, UserDefinedValueTypeDefinition]
40+
]);
5841

5942
export class ContractMember extends SlangNode {
6043
readonly kind = NonterminalKind.ContractMember;

src/slang-nodes/ContractSpecifier.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ import type { AstNode } from './types.d.ts';
1212
const createNonterminalVariant = createNonterminalVariantCreator<
1313
ContractSpecifier,
1414
ast.ContractSpecifier
15-
>(
16-
[ast.InheritanceSpecifier, ast.StorageLayoutSpecifier],
17-
[InheritanceSpecifier, StorageLayoutSpecifier]
18-
);
15+
>([
16+
[ast.InheritanceSpecifier, InheritanceSpecifier],
17+
[ast.StorageLayoutSpecifier, StorageLayoutSpecifier]
18+
]);
1919

2020
export class ContractSpecifier extends SlangNode {
2121
readonly kind = NonterminalKind.ContractSpecifier;

src/slang-nodes/Expression.ts

Lines changed: 28 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -43,61 +43,36 @@ const createNonterminalVariant = createNonterminalVariantCreator<
4343
ast.Expression
4444
>(
4545
[
46-
ast.AssignmentExpression,
47-
ast.ConditionalExpression,
48-
ast.OrExpression,
49-
ast.AndExpression,
50-
ast.EqualityExpression,
51-
ast.InequalityExpression,
52-
ast.BitwiseOrExpression,
53-
ast.BitwiseXorExpression,
54-
ast.BitwiseAndExpression,
55-
ast.ShiftExpression,
56-
ast.AdditiveExpression,
57-
ast.MultiplicativeExpression,
58-
ast.ExponentiationExpression,
59-
ast.PostfixExpression,
60-
ast.PrefixExpression,
61-
ast.FunctionCallExpression,
62-
ast.CallOptionsExpression,
63-
ast.MemberAccessExpression,
64-
ast.IndexAccessExpression,
65-
ast.NewExpression,
66-
ast.TupleExpression,
67-
ast.TypeExpression,
68-
ast.ArrayExpression,
69-
ast.HexNumberExpression,
70-
ast.DecimalNumberExpression
46+
[ast.AssignmentExpression, AssignmentExpression],
47+
[ast.ConditionalExpression, ConditionalExpression],
48+
[ast.OrExpression, OrExpression],
49+
[ast.AndExpression, AndExpression],
50+
[ast.EqualityExpression, EqualityExpression],
51+
[ast.InequalityExpression, InequalityExpression],
52+
[ast.BitwiseOrExpression, BitwiseOrExpression],
53+
[ast.BitwiseXorExpression, BitwiseXorExpression],
54+
[ast.BitwiseAndExpression, BitwiseAndExpression],
55+
[ast.ShiftExpression, ShiftExpression],
56+
[ast.AdditiveExpression, AdditiveExpression],
57+
[ast.MultiplicativeExpression, MultiplicativeExpression],
58+
[ast.ExponentiationExpression, ExponentiationExpression],
59+
[ast.PostfixExpression, PostfixExpression],
60+
[ast.PrefixExpression, PrefixExpression],
61+
[ast.FunctionCallExpression, FunctionCallExpression],
62+
[ast.CallOptionsExpression, CallOptionsExpression],
63+
[ast.MemberAccessExpression, MemberAccessExpression],
64+
[ast.IndexAccessExpression, IndexAccessExpression],
65+
[ast.NewExpression, NewExpression],
66+
[ast.TupleExpression, TupleExpression],
67+
[ast.TypeExpression, TypeExpression],
68+
[ast.ArrayExpression, ArrayExpression],
69+
[ast.HexNumberExpression, HexNumberExpression],
70+
[ast.DecimalNumberExpression, DecimalNumberExpression]
7171
],
7272
[
73-
AssignmentExpression,
74-
ConditionalExpression,
75-
OrExpression,
76-
AndExpression,
77-
EqualityExpression,
78-
InequalityExpression,
79-
BitwiseOrExpression,
80-
BitwiseXorExpression,
81-
BitwiseAndExpression,
82-
ShiftExpression,
83-
AdditiveExpression,
84-
MultiplicativeExpression,
85-
ExponentiationExpression,
86-
PostfixExpression,
87-
PrefixExpression,
88-
FunctionCallExpression,
89-
CallOptionsExpression,
90-
MemberAccessExpression,
91-
IndexAccessExpression,
92-
NewExpression,
93-
TupleExpression,
94-
TypeExpression,
95-
ArrayExpression,
96-
HexNumberExpression,
97-
DecimalNumberExpression
98-
],
99-
[ast.StringExpression, ast.ElementaryType],
100-
[StringExpression, ElementaryType]
73+
[ast.StringExpression, StringExpression],
74+
[ast.ElementaryType, ElementaryType]
75+
]
10176
);
10277

10378
export class Expression extends SlangNode {

src/slang-nodes/FallbackFunctionAttribute.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ import type { AstNode } from './types.d.ts';
1616
const createNonterminalVariant = createNonterminalVariantCreator<
1717
FallbackFunctionAttribute,
1818
ast.FallbackFunctionAttribute
19-
>(
20-
[ast.ModifierInvocation, ast.OverrideSpecifier],
21-
[ModifierInvocation, OverrideSpecifier]
22-
);
19+
>([
20+
[ast.ModifierInvocation, ModifierInvocation],
21+
[ast.OverrideSpecifier, OverrideSpecifier]
22+
]);
2323

2424
export class FallbackFunctionAttribute extends SlangNode {
2525
readonly kind = NonterminalKind.FallbackFunctionAttribute;

src/slang-nodes/ForStatementInitialization.ts

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,11 @@ import type { AstNode } from './types.d.ts';
1717
const createNonterminalVariant = createNonterminalVariantCreator<
1818
ForStatementInitialization,
1919
ast.ForStatementInitialization
20-
>(
21-
[
22-
ast.ExpressionStatement,
23-
ast.VariableDeclarationStatement,
24-
ast.TupleDeconstructionStatement
25-
],
26-
[
27-
ExpressionStatement,
28-
VariableDeclarationStatement,
29-
TupleDeconstructionStatement
30-
]
31-
);
20+
>([
21+
[ast.ExpressionStatement, ExpressionStatement],
22+
[ast.VariableDeclarationStatement, VariableDeclarationStatement],
23+
[ast.TupleDeconstructionStatement, TupleDeconstructionStatement]
24+
]);
3225

3326
export class ForStatementInitialization extends SlangNode {
3427
readonly kind = NonterminalKind.ForStatementInitialization;

src/slang-nodes/FunctionAttribute.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ import type { AstNode } from './types.d.ts';
1616
const createNonterminalVariant = createNonterminalVariantCreator<
1717
FunctionAttribute,
1818
ast.FunctionAttribute
19-
>(
20-
[ast.ModifierInvocation, ast.OverrideSpecifier],
21-
[ModifierInvocation, OverrideSpecifier]
22-
);
19+
>([
20+
[ast.ModifierInvocation, ModifierInvocation],
21+
[ast.OverrideSpecifier, OverrideSpecifier]
22+
]);
2323

2424
export class FunctionAttribute extends SlangNode {
2525
readonly kind = NonterminalKind.FunctionAttribute;

src/slang-nodes/ImportClause.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@ import type { AstNode } from './types.d.ts';
1313
const createNonterminalVariant = createNonterminalVariantCreator<
1414
ImportClause,
1515
ast.ImportClause
16-
>(
17-
[ast.PathImport, ast.NamedImport, ast.ImportDeconstruction],
18-
[PathImport, NamedImport, ImportDeconstruction]
19-
);
16+
>([
17+
[ast.PathImport, PathImport],
18+
[ast.NamedImport, NamedImport],
19+
[ast.ImportDeconstruction, ImportDeconstruction]
20+
]);
2021

2122
export class ImportClause extends SlangNode {
2223
readonly kind = NonterminalKind.ImportClause;

src/slang-nodes/MappingKeyType.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,8 @@ const createNonterminalVariant = createNonterminalVariantCreator<
1111
MappingKeyType,
1212
ast.MappingKeyType
1313
>(
14-
[ast.IdentifierPath],
15-
[IdentifierPath],
16-
[ast.ElementaryType],
17-
[ElementaryType]
14+
[[ast.IdentifierPath, IdentifierPath]],
15+
[[ast.ElementaryType, ElementaryType]]
1816
);
1917

2018
export class MappingKeyType extends SlangNode {

src/slang-nodes/Pragma.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@ import type { AstNode } from './types.d.ts';
1313
const createNonterminalVariant = createNonterminalVariantCreator<
1414
Pragma,
1515
ast.Pragma
16-
>(
17-
[ast.AbicoderPragma, ast.ExperimentalPragma, ast.VersionPragma],
18-
[AbicoderPragma, ExperimentalPragma, VersionPragma]
19-
);
16+
>([
17+
[ast.AbicoderPragma, AbicoderPragma],
18+
[ast.ExperimentalPragma, ExperimentalPragma],
19+
[ast.VersionPragma, VersionPragma]
20+
]);
2021

2122
export class Pragma extends SlangNode {
2223
readonly kind = NonterminalKind.Pragma;

0 commit comments

Comments
 (0)