}
if (head.equals("\"\"")) return "";
if (head.equals("\n")) return "\n";
+ if (head.equals("\t")) return "\t";
if (head.equals("\r")) return "\r";
if (head.equals("SubGrammar")) return GrammarAST.buildFromAST(t.child(0), "s", resolver);
if (head.equals("NonTerminal"))
if (alwaysDrop) return true;
if (tag!=null) return false;
for(int i=0; i<elements.length; i++)
- if (!elements[i].isDropped(cx))
+ if (!elements[i].isDropped(cx) || ((elements[i] instanceof LiteralNode) && ((LiteralNode)elements[i]).caret))
return false;
return true;
}