clarity-pattern-parser
Version:
Parsing Library for Typescript and Javascript.
29 lines (24 loc) • 937 B
text/typescript
import { Sequence } from "../../patterns/Sequence";
import { Literal } from "../../patterns/Literal";
import { Options } from "../../patterns/Options";
import { Reference } from "../../patterns/Reference";
import { name } from "./name";
import { Optional } from "../../patterns/Optional";
const dotPropertyAccess = new Sequence("dot-property-access", [
new Literal("period", "."),
name.clone("property-name")
]);
const bracketPropertyAccess = new Sequence("bracket-property-access", [
new Literal("open-square-bracket", "["),
new Reference("expression"),
new Literal("close-square-bracket", "]"),
]);
const propertyAccessTypes = new Options("property-access-types", [
dotPropertyAccess,
bracketPropertyAccess
]);
const propertyAccess = new Sequence("property-access", [
propertyAccessTypes,
new Optional("optional-property-access", new Reference("property-access"))
]);
export { propertyAccess };