Ejemplo n.º 1
0
        public void ExitPrimaryexpression([NotNull] sqfParser.PrimaryexpressionContext context)
        {
            var node = this.ExitGeneric <SqfPrimaryExpression>(context);

            if (context.NUMBER() != null)
            {
                var value      = new SqfNumber(node.GetParent());
                var valContext = context.NUMBER();
                value.Value       = valContext.GetText();
                value.StartOffset = node.StartOffset;
                value.Length      = node.Length;
                value.Col         = node.Col;
                node.GetParent().Children[node.GetParent().Children.IndexOf(node)] = value;
            }
            else if (context.STRING() != null)
            {
                var value      = new SqfString(node.GetParent());
                var valContext = context.STRING();
                value.Value       = valContext.GetText();
                value.StartOffset = node.StartOffset;
                value.Length      = node.Length;
                value.Col         = node.Col;
                node.GetParent().Children[node.GetParent().Children.IndexOf(node)] = value;
            }
            else
            {
                if (context.GetToken(sqfLexer.CURLYOPEN, 0) != null)
                {
                    if (node.Children.Count > 0)
                    {
                        node.RemoveFromTree();
                    }
                    else
                    {
                        var value         = new SqfCode(node.GetParent());
                        var numberContext = context.STRING();
                        value.StartOffset = node.StartOffset;
                        value.Length      = node.Length;
                        value.Col         = node.Col;
                        node.GetParent().Children[node.GetParent().Children.IndexOf(node)] = value;
                    }
                }
                else
                {
                    node.RemoveFromTree();
                }
            }
        }
Ejemplo n.º 2
0
 public void EnterPrimaryexpression([NotNull] sqfParser.PrimaryexpressionContext context)
 {
     this.EnterGeneric(new SqfPrimaryExpression(this.Current));
 }