MCPcopy Create free account
hub / github.com/PCGen/pcgen / parse

Method parse

code/src/java/plugin/pretokens/parser/PreMultParser.java:39–69  ·  view source on GitHub ↗
(String kind, String formula, boolean invertResult, boolean overrideQualify)

Source from the content-addressed store, hash-verified

37 }
38
39 @Override
40 public Prerequisite parse(String kind, String formula, boolean invertResult, boolean overrideQualify)
41 throws PersistenceLayerException
42 {
43 Prerequisite prereq = super.parse(kind, formula, invertResult, overrideQualify);
44 prereq.setKind(null);
45 prereq.setCharacterRequired(false);
46
47 int commaIndex = formula.indexOf(',');
48
49 if (commaIndex > 0)
50 {
51 String minFormula = formula.substring(0, commaIndex);
52 formula = formula.substring(commaIndex + 1);
53 prereq.setOperator(PrerequisiteOperator.GTEQ);
54 prereq.setOperand(minFormula);
55 }
56
57 // [PREARMORPROF:1,TYPE.Medium],[PREFEAT:1,Armor Proficiency (Medium)]
58 PreParserFactory parser = PreParserFactory.getInstance();
59 for (String s : splitOnTopLevelToken(formula, '[', ']'))
60 {
61 prereq.addPrerequisite(parser.parse(s));
62 }
63
64 if (invertResult)
65 {
66 prereq.setOperator(prereq.getOperator().invert());
67 }
68 return prereq;
69 }
70
71 protected static List<String> splitOnTopLevelToken(String input, char startDelimiter, char endDelimiter)
72 throws PersistenceLayerException

Callers 2

testFeat1Method · 0.95
testUnbalancedBracketMethod · 0.95

Calls 12

setKindMethod · 0.95
setCharacterRequiredMethod · 0.95
setOperatorMethod · 0.95
setOperandMethod · 0.95
getInstanceMethod · 0.95
splitOnTopLevelTokenMethod · 0.95
addPrerequisiteMethod · 0.95
parseMethod · 0.95
getOperatorMethod · 0.95
invertMethod · 0.80
parseMethod · 0.65
indexOfMethod · 0.65

Tested by 2

testFeat1Method · 0.76
testUnbalancedBracketMethod · 0.76