private static void analyzeOddTicksCombos(LinkedList<Line> lines) { for (Line line : lines) { if ((line.numBold % 2 == 1) && (line.numItalics % 2 == 1)) { int firstSpace = -1; int firstSlWord = -1; int firstMlWord = -1; for (int i = 0; i < line.ticks.size(); ++i) { LineEntry entry = line.ticks.get(i); AstNode p = entry.previous; if (p == null || entry.tickCount != 3) continue; if (p instanceof ContentNode) { ContentNode c = (ContentNode) p; p = null; if (!c.isEmpty()) p = c.get(c.size() - 1); } char tMinus1 = '\0'; char tMinus2 = '\0'; if (p instanceof StringContentNode) { String t = ((StringContentNode) p).getContent(); if (t.length() >= 1) tMinus1 = t.charAt(t.length() - 1); if (t.length() >= 2) tMinus2 = t.charAt(t.length() - 2); } if (tMinus1 == ' ') { if (firstSpace == -1) firstSpace = i; } else if (tMinus2 == ' ') { if (firstSlWord == -1) firstSlWord = i; } else { if (firstMlWord == -1) firstMlWord = i; } } if (firstSlWord != -1) { apostrophize(line.ticks.get(firstSlWord)); } else if (firstMlWord != -1) { apostrophize(line.ticks.get(firstMlWord)); } else if (firstSpace != -1) { apostrophize(line.ticks.get(firstSpace)); } } } }
private AstNode implicitLineScope(ContentNode n) { NodeList content = n.getContent(); mapInPlace(content); finishLine(content); return n; }