Exemplo n.º 1
0
        private static ASTNodeFilterExpr parseFilterExp(ASTNodeAbstractExpr node)
        {
            ASTNodeFilterExpr filt = new ASTNodeFilterExpr();
            int i;

            for (i = node.content.Count - 1; i >= 0; i--)
            {
                if (node.content[i] is ASTNodePredicate)
                {
                    filt.predicates.Insert(0, node.content[i]);
                }
                else
                {
                    break;
                }
            }

            if (filt.predicates.Count == 0)
            {
                return(null);
            }

            filt.expr = node.extract(0, i + 1);
            return(filt);
        }
Exemplo n.º 2
0
        private static void  parseBalanced(ASTNode node, SubNodeFactory snf, int lToken, int rToken)
        {
            if (node is ASTNodeAbstractExpr)
            {
                ASTNodeAbstractExpr absNode = (ASTNodeAbstractExpr)node;

                int i = 0;
                while (i < absNode.content.Count)
                {
                    int type = absNode.getTokenType(i);
                    if (type == rToken)
                    {
                        throw new XPathSyntaxException("Unbalanced brackets or parentheses!");                         //unbalanced
                    }
                    else if (type == lToken)
                    {
                        int j = absNode.indexOfBalanced(i, rToken, lToken, rToken);
                        if (j == -1)
                        {
                            throw new XPathSyntaxException("mismatched brackets or parentheses!");                             //mismatched
                        }

                        absNode.condense(snf.newNode(absNode.extract(i + 1, j)), i, j + 1);
                    }
                    i++;
                }
            }

            //UPGRADE_TODO: Method 'java.util.Enumeration.hasMoreElements' was converted to 'System.Collections.IEnumerator.MoveNext' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javautilEnumerationhasMoreElements'"
            for (System.Collections.IEnumerator e = node.Children.GetEnumerator(); e.MoveNext();)
            {
                //UPGRADE_TODO: Method 'java.util.Enumeration.nextElement' was converted to 'System.Collections.IEnumerator.Current' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javautilEnumerationnextElement'"
                parseBalanced((ASTNode)e.Current, snf, lToken, rToken);
            }
        }
Exemplo n.º 3
0
        private static void  parseUnaryOp(ASTNode node, int op)
        {
            if (node is ASTNodeAbstractExpr)
            {
                ASTNodeAbstractExpr absNode = (ASTNodeAbstractExpr)node;

                if (absNode.content.Count > 0 && absNode.getTokenType(0) == op)
                {
                    ASTNodeUnaryOp unOp = new ASTNodeUnaryOp();
                    unOp.op   = op;
                    unOp.expr = (absNode.content.Count > 1?absNode.extract(1, absNode.content.Count):new ASTNodeAbstractExpr());
                    absNode.condense(unOp, 0, absNode.content.Count);
                }
            }

            //UPGRADE_TODO: Method 'java.util.Enumeration.hasMoreElements' was converted to 'System.Collections.IEnumerator.MoveNext' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javautilEnumerationhasMoreElements'"
            for (System.Collections.IEnumerator e = node.Children.GetEnumerator(); e.MoveNext();)
            {
                //UPGRADE_TODO: Method 'java.util.Enumeration.nextElement' was converted to 'System.Collections.IEnumerator.Current' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javautilEnumerationnextElement'"
                parseUnaryOp((ASTNode)e.Current, op);
            }
        }