From ce3d0cb6b5349787d26f4a2d7201b3d04b8e5085 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 23 Feb 2016 20:48:50 +0000 Subject: Add parsing for paragraph matchers --- .../mammoth/styles/parsing/HtmlPathParser.java | 68 ---------------------- 1 file changed, 68 deletions(-) delete mode 100644 src/main/java/org/zwobble/mammoth/styles/parsing/HtmlPathParser.java (limited to 'src/main/java/org/zwobble/mammoth/styles/parsing/HtmlPathParser.java') diff --git a/src/main/java/org/zwobble/mammoth/styles/parsing/HtmlPathParser.java b/src/main/java/org/zwobble/mammoth/styles/parsing/HtmlPathParser.java deleted file mode 100644 index 18e1107..0000000 --- a/src/main/java/org/zwobble/mammoth/styles/parsing/HtmlPathParser.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.zwobble.mammoth.styles.parsing; - -import org.parboiled.BaseParser; -import org.parboiled.Rule; -import org.parboiled.support.Var; -import org.zwobble.mammoth.styles.HtmlPath; -import org.zwobble.mammoth.styles.HtmlPathElement; - -import static org.zwobble.mammoth.util.MammothMaps.map; - -public class HtmlPathParser extends BaseParser { - public Rule HtmlPath() { - ListVar elements = new ListVar<>(); - return Sequence(Optional(HtmlPathElements(elements)), EOI, push(new HtmlPath(elements.build()))); - } - - Rule HtmlPathElements(ListVar elements) { - Var element = new Var<>(); - return Sequence( - HtmlPathElement(element), - elements.append(element), - ZeroOrMore(Sequence(Whitespace(), Ch('>'), Whitespace(), HtmlPathElement(element), elements.append(element)))); - } - - Rule HtmlPathElement(Var element) { - ListVar tagNames = new ListVar<>(); - ListVar classNames = new ListVar<>(); - Var fresh = new Var<>(); - return Sequence( - TagNames(tagNames), - ClassNames(classNames), - Fresh(fresh), - element.set(new HtmlPathElement( - tagNames.build(), - classNames.isEmpty() ? map() : map("class", String.join(" ", classNames.build())), - !fresh.get()))); - } - - Rule TagNames(ListVar tagNames) { - return Sequence( - Identifier(), - tagNames.append(match()), - ZeroOrMore(Sequence("|", Identifier(), tagNames.append(match())))); - } - - Rule ClassNames(ListVar classNames) { - Var className = new Var<>(); - return ZeroOrMore(Sequence(ClassName(className), classNames.append(className))); - } - - Rule ClassName(Var className) { - return Sequence(".", Identifier(), className.set(match())); - } - - Rule Fresh(Var fresh) { - return Sequence(fresh.set(false), Optional(":fresh", fresh.set(true))); - } - - Rule Identifier() { - return Sequence( - FirstOf(CharRange('a', 'z'), CharRange('A', 'Z')), - ZeroOrMore(FirstOf(CharRange('a', 'z'), CharRange('A', 'Z'), CharRange('0', '9'), Ch('-'), Ch('_')))); - } - - Rule Whitespace() { - return ZeroOrMore(AnyOf(" \t")); - } -} -- cgit v1.2.3