Examples of CloseTagToken


Examples of cambridge.parser.tokens.CloseTagToken

            if (c == '>') {
               builder.append(c);
            }

            state = State.INITIAL_STATE;
            CloseTagToken tok = new CloseTagToken(line, col, builder.toString(), getLineNo(), getColumn());

            tok.setTagName(tagName);

            return tok;
            // OPEN TAG <X
         } else if (CharUtil.isLetter((int) peek(1))) {
            c = nextChar();
View Full Code Here

Examples of cambridge.parser.tokens.CloseTagToken

            if (node != null) {
               matchedNodes.add(node);
            }
            break;
         case CLOSE_TAG:
            CloseTagToken token = (CloseTagToken) currentToken;
            TagNode tag = null;
            int openIndex = -1;
            for (int i = matchedNodes.size() - 1; i != -1; i--) {
               TemplateNode n = matchedNodes.get(i);
               if (n instanceof TagNode) {
                  TagNode tn = (TagNode) n;
                  if (tn.getEndLine() == 0 && tn.getEndColumn() == 0 && tn.tagNameString.equals(token.getTagName())) {
                     tag = tn;
                     openIndex = i;
                     break;
                  }
               }
            }

            if (openIndex != -1 && tag != null) {
               ArrayList<TemplateNode> sub = new ArrayList<TemplateNode>();
               for (int i = openIndex + 1; i < matchedNodes.size(); i++) {
                  TemplateNode n = matchedNodes.get(i);
                  n.setParent(tag);
                  sub.add(n);
               }

               tag.addChildren(sub);

               matchedNodes.removeAll(sub);
               tag.setCloseText(token.getActualValue());
               tag.setEndLine(peek(1).getLineNo());
               tag.setEndColumn(peek(1).getColumn());
            } else {
               node = new TextNode();
               TextNode text = (TextNode) node;
View Full Code Here

Examples of cambridge.parser.tokens.CloseTagToken

                if (node != null) {
                    matchedNodes.add(node);
                }
                break;
            case CLOSE_TAG:
                CloseTagToken token = (CloseTagToken) currentToken;
                TagNode tag = null;
                int openIndex = -1;
                for (int i = matchedNodes.size() - 1; i != -1; i--) {
                    TemplateNode n = matchedNodes.get(i);
                    if (n instanceof TagNode) {
                        TagNode tn = (TagNode) n;
                        if (tn.getEndLine() == 0 && tn.getEndColumn() == 0 && tn.tagNameString.equals(token.getTagName())) {
                            tag = tn;
                            openIndex = i;
                            break;
                        }
                    }
                }

                if (openIndex != -1 && tag != null) {
                    ArrayList<TemplateNode> sub = new ArrayList<TemplateNode>();
                    for (int i = openIndex + 1; i < matchedNodes.size(); i++) {
                        TemplateNode n = matchedNodes.get(i);
                        n.setParent(tag);
                        sub.add(n);
                    }

                    tag.addChildren(sub);

                    matchedNodes.removeAll(sub);
                    tag.setCloseText(token.getActualValue());
                    tag.setEndLine(peek(1).getLineNo());
                    tag.setEndColumn(peek(1).getColumn());
                } else {
                    node = new TextNode();
                    TextNode text = (TextNode) node;
View Full Code Here

Examples of cambridge.parser.tokens.CloseTagToken

            if (c == '>') {
               builder.append(c);
            }

            state = State.INITIAL_STATE;
            CloseTagToken tok = new CloseTagToken(line, col, builder.toString(), getLineNo(), getColumn());

            tok.setTagName(tagName);

            return tok;
            // OPEN TAG <X
         } else if (CharUtil.isLetter((int) peek(1))) {
            c = nextChar();
View Full Code Here

Examples of info.bliki.wiki.client.filter.tags.CloseTagToken

          }
          return WikipediaFilter.TokenIgnore;
        }
        fCurrentPosition++;
        try {
          CloseTagToken token = (CloseTagToken) WikipediaFilter.CLOSE_TAGS.get(closeTagString);
          if (token == null) {
            return WikipediaFilter.TokenNotFound;
          }
          if (!fTokenStack.isEmpty()) {
            Object topToken = fTokenStack.peek();
            if (topToken instanceof OpenTagToken && ((OpenTagToken) topToken).getTagName() == token.getTagName()) {
              fTokenStack.pop();

              copyWhite(fWhiteStart, fWhiteStartPosition, 3 + closeTagString.length());
              if (STOP_TAGS_SET.contains(closeTagString)) {
                reduceTokenStack();
              }
              fResultBuffer.append(token.getCloseTag());
              return WikipediaFilter.TokenIgnore;
            }
          }
          copyWhite(fWhiteStart, fWhiteStartPosition, 0);
          if (STOP_TAGS_SET.contains(closeTagString)) {
            reduceTokenStack();
          }
          return WikipediaFilter.TokenIgnore;
        } catch (NoSuchElementException e) {
          return WikipediaFilter.TokenNotFound;
        }

      } else {
        // start tag
        String tokenString;
        int tagNameStart = fCurrentPosition;
        int tokenLength = 0;
        while (StringUtil.isLetter(charAt(fCurrentPosition))) {
          fCurrentPosition++;
          tokenLength++;
        }
        try {
          tokenString = StringUtil.str(fSource, tagNameStart, fCurrentPosition - tagNameStart);
         
          OpenTagToken token = (OpenTagToken) WikipediaFilter.OPEN_TAGS.get(tokenString);
          if (token == null) {
            return WikipediaFilter.TokenNotFound;
          }
          copyWhite(fWhiteStart, fWhiteStartPosition, (fCurrentPosition - tagNameStart) + 1);
          if (STOP_TAGS_SET.contains(tokenString)) {
            reduceTokenStack();
          }
          if (token instanceof SpecialTagToken) {
            // for <br> <br/> <br /> <hr> <hr/>

            while (StringUtil.isWhitespace(charAt(fCurrentPosition))) {
              fCurrentPosition++;
            }
            if (charAt(fCurrentPosition) == '/') {
              fCurrentPosition++;
            }
            if (charAt(fCurrentPosition) == '>') {
              fCurrentPosition++;
              fWhiteStartPosition = fCurrentPosition;
              // insert the special tag :
              fResultBuffer.append(token.getOpenTag());
              return WikipediaFilter.TokenIgnore;
            }

          } else if (token instanceof OpenTagToken) {
            fTokenStack.push(token);
            // use these buffer because of possible exceptions
            StringBuffer buffer = new StringBuffer();
            fCurrentPosition = token.scanHTMLAttributes(buffer, fSource, fCurrentPosition);
            fResultBuffer.append("<");
            fResultBuffer.append(token.getTagName());

            fResultBuffer.append(buffer);
            fResultBuffer.append(">");
            return WikipediaFilter.TokenIgnore;
          }
View Full Code Here

Examples of info.bliki.wiki.client.filter.tags.CloseTagToken

    while (!fTokenStack.isEmpty()) {
      tok = (AbstractTag) fTokenStack.pop();

      if (tok instanceof OpenTagToken) {

        CloseTagToken closeToken = (CloseTagToken) WikipediaFilter.CLOSE_TAGS.get(tok.getTagName());
        if (closeToken == null) {
          // here is something wrong ???
          fResultBuffer.append("</" + (tok.getTagName()) + ">");
        } else {
          fResultBuffer.append(closeToken.getCloseTag());
        }
      } else if (tok == WikipediaFilter.BOLD) {
        fResultBuffer.append("</b>");
      } else if (tok == WikipediaFilter.ITALIC) {
        fResultBuffer.append("</i>");
View Full Code Here

Examples of info.bliki.wiki.client.filter.tags.CloseTagToken

          }
          return WikipediaFilter.TokenIgnore;
        }
        fCurrentPosition++;
        try {
          CloseTagToken token = (CloseTagToken) WikipediaFilter.CLOSE_TAGS.get(closeTagString);
          if (token == null) {
            return WikipediaFilter.TokenNotFound;
          }
          if (!fTokenStack.isEmpty()) {
            Object topToken = fTokenStack.peek();
            if (topToken instanceof OpenTagToken && ((OpenTagToken) topToken).getTagName() == token.getTagName()) {
              fTokenStack.pop();

              copyWhite(fWhiteStart, fWhiteStartPosition, 3 + closeTagString.length());
              if (STOP_TAGS_SET.contains(closeTagString)) {
                reduceTokenStack();
              }
              fResultBuffer.append(token.getCloseTag());
              return WikipediaFilter.TokenIgnore;
            }
          }
          copyWhite(fWhiteStart, fWhiteStartPosition, 0);
          if (STOP_TAGS_SET.contains(closeTagString)) {
            reduceTokenStack();
          }
          return WikipediaFilter.TokenIgnore;
        } catch (NoSuchElementException e) {
          return WikipediaFilter.TokenNotFound;
        }

      } else {
        // start tag
        String tokenString;
        int tagNameStart = fCurrentPosition;
        int tokenLength = 0;
        while (StringUtil.isLetter(charAt(fCurrentPosition))) {
          fCurrentPosition++;
          tokenLength++;
        }
        try {
          tokenString = StringUtil.str(fSource, tagNameStart, fCurrentPosition - tagNameStart);
         
          OpenTagToken token = (OpenTagToken) WikipediaFilter.OPEN_TAGS.get(tokenString);
          if (token == null) {
            return WikipediaFilter.TokenNotFound;
          }
          copyWhite(fWhiteStart, fWhiteStartPosition, (fCurrentPosition - tagNameStart) + 1);
          if (STOP_TAGS_SET.contains(tokenString)) {
            reduceTokenStack();
          }
          if (token instanceof SpecialTagToken) {
            // for <br> <br/> <br /> <hr> <hr/>

            while (StringUtil.isWhitespace(charAt(fCurrentPosition))) {
              fCurrentPosition++;
            }
            if (charAt(fCurrentPosition) == '/') {
              fCurrentPosition++;
            }
            if (charAt(fCurrentPosition) == '>') {
              fCurrentPosition++;
              fWhiteStartPosition = fCurrentPosition;
              // insert the special tag :
              fResultBuffer.append(token.getOpenTag());
              return WikipediaFilter.TokenIgnore;
            }

          } else if (token instanceof OpenTagToken) {
            fTokenStack.push(token);
            // use these buffer because of possible exceptions
            StringBuffer buffer = new StringBuffer();
            fCurrentPosition = token.scanHTMLAttributes(buffer, fSource, fCurrentPosition);
            fResultBuffer.append("<");
            fResultBuffer.append(token.getTagName());

            fResultBuffer.append(buffer);
            fResultBuffer.append(">");
            return WikipediaFilter.TokenIgnore;
          }
View Full Code Here

Examples of info.bliki.wiki.client.filter.tags.CloseTagToken

    while (!fTokenStack.isEmpty()) {
      tok = (AbstractTag) fTokenStack.pop();

      if (tok instanceof OpenTagToken) {

        CloseTagToken closeToken = (CloseTagToken) WikipediaFilter.CLOSE_TAGS.get(tok.getTagName());
        if (closeToken == null) {
          // here is something wrong ???
          fResultBuffer.append("</" + (tok.getTagName()) + ">");
        } else {
          fResultBuffer.append(closeToken.getCloseTag());
        }
      } else if (tok == WikipediaFilter.BOLD) {
        fResultBuffer.append("</b>");
      } else if (tok == WikipediaFilter.ITALIC) {
        fResultBuffer.append("</i>");
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.