UNPKG

prettier-plugin-solidity

Version:

A Prettier Plugin for automatically formatting your Solidity code.

31 lines (23 loc) 980 B
import * as ast from '@nomicfoundation/slang/ast'; import { NonterminalKind } from '@nomicfoundation/slang/cst'; import { createNonterminalVariantSimpleCreator } from '../slang-utils/create-nonterminal-variant-creator.js'; import { SlangNode } from './SlangNode.js'; import { VersionRange } from './VersionRange.js'; import { VersionTerm } from './VersionTerm.js'; import type { CollectedMetadata } from '../types.d.ts'; const createNonterminalVariant = createNonterminalVariantSimpleCreator< ast.VersionExpression, VersionExpression >([ [ast.VersionRange, VersionRange], [ast.VersionTerm, VersionTerm] ]); export class VersionExpression extends SlangNode { readonly kind = NonterminalKind.VersionExpression; variant: VersionRange | VersionTerm; constructor(ast: ast.VersionExpression, collected: CollectedMetadata) { super(ast, collected); this.variant = createNonterminalVariant(ast.variant, collected); this.updateMetadata(this.variant); } }