Example usage for org.antlr.v4.runtime CommonToken setType

List of usage examples for org.antlr.v4.runtime CommonToken setType

Introduction

In this page you can find the example usage for org.antlr.v4.runtime CommonToken setType.

Prototype

@Override
    public void setType(int type) 

Source Link

Usage

From source file:PhpBaseLexer.java

License:Open Source License

@Override
public Token nextToken() {
    CommonToken token = (CommonToken) super.nextToken();

    if (token.getType() == PhpLexer.PHPEnd || token.getType() == PhpLexer.PHPEndSingleLineComment) {
        if (_mode == PhpLexer.SingleLineCommentMode) {
            // SingleLineCommentMode for such allowed syntax:
            // <?php echo "Hello world"; // comment ?>
            popMode(); // exit from SingleLineComment mode.
        }/*from ww w .ja va 2  s .  co m*/
        popMode(); // exit from PHP mode.

        if (token.getText().equals("</script>")) {
            _phpScript = false;
            token.setType(PhpLexer.ScriptClose);
        } else {
            // Add semicolon to the end of statement if it is absente.
            // For example: <?php echo "Hello world" ?>
            if (_prevTokenType == PhpLexer.SemiColon || _prevTokenType == PhpLexer.Colon
                    || _prevTokenType == PhpLexer.OpenCurlyBracket
                    || _prevTokenType == PhpLexer.CloseCurlyBracket) {
                token.setChannel(PhpLexer.SkipChannel);
            } else {
                token = new CommonToken(PhpLexer.SemiColon);
            }
        }
    } else if (token.getType() == PhpLexer.HtmlName) {
        _htmlNameText = token.getText();
    } else if (token.getType() == PhpLexer.HtmlDoubleQuoteString) {
        if (token.getText().equals("php") && _htmlNameText.equals("language")) {
            _phpScript = true;
        }
    } else if (_mode == PhpLexer.HereDoc) {
        // Heredoc and Nowdoc syntax support: http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc
        switch (token.getType()) {
        case PhpLexer.StartHereDoc:
        case PhpLexer.StartNowDoc:
            _heredocIdentifier = token.getText().substring(3).trim().replace("\'", "");
            break;

        case PhpLexer.HereDocText:
            if (CheckHeredocEnd(token.getText())) {
                popMode();

                String heredocIdentifier = GetHeredocIdentifier(token.getText());
                if (token.getText().trim().endsWith(";")) {
                    token = new CommonToken(PhpLexer.SemiColon, heredocIdentifier + ";\n");
                } else {
                    token = (CommonToken) super.nextToken();
                    token.setText(heredocIdentifier + "\n;");
                }
            }
            break;
        }
    } else if (_mode == PhpLexer.PHP) {
        if (_channel != PhpLexer.HIDDEN) {
            _prevTokenType = token.getType();
        }
    }

    return token;
}

From source file:org.eclipse.titan.designer.AST.ASN1.Object.ObjectClassSyntax_Builder.java

License:Open Source License

public ObjectClassSyntax_Builder(final Block aBlock, final FieldSpecifications aFieldSpecifications) {
    this.mBlock = aBlock;
    this.fieldSpecifications = aFieldSpecifications;
    if (aBlock != null) {
        final List<Token> internalTokens = new ArrayList<Token>(aBlock.getTokenList().size());
        Token token;//w  ww  . ja  v a2s . c  o m

        for (int i = 0; i < aBlock.getTokenList().size(); i++) {
            token = aBlock.getTokenList().get(i);

            if (token.getType() == Asn1Lexer.LEFTVERSIONBRACKETS) {
                final CommonToken token2 = ((TokenWithIndexAndSubTokens) token).copy();
                token2.setType(Asn1Lexer.SQUAREOPEN);
                internalTokens.add(token2);
                internalTokens.add(token2);
            } else if (token.getType() == Asn1Lexer.RIGHTVERSIONBRACKETS) {
                final CommonToken token2 = ((TokenWithIndexAndSubTokens) token).copy();
                token2.setType(Asn1Lexer.SQUARECLOSE);
                internalTokens.add(token2);
                internalTokens.add(token2);
            } else {
                internalTokens.add(token);
            }
        }
        internalTokens.add(new TokenWithIndexAndSubTokens(Token.EOF));

        this.mBlock = new Block(internalTokens, aBlock.getLocation());
    }
}