
org.xmlet.regex.visitor.RegexVisitor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of regex Show documentation
Show all versions of regex Show documentation
A library that provides a fluent interface to write regular expressions.
The newest version!
package org.xmlet.regex.visitor;
import org.xmlet.regexapi.*;
public class RegexVisitor extends ElementVisitor {
private StringBuilder stringBuilder = new StringBuilder();
public void visitElement(Element var1) {
}
public void visitAttribute(String var1, String var2) {
}
public void visitParent(Element var1) {
}
public void visitText(Text extends Element, R> var1) {
stringBuilder.append(var1.getValue());
}
public void visitComment(Text extends Element, R> var1) {
}
public String getRegex() {
return stringBuilder.toString();
}
/* ************************* */
/* Character Escape Elements */
/* ************************* */
public void visitElementBell(Bell var1) {
stringBuilder.append("\\a");
}
public void visitElementBackspace(Backspace var1) {
stringBuilder.append("\u0008");
}
public void visitElementTab(Tab var1) {
stringBuilder.append('\t');
}
public void visitElementCarriageReturn(CarriageReturn var1) {
stringBuilder.append("\\r");
}
public void visitElementVerticalTab(VerticalTab var1) {
stringBuilder.append("\\v");
}
public void visitElementFormFeed(FormFeed var1) {
stringBuilder.append("\\f");
}
public void visitElementNewLine(NewLine var1) {
stringBuilder.append("\\n");
}
public void visitElementEscape(Escape var1) {
stringBuilder.append("\\e");
}
public void visitElementOctal(Octal var1) {
stringBuilder.append('\\');
}
public void visitElementHexadecimal(Hexadecimal var1) {
stringBuilder.append("\\x");
}
public void visitElementControlChar(ControlChar var1) {
stringBuilder.append("\\c");
}
public void visitElementUnicode(Unicode var1) {
stringBuilder.append("\\u");
}
public void visitElementOtherChar(OtherChar var1) {
stringBuilder.append("\\");
}
/* *************************** */
/* Character Escape Attributes */
/* *************************** */
public void visitAttributeOneChar(String oneChar) {
stringBuilder.append(oneChar);
}
public void visitAttributeTwoDigits(String twoDigits) {
stringBuilder.append(fillStringToNumberOfDigits(twoDigits, 2));
}
public void visitAttributeThreeDigits(String threeDigits) {
stringBuilder.append(fillStringToNumberOfDigits(threeDigits, 3));
}
public void visitAttributeFourDigits(String fourDigits) {
stringBuilder.append(fillStringToNumberOfDigits(fourDigits, 4));
}
/* ************************** */
/* Character Classes Elements */
/* ************************** */
public void visitElementCharacterGroup(CharacterGroup var1) {
stringBuilder.append('[');
}
public void visitElementCharacterNotGroup(CharacterNotGroup var1) {
stringBuilder.append("[^");
}
public void visitElementFromFirstUntilLast(FromFirstUntilLast var1) {
stringBuilder.append('[');
}
public void visitElementAnyChar(AnyChar var1) {
stringBuilder.append('.');
}
public void visitElementUnicodeBlock(UnicodeBlock var1) {
stringBuilder.append("\\p{");
}
public void visitElementUnicodeNotBlock(UnicodeNotBlock var1) {
stringBuilder.append("\\P{");
}
public void visitElementAnyLetterOrDigit(AnyLetterOrDigit var1) {
stringBuilder.append("\\w");
}
public void visitElementAnyNonLetterOrDigit(AnyNonLetterOrDigit var1) {
stringBuilder.append("\\W");
}
public void visitElementAnyWhiteSpace(AnyWhiteSpace var1) {
stringBuilder.append("\\s");
}
public void visitElementAnyNonWhiteSpace(AnyNonWhiteSpace var1) {
stringBuilder.append("\\S");
}
public void visitElementAnyDigit(AnyDigit var1) {
stringBuilder.append("\\d");
}
public void visitElementAnyNonDigit(AnyNonDigit var1) {
stringBuilder.append("\\D");
}
/* **************************** */
/* Character Classes Attributes */
/* **************************** */
public void visitAttributeCharGroup(String charGroup){
stringBuilder.append(charGroup).append(']');
}
public void visitAttributeBlock(String block) {
stringBuilder.append(block).append('}');
}
public void visitAttributeFirst(String first) {
stringBuilder.append(first);
}
public void visitAttributeLast(String last) {
stringBuilder.append('-').append(last).append(']');
}
/* **************************** */
/* Anchors */
/* **************************** */
public void visitElementAtBeginning(AtBeginning var1) {
stringBuilder.append('^');
}
public void visitElementAtEnd(AtEnd var1) {
stringBuilder.append('$');
}
public void visitElementAtStringBeginning(AtStringBeginning var1) {
stringBuilder.append("\\A");
}
public void visitElementAtStringEndOrNewline(AtStringEndOrNewline var1) {
stringBuilder.append("\\Z");
}
public void visitElementAtStringEnd(AtStringEnd var1) {
stringBuilder.append("\\z");
}
public void visitElementConsecutiveMatch(ConsecutiveMatch var1) {
stringBuilder.append("\\G");
}
public void visitElementBoundary(Boundary var1) {
stringBuilder.append("\\b");
}
public void visitElementNoBoundary(NoBoundary var1) {
stringBuilder.append("\\B");
}
/* **************************** */
/* Grouping Constructs */
/* **************************** */
public void visitElementSubExpression(SubExpression expression) {
stringBuilder.append('(');
}
public void visitElementNamedSubExpression(NamedSubExpression var1) {
stringBuilder.append("(?<");
}
public void visitElementNonCapturingGroup(NonCapturingGroup expression) {
stringBuilder.append("(?:");
}
public void visitElementPositiveLookAhead(PositiveLookAhead expression) {
stringBuilder.append("(?=");
}
public void visitElementNegativeLookAhead(NegativeLookAhead expression) {
stringBuilder.append("(?!");
}
public void visitElementPositiveLookBehind(PositiveLookBehind expression) {
stringBuilder.append("(?<=");
}
public void visitElementNegativeLookBehind(NegativeLookBehind expression) {
stringBuilder.append("(? void visitElementNonBackTracking(NonBackTracking expression) {
stringBuilder.append("(?>");
}
/* ****************************** */
/* Grouping Constructs Attributes */
/* ****************************** */
public void visitAttributeSubExpr(String expression) {
stringBuilder.append(expression).append(')');
}
public void visitAttributeOptionsSubExpr(String expression) {
stringBuilder.append(':').append(expression).append(')');
}
public void visitElementExpression(Expression var1) {
stringBuilder.append('>');
}
public void visitParentExpression(Expression var1) {
stringBuilder.append(')');
}
/* ****************************** */
/* Quantifiers */
/* ****************************** */
public void visitElementZeroOrMore(ZeroOrMore var1) {
stringBuilder.append('*');
}
public void visitElementOneOrMore(OneOrMore var1) {
stringBuilder.append('+');
}
public void visitElementZeroOrOne(ZeroOrOne var1) {
stringBuilder.append('?');
}
public void visitElementMatchPreviousNTimes(MatchPreviousNTimes var1) {
stringBuilder.append('{');
}
public void visitElementMatchPreviousAtLeast(MatchPreviousAtLeast var1) {
stringBuilder.append('{');
}
public void visitElementMatchPreviousBetween(MatchPreviousBetween var1) {
stringBuilder.append('{');
}
public void visitElementMinMatchZeroOrMore(MinMatchZeroOrMore var1) {
stringBuilder.append("*?");
}
public void visitElementMinMatchOneOrMore(MinMatchOneOrMore var1) {
stringBuilder.append("+?");
}
public void visitElementMinMatchZeroOrOne(MinMatchZeroOrOne var1) {
stringBuilder.append("??");
}
public void visitElementMinMatchPreviousNTimes(MinMatchPreviousNTimes var1) {
stringBuilder.append('{');
}
public void visitElementMinMatchPreviousAtLeast(MinMatchPreviousAtLeast var1) {
stringBuilder.append('{');
}
public void visitElementMinMatchPreviousBetween(MinMatchPreviousBetween var1) {
stringBuilder.append('{');
}
/* ****************************** */
/* Quantifiers Attributes */
/* ****************************** */
public void visitAttributeN(String n) {
stringBuilder.append(n).append('}');
}
public void visitAttributeNTimes(String expression) {
stringBuilder.append(expression).append(",}");
}
public void visitParentN(N var1) {
stringBuilder.append(',');
}
public void visitParentM(M var1) {
stringBuilder.append('}');
}
public void visitAttributeMinN(String expression) {
stringBuilder.append(expression).append("}?");
}
public void visitAttributeMinNTimes(String expression) {
stringBuilder.append(expression).append(",}?");
}
public void visitParentMinM(MinM var1) {
stringBuilder.append("}?");
}
/* ****************************** */
/* BackReference Constructs */
/* ****************************** */
public void visitElementBackReference(BackReference var1) {
stringBuilder.append('\\');
}
public void visitElementNamedBackReference(NamedBackReference var1) {
stringBuilder.append("\\k<");
}
/* **************************************** */
/* BackReference Constructs Attributes */
/* **************************************** */
public void visitAttributeName(String name) {
stringBuilder.append(name).append('>');
}
public void visitAttributeNumber(String number) {
stringBuilder.append(number);
}
/* *************************** */
/* Alternation Constructs */
/* *************************** */
public void visitElementAnd(And var1) {
stringBuilder.append("&&");
}
public void visitElementOr(Or var1) {
stringBuilder.append('|');
}
public void visitElementIfMatch(IfMatch var1) {
stringBuilder.append("(?(?=");
}
public void visitElementConditionalNamedExpression(ConditionalNamedExpression expression) {
stringBuilder.append('(');
}
public void visitParentConditionalNamedExpressionComplete(ConditionalNamedExpressionComplete expression) {
stringBuilder.append(')');
}
public void visitElementIfGroupMatch(IfGroupMatch var1) {
stringBuilder.append("(?(");
}
public void visitParentIfGroupMatchComplete(IfGroupMatchComplete var1) {
stringBuilder.append(')');
}
/* ************************************* */
/* Alternation Constructs Attributes */
/* ************************************* */
public void visitElementThenExpression(ThenExpression then) {
stringBuilder.append(')');
}
public void visitElementElseExpression(ElseExpression var1) {
stringBuilder.append('|');
}
public void visitParentElseExpression(ElseExpression var1) {
stringBuilder.append(')');
}
public void visitElementCondNameFirst(CondNameFirst expression) {
stringBuilder.append('{');
}
public void visitParentCondNameFirst(CondNameFirst expression) {
stringBuilder.append('}');
}
/* ****************** */
/* Substitutions */
/* ****************** */
public void visitElementNumberSubstitution(NumberSubstitution expression) {
stringBuilder.append('$');
}
public void visitElementNameSubstitution(NameSubstitution expression) {
stringBuilder.append("${");
}
/* **************************** */
/* Substitutions Attributes */
/* **************************** */
public void visitAttributeSubstitutionName(String expression) {
stringBuilder.append(expression).append('}');
}
/* ******************** */
/* Options Elements */
/* ******************** */
public void visitElementCaseInsensitive(CaseInsensitive var1) {
stringBuilder.append('i');
}
public void visitElementMultilineMode(MultilineMode var1) {
stringBuilder.append('m');
}
public void visitElementNoUnnamedModes(NoUnnamedModes var1) {
stringBuilder.append('n');
}
public void visitElementSingleLineMode(SingleLineMode var1) {
stringBuilder.append('s');
}
public void visitElementIgnoreUnescapedWhiteSpaces(IgnoreUnescapedWhiteSpaces var1) {
stringBuilder.append('x');
}
/* **************************** */
/* Miscellaneous Constructs */
/* **************************** */
public void visitElementActivateOption(ActivateOption var1) {
stringBuilder.append("(?");
}
public void visitElementRegexComment(RegexComment var1) {
stringBuilder.append("(?#");
}
public void visitParentRegexComment(RegexComment var1) {
stringBuilder.append(')');
}
public void visitElementRegexLineComment(RegexLineComment var1) {
stringBuilder.append('#');
}
/* *************************************** */
/* Miscellaneous Constructs Attributes */
/* *************************************** */
public void visitAttributeComment(String comment) {
stringBuilder.append(comment);
}
public void visitAttributeOption(String option) {
stringBuilder.append(option);
}
/* ******************** */
/* Auxiliary Methods */
/* ******************** */
private String fillStringToNumberOfDigits(String string, int numberOfDigits) {
while (string.length() != numberOfDigits){
string = "0".concat(string);
}
return string;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy