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);
 }
Example #5
0
 public ConditionsParser(StatDefinitionRepository definitions)
 {
     ExprParser = new ExpressionParser("Conditions", definitions);
 }
Example #6
0
 public ExpressionParser(String expressionType, StatDefinitionRepository definitions)
 {
     ExpressionType = expressionType;
     Definitions    = definitions;
 }