public ExpressionParser(String expressionType, StatDefinitionRepository definitions, StatValueParserFactory parserFactory) { ExpressionType = expressionType; Definitions = definitions; ParserFactory = parserFactory; }
public IStatValueParser GetParser(StatValueParserFactory factory, StatDefinitionRepository definitions) { if (parser == null) { parser = factory.CreateParser(this, definitions); } return(parser); }
public IStatValueParser CreateParser(StatField field, StatDefinitionRepository definitions) { switch (field.Type) { case "Requirements": return(new ExpressionParser("Requirements", definitions, this)); case "Properties": return(new ExpressionParser("Properties", definitions, this)); case "Conditions": return(new ConditionsParser(definitions, this)); case "Enumeration": return(new EnumParser(field.EnumType)); case "EnumerationList": return(new MultiValueEnumParser(field.EnumType)); case "Boolean": return(new BooleanParser()); case "Integer": return(new Int32Parser()); case "Float": return(new FloatParser()); case "UUID": case "RootTemplate": return(new UUIDParser()); case "StatReference": return(new StatReferenceParser(ReferenceValidator, field.ReferenceTypes)); case "StatReferences": return(new MultiValueStatReferenceParser(ReferenceValidator, field.ReferenceTypes)); case "BaseClass": case "Name": case "String": case "TranslatedString": case "Comment": case "Color": return(new StringParser()); default: throw new ArgumentException($"Could not create parser for type '{field.Type}'"); } }
public ConditionsParser(StatDefinitionRepository definitions, StatValueParserFactory parserFactory) { ExprParser = new ExpressionParser("Conditions", definitions, parserFactory); }
public ConditionsParser(StatDefinitionRepository definitions) { ExprParser = new ExpressionParser("Conditions", definitions); }
public ExpressionParser(String expressionType, StatDefinitionRepository definitions) { ExpressionType = expressionType; Definitions = definitions; }