public static boolean prevIsType(@NotNull PsiBuilder builder_, @SuppressWarnings("UnusedParameters") int level) { LighterASTNode marker = builder_.getLatestDoneMarker(); IElementType type = marker != null ? marker.getTokenType() : null; return type == GoTypes.ARRAY_OR_SLICE_TYPE || type == GoTypes.MAP_TYPE || type == GoTypes.STRUCT_TYPE; }
public static boolean isBuiltin(@NotNull PsiBuilder builder_, @SuppressWarnings("UnusedParameters") int level) { LighterASTNode marker = builder_.getLatestDoneMarker(); if (marker == null) return false; String text = String.valueOf(builder_.getOriginalText().subSequence(marker.getStartOffset(), marker.getEndOffset())).trim(); return "make".equals(text) || "new".equals(text); }
public static boolean leftMarkerIs(PsiBuilder builder, IElementType type) { LighterASTNode marker = builder.getLatestDoneMarker(); return marker != null && marker.getTokenType() == type; }
private static void run_hooks_impl_(PsiBuilder builder, ErrorState state, @Nullable IElementType elementType) { if (state.hooks == null) return; PsiBuilder.Marker marker = elementType == null ? null : (PsiBuilder.Marker)builder.getLatestDoneMarker(); if (elementType != null && marker == null) { builder.mark().error("No expected done marker at offset " + builder.getCurrentOffset()); } while (state.hooks != null && state.hooks.level >= state.level) { if (state.hooks.level == state.level) { marker = ((Hook<Object>)state.hooks.hook).run(builder, marker, state.hooks.param); } state.hooks = state.hooks.next; } }
private static void enter_section_impl_(PsiBuilder builder, int level, int modifiers, IElementType elementType, String frameName) { ErrorState state = ErrorState.get(builder); state.level++; Frame frame = state.FRAMES.alloc().init(builder, state, level, modifiers, elementType, frameName); Frame prevFrame = state.currentFrame; if (prevFrame != null && prevFrame.errorReportedAt > frame.position) { // report error for previous unsuccessful stack_frame reportError(builder, state, frame, null, true, false); } if (((frame.modifiers & _LEFT_) | (frame.modifiers & _LEFT_INNER_)) != 0) { PsiBuilder.Marker left = (PsiBuilder.Marker)builder.getLatestDoneMarker(); if (invalid_left_marker_guard_(builder, left, frameName)) { frame.leftMarker = left; } } state.currentFrame = frame; if ((modifiers & _AND_) != 0) { if (state.predicateCount == 0 && !state.predicateSign) { throw new AssertionError("Incorrect false predicate sign"); } state.predicateCount++; } else if ((modifiers & _NOT_) != 0) { state.predicateSign = state.predicateCount != 0 && !state.predicateSign; state.predicateCount++; } }
int tokenIdx = -1; while (builder.rawLookup(tokenIdx) == TokenType.WHITE_SPACE) tokenIdx --; LighterASTNode doneMarker = builder.rawLookup(tokenIdx) == state.braces[0].getLeftBraceType() ? builder.getLatestDoneMarker() : null; if (doneMarker != null && doneMarker.getStartOffset() == builder.rawTokenTypeStart(tokenIdx) && doneMarker.getTokenType() == TokenType.ERROR_ELEMENT) { parenList.add(Pair.create(((PsiBuilder.Marker)doneMarker).precede(), (PsiBuilder.Marker)null));
} while (rawLookup3 != null && isWhiteSpaceOrComment(rawLookup3)); } else { LighterASTNode latestDoneMarker = builder.getLatestDoneMarker(); if (rawLookup == BallerinaTypes.COMMA && rawLookup2 == BallerinaTypes.COLON) { if (latestDoneMarker != null) { LighterASTNode latestDoneMarker = builder.getLatestDoneMarker();
eatMoreFlagOnce ? (PsiBuilderImpl.ProductionMarker)builder.getLatestDoneMarker() : null; PsiBuilder.Marker extensionMarker = null; IElementType extensionTokenType = null;
PsiBuilder.Marker extensionMarker = null; IElementType extensionTokenType = null; PsiBuilderImpl.ProductionMarker latestDoneMarker = elementType == null ? null : (PsiBuilderImpl.ProductionMarker)builder.getLatestDoneMarker(); if (latestDoneMarker != null && frame.position >= latestDoneMarker.getStartIndex() &&
if (result || pinned) { if ((frame.modifiers & _COLLAPSE_) != 0) { PsiBuilderImpl.ProductionMarker last = (PsiBuilderImpl.ProductionMarker)builder.getLatestDoneMarker(); if (last != null && last.getStartIndex() == frame.position &&
public static boolean leftMarkerIs(PsiBuilder builder, IElementType type) { LighterASTNode marker = builder.getLatestDoneMarker(); return marker != null && marker.getTokenType() == type; }
private static void run_hooks_impl_(PsiBuilder builder, ErrorState state, @Nullable IElementType elementType) { if (state.hooks == null) return; PsiBuilder.Marker marker = elementType == null ? null : (PsiBuilder.Marker)builder.getLatestDoneMarker(); if (elementType != null && marker == null) { builder.mark().error("No expected done marker at offset " + builder.getCurrentOffset()); } while (state.hooks != null && state.hooks.level >= state.level) { if (state.hooks.level == state.level) { marker = ((Hook<Object>)state.hooks.hook).run(builder, marker, state.hooks.param); } state.hooks = state.hooks.next; } }
private static void enter_section_impl_(PsiBuilder builder, int level, int modifiers, IElementType elementType, String frameName) { ErrorState state = ErrorState.get(builder); state.level++; Frame frame = state.FRAMES.alloc().init(builder, state, level, modifiers, elementType, frameName); if (((frame.modifiers & _LEFT_) | (frame.modifiers & _LEFT_INNER_)) != 0) { PsiBuilder.Marker left = (PsiBuilder.Marker)builder.getLatestDoneMarker(); if (invalid_left_marker_guard_(builder, left, frameName)) { frame.leftMarker = left; } } state.currentFrame = frame; if ((modifiers & _AND_) != 0) { if (state.predicateCount == 0 && !state.predicateSign) { throw new AssertionError("Incorrect false predicate sign"); } state.predicateCount++; } else if ((modifiers & _NOT_) != 0) { state.predicateSign = state.predicateCount != 0 && !state.predicateSign; state.predicateCount++; } }
private static void reportFrameError(PsiBuilder builder, ErrorState state) { if (state.currentFrame == null || state.suppressErrors) return; Frame frame = state.currentFrame; int pos = builder.rawTokenIndex(); if (frame.errorReportedAt > pos) { // report error for previous unsuccessful frame LighterASTNode marker = builder.getLatestDoneMarker(); int endOffset = marker != null ? ((PsiBuilderImpl.ProductionMarker)marker).getEndIndex() : pos + 1; while (endOffset <= pos && isWhitespaceOrComment(builder, builder.rawLookup(endOffset - pos))) endOffset ++; boolean inner = endOffset == pos; builder.eof(); reportError(builder, state, frame, inner, true, false); } }
PsiBuilderImpl.ProductionMarker latestDoneMarker = (PsiBuilderImpl.ProductionMarker)builder.getLatestDoneMarker(); builder.error(message); if (latestDoneMarker != null &&
/** * Parses block content * * @param b builder * @param l level * @return result of end parsing. */ public static boolean parseBlockContent(PsiBuilder b, int l, PsiBuilder.Marker outerMarker, IElementType blockTokenType) { boolean r = false; while (!b.eof() && TemplateToolkitParser.element(b, l)) { LighterASTNode latestDoneMarker = b.getLatestDoneMarker(); if (latestDoneMarker != null && latestDoneMarker.getTokenType() == END_DIRECTIVE) { r = true; break; } } outerMarker.done(blockTokenType); if (!r) // this can happen on incomplete block, missing end { outerMarker.setCustomEdgeTokenBinders(WhitespacesBinders.DEFAULT_LEFT_BINDER, WhitespacesBinders.GREEDY_RIGHT_BINDER); outerMarker.precede().error(TemplateToolkitBundle.message("ttk2.error.unclosed.block.directive")); } return r; }
public static boolean parseMacroBody(PsiBuilder b, int l) { boolean r = false; LighterASTNode latestDoneMarker = null; PsiBuilder.Marker outerMarker = b.mark(); if (TemplateToolkitParser.directive(b, l)) { latestDoneMarker = b.getLatestDoneMarker(); PsiBuilder.Marker m = null; while (!b.eof()) { if (isEndMarker(b)) { break; } if (m == null) { m = b.mark(); } b.advanceLexer(); } if (m != null) { m.error(TemplateToolkitBundle.message("ttk2.unexpected.token")); } consumeToken(b, TT2_HARD_NEWLINE); consumeToken(b, TT2_SEMI); consumeToken(b, TT2_CLOSE_TAG); r = true; } processMarkers(b, l, latestDoneMarker, outerMarker); return r; }
PsiBuilder.Marker currentMarker = b.mark(); if (TemplateToolkitParser.element(b, l)) { LighterASTNode latestDoneMarker = b.getLatestDoneMarker(); if (latestDoneMarker != null) { if (latestDoneMarker.getTokenType() == END_DIRECTIVE) {
LighterASTNode latestDoneMarker = b.getLatestDoneMarker();
PsiBuilder.Marker currentMarker = b.mark(); if (TemplateToolkitParser.element(b, l)) { LighterASTNode latestDoneMarker = b.getLatestDoneMarker(); if (latestDoneMarker != null) { if (latestDoneMarker.getTokenType() == END_DIRECTIVE) {