Exemple #1
0
        public static DataValue GetDataValueFromNode(ITerminalNode node, [NotNull] Type type)
        {
            var value = Convert.ChangeType(node.GetTextValue(), type);

            return(new DataValue {
                DataType = type, Value = value
            });
        }
Exemple #2
0
        public override IValue VisitValue([NotNull] JLMLParser.ValueContext context)
        {
            ITerminalNode @string = context.STRING();
            ITerminalNode identif = context.IDENTIFIER();
            ITerminalNode propert = context.PROPERTY_NAME();
            ITerminalNode integer = context.NUMBER();
            ITerminalNode literal = context.LITERAL();

            if (@string != null)
            {
                return(GetDataValueFromNode(@string, typeof(string)));
            }
            if (integer != null)
            {
                return(GetDataValueFromNode(integer, typeof(int)));
            }
            if (literal != null)
            {
                return(GetDataValueFromNode(literal, typeof(bool)));
            }
            if (identif != null)
            {
                return new VariableValue {
                           Value = identif.GetTextValue()
                }
            }
            ;
            if (propert != null)
            {
                return new VariableValue {
                           Value = propert.GetTextValue()
                }
            }
            ;

            return(context.Accept(this));
        }