@Override public Object createTerminal(Input input, int startIndex, int endIndex, List<Trivia> trivias, TokenType type) { char[] fileChars = input.input(); boolean hasByteOrderMark = fileChars.length > 0 && fileChars[0] == BYTE_ORDER_MARK; boolean isEof = GenericTokenType.EOF.equals(type); LineColumnValue lineColumnValue = tokenPosition(input, startIndex, endIndex); return new InternalSyntaxToken( lineColumnValue.line + lineOffset, column(hasByteOrderMark, lineColumnValue.line, lineColumnValue.column), lineColumnValue.value, createTrivias(trivias, hasByteOrderMark), startIndex - (hasByteOrderMark ? 1 : 0), isEof); }
@Override public Object createTerminal(Input input, int startIndex, int endIndex, List<Trivia> trivias, TokenType type) { char[] fileChars = input.input(); boolean hasByteOrderMark = fileChars.length > 0 && fileChars[0] == BYTE_ORDER_MARK; boolean isEof = GenericTokenType.EOF.equals(type); LineColumnValue lineColumnValue = tokenPosition(input, startIndex, endIndex); return new InternalSyntaxToken( lineColumnValue.line + lineOffset, column(hasByteOrderMark, lineColumnValue.line, lineColumnValue.column), lineColumnValue.value, createTrivias(trivias, hasByteOrderMark), startIndex - (hasByteOrderMark ? 1 : 0), isEof); }
@Override public Object createTerminal(Input input, int startIndex, int endIndex, List<Trivia> trivias, TokenType type) { char[] fileChars = input.input(); boolean hasByteOrderMark = fileChars.length > 0 && fileChars[0] == BYTE_ORDER_MARK; boolean isEof = GenericTokenType.EOF.equals(type); LineColumnValue lineColumnValue = tokenPosition(input, startIndex, endIndex); return new InternalSyntaxToken( lineColumnValue.line, column(hasByteOrderMark, lineColumnValue.line, lineColumnValue.column), lineColumnValue.value, createTrivias(trivias, hasByteOrderMark), isEof, isByteOrderMark(input, startIndex, endIndex)); }
@Override public Object createTerminal(Input input, int startIndex, int endIndex, List<Trivia> trivias, TokenType type) { char[] fileChars = input.input(); boolean hasByteOrderMark = fileChars.length > 0 && fileChars[0] == BYTE_ORDER_MARK; boolean isEof = GenericTokenType.EOF.equals(type); LineColumnValue lineColumnValue = tokenPosition(input, startIndex, endIndex); return new InternalSyntaxToken( lineColumnValue.line, column(hasByteOrderMark, lineColumnValue.line, lineColumnValue.column), lineColumnValue.value, createTrivias(trivias, hasByteOrderMark), isEof, isByteOrderMark(input, startIndex, endIndex)); }
private N parse(Input input) { ParsingResult result = parseRunner.parse(input.input()); if (!result.isMatched()) { ParseError parseError = result.getParseError(); InputBuffer inputBuffer = parseError.getInputBuffer(); int line = inputBuffer.getPosition(parseError.getErrorIndex()).getLine(); String message = new ParseErrorFormatter().format(parseError); throw new RecognitionException(line, message); } return syntaxTreeCreator.create(result.getParseTreeRoot(), input); }
private N parse(Input input) { ParsingResult result = parseRunner.parse(input.input()); if (!result.isMatched()) { ParseError parseError = result.getParseError(); InputBuffer inputBuffer = parseError.getInputBuffer(); int line = inputBuffer.getPosition(parseError.getErrorIndex()).getLine(); String message = new ParseErrorFormatter().format(parseError); throw new RecognitionException(line, message); } return syntaxTreeCreator.create(result.getParseTreeRoot(), input); }