Skip to content

Commit 2f1c0ed

Browse files
committed
migrating Identifier and YulIdentifier to TerminalNode
1 parent 254cff2 commit 2f1c0ed

45 files changed

Lines changed: 163 additions & 171 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/slang-nodes/AbicoderPragma.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { SlangNode } from './SlangNode.js';
3-
import { Identifier } from './Identifier.js';
3+
import { TerminalNode } from './TerminalNode.js';
44

55
import type * as ast from '@nomicfoundation/slang/ast';
66
import type { AstPath, Doc } from 'prettier';
@@ -9,12 +9,12 @@ import type { PrintFunction } from '../types.d.ts';
99
export class AbicoderPragma extends SlangNode {
1010
readonly kind = NonterminalKind.AbicoderPragma;
1111

12-
version: Identifier;
12+
version: TerminalNode;
1313

1414
constructor(ast: ast.AbicoderPragma) {
1515
super(ast);
1616

17-
this.version = new Identifier(ast.version);
17+
this.version = new TerminalNode(ast.version);
1818
}
1919

2020
print(path: AstPath<AbicoderPragma>, print: PrintFunction): Doc {

src/slang-nodes/AssignmentExpression.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import { NonterminalKind, TerminalKind } from '@nomicfoundation/slang/cst';
1+
import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { doc } from 'prettier';
33
import { isBinaryOperation } from '../slang-utils/is-binary-operation.js';
44
import { SlangNode } from './SlangNode.js';
55
import { Expression } from './Expression.js';
6+
import { TerminalNode } from './TerminalNode.js';
67

78
import type * as ast from '@nomicfoundation/slang/ast';
89
import type { AstPath, Doc, ParserOptions } from 'prettier';
@@ -36,7 +37,7 @@ export class AssignmentExpression extends SlangNode {
3637
return [
3738
path.call(print, 'leftOperand'),
3839
` ${this.operator}`,
39-
rightOperandVariant.kind !== TerminalKind.Identifier &&
40+
!(rightOperandVariant instanceof TerminalNode) &&
4041
isBinaryOperation(rightOperandVariant)
4142
? group(indent([line, rightOperand]))
4243
: [' ', rightOperand]

src/slang-nodes/CatchClauseError.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { doc } from 'prettier';
22
import { NonterminalKind } from '@nomicfoundation/slang/cst';
33
import { SlangNode } from './SlangNode.js';
4-
import { Identifier } from './Identifier.js';
4+
import { TerminalNode } from './TerminalNode.js';
55
import { ParametersDeclaration } from './ParametersDeclaration.js';
66

77
import type * as ast from '@nomicfoundation/slang/ast';
@@ -14,15 +14,15 @@ const { group } = doc.builders;
1414
export class CatchClauseError extends SlangNode {
1515
readonly kind = NonterminalKind.CatchClauseError;
1616

17-
name?: Identifier;
17+
name?: TerminalNode;
1818

1919
parameters: ParametersDeclaration;
2020

2121
constructor(ast: ast.CatchClauseError, options: ParserOptions<AstNode>) {
2222
super(ast);
2323

2424
if (ast.name) {
25-
this.name = new Identifier(ast.name);
25+
this.name = new TerminalNode(ast.name);
2626
}
2727
this.parameters = new ParametersDeclaration(ast.parameters, options);
2828

src/slang-nodes/ConstantDefinition.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { SlangNode } from './SlangNode.js';
33
import { TypeName } from './TypeName.js';
4-
import { Identifier } from './Identifier.js';
4+
import { TerminalNode } from './TerminalNode.js';
55
import { Expression } from './Expression.js';
66

77
import type * as ast from '@nomicfoundation/slang/ast';
@@ -14,15 +14,15 @@ export class ConstantDefinition extends SlangNode {
1414

1515
typeName: TypeName;
1616

17-
name: Identifier;
17+
name: TerminalNode;
1818

1919
value: Expression;
2020

2121
constructor(ast: ast.ConstantDefinition, options: ParserOptions<AstNode>) {
2222
super(ast);
2323

2424
this.typeName = new TypeName(ast.typeName, options);
25-
this.name = new Identifier(ast.name);
25+
this.name = new TerminalNode(ast.name);
2626
this.value = new Expression(ast.value, options);
2727

2828
this.updateMetadata(this.typeName, this.value);

src/slang-nodes/ContractDefinition.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { doc } from 'prettier';
22
import { satisfies } from 'semver';
33
import { NonterminalKind } from '@nomicfoundation/slang/cst';
44
import { SlangNode } from './SlangNode.js';
5-
import { Identifier } from './Identifier.js';
5+
import { TerminalNode } from './TerminalNode.js';
66
import { ContractSpecifiers } from './ContractSpecifiers.js';
77
import { ContractMembers } from './ContractMembers.js';
88

@@ -18,7 +18,7 @@ export class ContractDefinition extends SlangNode {
1818

1919
abstractKeyword?: string;
2020

21-
name: Identifier;
21+
name: TerminalNode;
2222

2323
specifiers: ContractSpecifiers;
2424

@@ -28,7 +28,7 @@ export class ContractDefinition extends SlangNode {
2828
super(ast);
2929

3030
this.abstractKeyword = ast.abstractKeyword?.unparse();
31-
this.name = new Identifier(ast.name);
31+
this.name = new TerminalNode(ast.name);
3232
this.specifiers = new ContractSpecifiers(ast.specifiers, options);
3333
this.members = new ContractMembers(ast.members, options);
3434

src/slang-nodes/EnumDefinition.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { SlangNode } from './SlangNode.js';
3-
import { Identifier } from './Identifier.js';
3+
import { TerminalNode } from './TerminalNode.js';
44
import { EnumMembers } from './EnumMembers.js';
55

66
import type * as ast from '@nomicfoundation/slang/ast';
@@ -10,14 +10,14 @@ import type { PrintFunction } from '../types.d.ts';
1010
export class EnumDefinition extends SlangNode {
1111
readonly kind = NonterminalKind.EnumDefinition;
1212

13-
name: Identifier;
13+
name: TerminalNode;
1414

1515
members: EnumMembers;
1616

1717
constructor(ast: ast.EnumDefinition) {
1818
super(ast);
1919

20-
this.name = new Identifier(ast.name);
20+
this.name = new TerminalNode(ast.name);
2121
this.members = new EnumMembers(ast.members);
2222

2323
this.updateMetadata(this.members);

src/slang-nodes/EnumMembers.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { doc } from 'prettier';
22
import { NonterminalKind } from '@nomicfoundation/slang/cst';
33
import { printSeparatedList } from '../slang-printers/print-separated-list.js';
44
import { SlangNode } from './SlangNode.js';
5-
import { Identifier } from './Identifier.js';
5+
import { TerminalNode } from './TerminalNode.js';
66

77
import type * as ast from '@nomicfoundation/slang/ast';
88
import type { AstPath, Doc } from 'prettier';
@@ -13,12 +13,12 @@ const { hardline } = doc.builders;
1313
export class EnumMembers extends SlangNode {
1414
readonly kind = NonterminalKind.EnumMembers;
1515

16-
items: Identifier[];
16+
items: TerminalNode[];
1717

1818
constructor(ast: ast.EnumMembers) {
1919
super(ast, true);
2020

21-
this.items = ast.items.map((item) => new Identifier(item));
21+
this.items = ast.items.map((item) => new TerminalNode(item));
2222
}
2323

2424
print(path: AstPath<EnumMembers>, print: PrintFunction): Doc {

src/slang-nodes/ErrorDefinition.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { SlangNode } from './SlangNode.js';
3-
import { Identifier } from './Identifier.js';
3+
import { TerminalNode } from './TerminalNode.js';
44
import { ErrorParametersDeclaration } from './ErrorParametersDeclaration.js';
55

66
import type * as ast from '@nomicfoundation/slang/ast';
@@ -11,14 +11,14 @@ import type { PrintFunction } from '../types.d.ts';
1111
export class ErrorDefinition extends SlangNode {
1212
readonly kind = NonterminalKind.ErrorDefinition;
1313

14-
name: Identifier;
14+
name: TerminalNode;
1515

1616
members: ErrorParametersDeclaration;
1717

1818
constructor(ast: ast.ErrorDefinition, options: ParserOptions<AstNode>) {
1919
super(ast);
2020

21-
this.name = new Identifier(ast.name);
21+
this.name = new TerminalNode(ast.name);
2222
this.members = new ErrorParametersDeclaration(ast.members, options);
2323

2424
this.updateMetadata(this.members);

src/slang-nodes/ErrorParameter.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { joinExisting } from '../slang-utils/join-existing.js';
33
import { SlangNode } from './SlangNode.js';
44
import { TypeName } from './TypeName.js';
5-
import { Identifier } from './Identifier.js';
5+
import { TerminalNode } from './TerminalNode.js';
66

77
import type * as ast from '@nomicfoundation/slang/ast';
88
import type { AstPath, Doc, ParserOptions } from 'prettier';
@@ -14,14 +14,14 @@ export class ErrorParameter extends SlangNode {
1414

1515
typeName: TypeName;
1616

17-
name?: Identifier;
17+
name?: TerminalNode;
1818

1919
constructor(ast: ast.ErrorParameter, options: ParserOptions<AstNode>) {
2020
super(ast);
2121

2222
this.typeName = new TypeName(ast.typeName, options);
2323
if (ast.name) {
24-
this.name = new Identifier(ast.name);
24+
this.name = new TerminalNode(ast.name);
2525
}
2626

2727
this.updateMetadata(this.typeName);

src/slang-nodes/EventDefinition.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { SlangNode } from './SlangNode.js';
33
import { EventParametersDeclaration } from './EventParametersDeclaration.js';
4-
import { Identifier } from './Identifier.js';
4+
import { TerminalNode } from './TerminalNode.js';
55

66
import type * as ast from '@nomicfoundation/slang/ast';
77
import type { AstPath, Doc, ParserOptions } from 'prettier';
@@ -11,7 +11,7 @@ import type { PrintFunction } from '../types.d.ts';
1111
export class EventDefinition extends SlangNode {
1212
readonly kind = NonterminalKind.EventDefinition;
1313

14-
name: Identifier;
14+
name: TerminalNode;
1515

1616
parameters: EventParametersDeclaration;
1717

@@ -20,7 +20,7 @@ export class EventDefinition extends SlangNode {
2020
constructor(ast: ast.EventDefinition, options: ParserOptions<AstNode>) {
2121
super(ast);
2222

23-
this.name = new Identifier(ast.name);
23+
this.name = new TerminalNode(ast.name);
2424
this.parameters = new EventParametersDeclaration(ast.parameters, options);
2525
this.anonymousKeyword = ast.anonymousKeyword?.unparse();
2626

0 commit comments

Comments
 (0)