clarity-pattern-parser
Version:
Parsing Library for Typescript and Javascript.
33 lines (29 loc) • 1.2 kB
text/typescript
import { Sequence } from "../../patterns/Sequence";
import { Literal } from "../../patterns/Literal";
import { Options } from "../../patterns/Options";
import { Regex } from "../../patterns/Regex";
import { Repeat } from "../../patterns/Repeat";
import { escapedCharacter } from "./escapedCharacter";
import { Optional } from "../../patterns/Optional";
const doubleQuoteStringLiteral = new Sequence("double-string-literal", [
new Literal("double-quote", "\""),
new Optional("optional-characters", new Repeat("characters",
new Options("characters", [
new Regex("normal-characters", '[^"]+'),
escapedCharacter
])
)),
new Literal("double-quote", "\""),
]);
const singleQuoteStringLiteral = new Sequence("single-string-literal", [
new Literal("single-quote", "'"),
new Optional("optional-characters", new Repeat("characters",
new Options("characters", [
new Regex("normal-characters", "[^']+"),
escapedCharacter
]),
)),
new Literal("single-quote", "'"),
]);
const stringLiteral = new Options("string-literal", [doubleQuoteStringLiteral, singleQuoteStringLiteral]);
export { stringLiteral };