/** * Uniform distribution definition. * * @return Uniform distribution definition rule. */ public Rule uniformDistribution() { return Sequence(function("uniform"), push(new UniformDistribution())); }
/** * UUID value definition. * * @return UUID value definition rule. */ public Rule uuidValue() { return Sequence(function("uuid"), push(new UUIDValue())); }
/** * Empty map value definition. * * @return Empty map value definition rule. */ @SuppressWarnings({ "rawtypes" }) public Rule emptyMapValue() { return Sequence(function("emptyMap"), push(new EmptyMapValue())); }
/** * Null value definition. * * @return Null value definition rule. */ public Rule nullValue() { return Sequence("null", openParenthesis(), closedParenthesis(), push(new NullValue())); }
/** * Boolean value definition. * * @return Boolean value definition rule. */ public Rule booleanLiteralValue() { return Sequence(booleanLiteral(), push(ConstantValue.of(pop()))); }
/** * Character literal definition. * * @return Character literal definition rule. */ public Rule charLiteral() { return Sequence(Sequence('\'', FirstOf(escape(), Sequence(TestNot(AnyOf("'\\")), ANY)), '\''), push(new Character(match().charAt(1) == '\\' ? match().charAt(2) : match().charAt(1)))); }
/** * Number value definition. * * @return Number value definition rule. */ public Rule numberLiteralValue() { return Sequence(numberLiteral(), push(ConstantValue.of(pop()))); }
/** * Implicit integer definition. * * @return Implicit integer definition rule. */ public Rule implicitLongLiteral() { return Sequence(Sequence(Optional(sign()), unsignedIntegerLiteral()), push(Long.parseLong(match()))); }
/** * Normal distribution definition. * * @return Normal distribution definition rule. */ public Rule normalDistribution() { return Sequence(function("normal", list(numberLiteral())), push(createNormalDistribution())); }
/** * JSON transformer definition. * * @return JSON transformer definition rule. */ public Rule jsonTransformer() { return Sequence(function("json", valueReference()), push(new JsonTransformer((Value<?>) pop()))); }
/** * String value definition. * * @return String value definition rule. */ public Rule stringLiteralValue() { return Sequence(FirstOf(stringLiteral(), nakedStringLiteral()), push(ConstantValue.of(pop()))); }
/** * Exact weighted value definition. * * @return Weighted value definition rule. */ @SuppressWarnings({ "unchecked", "rawtypes" }) public Rule exactWeightedValue() { return Sequence(function("exactly", bracketList(countValuePair())), push(new ExactWeightedValue<>((List) pop()))); }
/** * Character range definition. * * @return Character range definition rule. */ @SuppressWarnings({ "unchecked", "rawtypes" }) public Rule charRange() { return Sequence(Sequence(charLiteral(), "..", charLiteral()), push(new Range((Character) pop(1), (Character) pop()))); }
/** * Getter transformer definition. * * @return Getter transformer definition rule. */ @SuppressWarnings({ "rawtypes" }) public Rule getterTransformer() { return Sequence(function("get", Sequence(stringLiteral(), comma(), value())), push(new GetterTransformer<>((String) pop(1), Object.class, (Value) pop()))); }
/** * Addition value definition. * * @return Addition value definition rule. */ public Rule additionValue() { return Sequence(function("add", Sequence(stringLiteral(), comma(), value(), comma(), value())), push(createAdditionValue())); }
/** * Division value definition. * * @return Division value definition rule. */ public Rule divisionValue() { return Sequence(function("divide", Sequence(stringLiteral(), comma(), value(), comma(), value())), push(createDivisionValue())); }
/** * Discrete value definition. * * @return Discrete value definition rule. */ public Rule discreteValue() { return Sequence(function("random", Sequence(bracketList(value()), Optional(comma(), distribution()))), push(createDiscreteValue())); }
/** * Subtraction value definition. * * @return Subtraction value definition rule. */ public Rule subtractionValue() { return Sequence(function("subtract", Sequence(stringLiteral(), comma(), value(), comma(), value())), push(createSubtractionValue())); }
/** * Single quote string definition. * * @return Single quote string definition rule. */ public Rule singleQuoteStringLiteral() { return Sequence(Sequence("'", ZeroOrMore(FirstOf(escape(), Sequence(TestNot(AnyOf("\r\n'\\")), ANY))), "'"), push(trimOffEnds(match()))); }