UNPKG

clarity-pattern-parser

Version:

Parsing Library for Typescript and Javascript.

31 lines (28 loc) 1.19 kB
import { Sequence } from "../../patterns/Sequence"; import { Literal } from "../../patterns/Literal"; import { Options } from "../../patterns/Options"; import { Reference } from "../../patterns/Reference"; import { Regex } from "../../patterns/Regex"; import { Repeat } from "../../patterns/Repeat"; import { name } from "./name"; import { optionalSpaces } from "./optionalSpaces"; import { stringLiteral } from "./stringLiteral"; import { Optional } from "../../patterns/Optional"; const propertyName = new Options("property-name", [stringLiteral.clone("object-property"), name.clone("object-property")]); const property = new Sequence("property", [ propertyName, optionalSpaces, new Literal("colon", ":"), optionalSpaces, new Reference("expression"), ]); const divider = new Regex("property-divider", "\\s*,\\s*"); const optionalProperties = new Optional("optional-properties", new Repeat("properties", property, { divider})); const objectLiteral = new Sequence("object-literal", [ new Literal("open-curly-bracket", "{"), optionalSpaces, optionalProperties, optionalSpaces, new Literal("close-curly-bracket", "}"), ]); export { objectLiteral };