Package org.joni.ast

Examples of org.joni.ast.ConsAltNode


        int len = 0;
        returnCode = 0;

        switch(node.getType()) {
        case NodeType.LIST:
            ConsAltNode ln = (ConsAltNode)node;
            do {
                int tlen = getCharLengthTree(ln.car, level);
                if (returnCode == 0) len = MinMaxLen.distanceAdd(len, tlen);
            } while (returnCode == 0 && (ln = ln.cdr) != null);
            break;

        case NodeType.ALT:
            ConsAltNode an = (ConsAltNode)node;
            boolean varLen = false;

            int tlen = getCharLengthTree(an.car, level);
            while (returnCode == 0 && (an = an.cdr) != null) {
                int tlen2 = getCharLengthTree(an.car, level);
View Full Code Here


        boolean invalid = false;

        switch(node.getType()) {
        case NodeType.LIST:
        case NodeType.ALT:
            ConsAltNode can = (ConsAltNode)node;
            do {
                invalid = checkTypeTree(can.car, typeMask, encloseMask, anchorMask);
            } while (!invalid && (can = can.cdr) != null);
            break;
View Full Code Here

        int r = 0;

        switch (node.getType()) {
        case NodeType.LIST:
            int min;
            ConsAltNode x = (ConsAltNode)node;
            do {
                int ret = subexpInfRecursiveCheck(x.car, head);
                if (ret == RECURSION_INFINITE) return ret;
                r |= ret;
                if (head) {
                    min = getMinMatchLength(x.car);
                    if (min != 0) head = false;
                }
            } while ((x = x.cdr) != null);
            break;

        case NodeType.ALT:
            ConsAltNode can = (ConsAltNode)node;
            r = RECURSION_EXIST;
            do {
                int ret = subexpInfRecursiveCheck(can.car, head);
                if (ret == RECURSION_INFINITE) return ret;
                r &= ret;
View Full Code Here

        int r = 0;

        switch (node.getType()) {
        case NodeType.LIST:
        case NodeType.ALT:
            ConsAltNode can = (ConsAltNode)node;
            do {
                r = subexpInfRecursiveCheckTrav(can.car);
            } while (r == 0 && (can = can.cdr) != null);
            break;
View Full Code Here

        int r = 0;

        switch (node.getType()) {
        case NodeType.LIST:
        case NodeType.ALT:
            ConsAltNode can = (ConsAltNode)node;
            do {
                r |= subexpRecursiveCheck(can.car);
            } while ((can = can.cdr) != null);
            break;
View Full Code Here

        int r = 0;

        switch (node.getType()) {
        case NodeType.LIST:
        case NodeType.ALT:
            ConsAltNode can = (ConsAltNode)node;
            do {
                int ret = subexpRecursiveCheckTrav(can.car);
                if (ret == FOUND_CALLED_NODE) {
                    r = FOUND_CALLED_NODE;
                }
View Full Code Here

    protected final void setupSubExpCall(Node node) {

        switch(node.getType()) {
        case NodeType.LIST:
            ConsAltNode ln = (ConsAltNode)node;
            do {
                setupSubExpCall(ln.car);
            } while ((ln = ln.cdr) != null);
            break;

        case NodeType.ALT:
            ConsAltNode can = (ConsAltNode)node;
            do {
                setupSubExpCall(can.car);
            } while ((can = can.cdr) != null);
            break;
View Full Code Here

                varlen = true;
                break;
            }
        }

        ConsAltNode varANode = null, altNode, listNode;
        if (varlen) {
            node.p = varANode = newAltNode(null, null);

            listNode = newListNode(null, null);
            varANode.setCar(listNode);

            altNode = newAltNode(null, null);
            listNode.setCar(altNode);
        } else {
            node.p = altNode = newAltNode(null, null);
        }

        StringNode snode = new StringNode(bytes, p, p + slen);
        altNode.setCar(snode);

        for (int i=0; i<itemNum; i++) {
            snode = new StringNode();

            for (int j = 0; j < items[i].codeLen; j++) snode.catCode(items[i].code[j], enc);

            ConsAltNode an = newAltNode(null, null);
            if (items[i].byteLen != slen) {
                int q = p + items[i].byteLen;
                if (q < end) {
                    Node rem = expandCaseFoldMakeRemString(bytes, q, end);

                    listNode = ConsAltNode.listAdd(null, snode);
                    ConsAltNode.listAdd(listNode, rem);
                    an.setCar(listNode);
                } else {
                    an.setCar(snode);
                }
                varANode.setCdr(an);
                varANode = an;
            } else {
                an.setCar(snode);
                altNode.setCdr(an);
                altNode = an;
            }
        }
        return varlen;
View Full Code Here

        byte[]bytes = sn.bytes;
        int p = sn.p;
        int end = sn.end;
        int altNum = 1;

        ConsAltNode topRoot = null, root = null;
        ObjPtr<Node> prevNode = new ObjPtr<Node>();
        StringNode stringNode = null;

        while (p < end) {
            CaseFoldCodeItem[]items = enc.caseFoldCodesByString(regex.caseFoldFlag, bytes, p, end);
View Full Code Here

        int r = state;
        int ret;

        switch (node.getType()) {
        case NodeType.LIST:
            ConsAltNode ln = (ConsAltNode)node;

            do {
                r = setupCombExpCheck(ln.car, r);
                //prev = ((ConsAltNode)node).car;
            } while (r >= 0 && (ln = ln.cdr) != null);
            break;

        case NodeType.ALT:
            ConsAltNode an = (ConsAltNode)node;
            do {
                ret = setupCombExpCheck(an.car, state);
                r |= ret;
            } while (ret >= 0 && (an = an.cdr) != null);
            break;
View Full Code Here

TOP

Related Classes of org.joni.ast.ConsAltNode

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.