Exemplo n.º 1
0
        private void WrapParameterInParentheses(ASTNodeList newNodes, IASTNode parameter)
        {
            IASTNode newNode = NodeFactory.CreateNode(ASTStartParenthesesNode.KeyWord, false);

            Translator.TranslateSubNodes(newNode.SubNodes, parameter);
            newNode.SubNodes.Add(NodeFactory.CreateNode(ASTEndParenthesesNode.KeyWord));
            newNodes.Add(newNode);
        }
Exemplo n.º 2
0
        public override void Translate(IATranslator translator, ASTNodeList newNodes, ASTNodeList subNodes, IASTNodeFactory nodeFactory)
        {
            // MOD(3, 5) => (3) % (5)
            Translator  = translator;
            NodeFactory = nodeFactory;

            WrapParameterInParentheses(newNodes, subNodes[1]);
            newNodes.Add(nodeFactory.CreateNode("%"));
            WrapParameterInParentheses(newNodes, subNodes[3]);
        }
Exemplo n.º 3
0
        public ASTNodeList ParseExpression(ATokens tokens)
        {
            ASTNodeList nodes = new ASTNodeList();

            while (tokens.CurrentToken != null)
            {
                IASTNode node = NodeFactory.CreateNode(tokens.CurrentToken.Text, tokens.CurrentToken.AddSpace);
                node.Parse(NodeFactory, this, tokens);
                nodes.Add(node);
            }
            return(nodes);
        }
Exemplo n.º 4
0
        public override void Translate(IATranslator translator, ASTNodeList newNodes, ASTNodeList subNodes, IASTNodeFactory nodeFactory)
        {
            IASTNode newNode = nodeFactory.CreateNode(ASTStartParenthesesNode.KeyWord, false);

            newNode.SubNodes.Add(nodeFactory.CreateFunctionParameterNode());
            newNode.SubNodes.Add(nodeFactory.CreateNode("+"));
            newNode.SubNodes.Add(nodeFactory.CreateFunctionParameterNode());
            newNode.SubNodes.Add(nodeFactory.CreateNode(ASTEndParenthesesNode.KeyWord));

            newNodes.Add(newNode);
            translator.TranslateSubNodes(newNode.SubNodes[0].SubNodes, subNodes[1]);
            translator.TranslateSubNodes(newNode.SubNodes[2].SubNodes, subNodes[3]);
        }
Exemplo n.º 5
0
        public override void Translate(IATranslator translator, ASTNodeList newNodes, ASTNodeList subNodes, IASTNodeFactory nodeFactory)
        {
            // TO_FLOAT('123') => convert(dec(28,8) , '123')
            Translator  = translator;
            NodeFactory = nodeFactory;

            IASTNode newNode = NodeFactory.CreateNode("convert", false);

            newNode.SubNodes.Add(NodeFactory.CreateNode(ASTStartParenthesesNode.KeyWord, false));
            newNode.SubNodes.Add(NodeFactory.CreateFunctionParameterNode());
            newNode.SubNodes.Add(NodeFactory.CreateNode(ASTCommaNode.KeyWord));
            newNode.SubNodes.Add(CreateFunctionParameterNodeWithSubNodes(subNodes[1]));
            newNode.SubNodes.Add(NodeFactory.CreateNode(ASTEndParenthesesNode.KeyWord));

            AddFunction(newNode.SubNodes[1].SubNodes, "dec", CreateFunctionParameterNode("28"), CreateFunctionParameterNode("8"));
            newNodes.Add(newNode);
        }
Exemplo n.º 6
0
 public override void Translate(IATranslator translator, ASTNodeList newNodes, ASTNodeList subNodes, IASTNodeFactory nodeFactory)
 {
     newNodes.Add(nodeFactory.CreateNode("sysdate"));
 }