Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Added associativity token option to support upcoming special expression parsing. Added rule option strategy=precedence also. For future use.
  • ANTLR always sorts incoming grammar list by dependency. For example, if W.g depends on tokens from P.g then P.g is done first even if W.g mentioned first on command line. It does not ignore any files you specify the commandline. If you do *.g and that includes some imported grammars, it will run antlr on them.
  • -make option prevents ANTLR from running on P.g if P older than generated files.
  • Added org.antlr.tool.GrammarSpelunker to build a faster dependency checker (what grammars depend on etc...). Totally independent of any ANTLR code; easy to pull into other tools.
  • Added org.antlr.misc.Graph, a general graph with nodes containing an Object payload. It knows how to do a topological sort on the nodes.
  • Changed ANTLRWorks debug port in runtime support code from 49153 to 49100. Apparently we changed the port in ANTLRWorks to 49100 in v1.2 but forgot to do so in the ANTLR targets.
  • Added misc.FastQueue and TestFastQueue: A queue that can dequeue and get(info) (i) in O(1) and grow arbitrarily large. A linked list is fast at dequeue but slow at get(info)(i). An array is the reverse. This is O(1) for both operations.
  • Added tree.TreeIterator, a generator that walks a doubly linked tree. The nodes must know what index they are. It's an Iterator but remove() is not supported. Returns navigation nodes always: UP, DOWN, EOF.
  • Added misc.LookaheadStream: A lookahead queue that knows how to mark/release locations in the buffer for backtracking purposes. I hope to use for both tree nodes and tokens. Just implement nextElement() to say how to get next node or token.

...