Permalink
Commits on May 2, 2008
  1. Fixed syntax error

    nathansobo committed May 2, 2008
  2. Renamed memoization expire to release to clearly distinguish between …

    …the act of detecting intersection and removing from the ResultCache
    nathansobo committed May 2, 2008
  3. Using release method with refcounting to remove results from the resu…

    …lt cache after their memoizations are removed.
    nathansobo committed May 2, 2008
Commits on Apr 7, 2008
  1. Expiration is propagated to non-local dependents, but not parents in …

    …order to avoid much duplicate expiration
    nathansobo committed Apr 7, 2008
Commits on Apr 6, 2008
Commits on Apr 4, 2008
  1. Renamed spec

    nathansobo committed Apr 4, 2008
Commits on Mar 15, 2008
  1. Refactoring: For failure last index, just using the current index at …

    …time of assignment.
    Nathan Sobo committed Mar 15, 2008
  2. Added expiration specs to not predicate spec and made optional return…

    … endpoint-inclusive epsilon nodes.
    Nathan Sobo committed Mar 15, 2008
Commits on Mar 14, 2008
  1. Propagations of epsilon nodes include their endpoint and textra spike…

    … compiles Arithmetic grammar on fly.
    Nathan Sobo committed Mar 14, 2008
  2. The result of successful repetitions include the endpoint.

    The endpoint of a repetition is always the start site of a repetition-terminating failure. If this site is disturbed, the repetition might not terminate at this site any longer.
    Nathan Sobo committed Mar 14, 2008
  3. Failure intervals always include the endpoint, which is the start poi…

    …nt of the precipitating failure.
    Nathan Sobo committed Mar 14, 2008
  4. Sequences ending in an epsilon result have intervals that include the…

    …ir endpoint.
    
    Because an epsilon indicates reliance on not a range, but a point in the buffer, it is important that the disturbance of this point cause the expiration of a result that depends upon the epsilon node. Whereas normal results have a range, which would naturally be contained by the range of the parent result, epsilons can only be contained by the range of the parent if they include their endpoint.
    Nathan Sobo committed Mar 14, 2008
  5. Failing spec indicating need for nodes that depend on endpoint to inc…

    …lude it in interval.
    Nathan Sobo committed Mar 14, 2008
Commits on Mar 11, 2008
  1. Fixed bug relocating nodes in the node cache after change in buffer l…

    …ength.
    
    As I relocated each memoized result, I deleted its former location. But if another memoized result for the same rule had already been moved into that location, then I deleted the wrong result. I was moving the result I deleted to the new location, so if it wasn't the result that belonged to the memoization this screwed things up even further. Now I check if the result belonging to the memoization is stored at the previous location (that it hasn't been overwritten by another result) and only delete it if it still exists. Then I move the result pointed to by the Memoization to the correct location. Also fixed Range#transpose for end-excluding ranges.
    Nathan Sobo committed Mar 11, 2008
Commits on Mar 9, 2008
  1. The failure of sequence expressions depends on the successes precedin…

    …g the failing subexpression
    Nathan Sobo committed Mar 9, 2008
  2. Failed tests and chaos.

    Nathan Sobo committed Mar 9, 2008
Commits on Mar 8, 2008
  1. Very inefficient correction to NodeCache to correctly expire non-term…

    …inal results.
    
    Before I was registering only terminal nodes for detection of interval disturbance, but I forgot to account for the fact that a result can be invalidated by disturbing the buffer BETWEEN two of its child terminal nodes, an act that would not be detected as a disturbance in the old scheme. All nodes need to be checked for disturbance... I cannot only check terminals and chain expiration to their parents. Non-local dependencies are also still possible, so the chaining scheme must also remain in place. I have not sorted out what will be expired of its own right and what needs to use expiration propagation via the dependencies mechanism, so the existing solution allows multiple expirations of a node, on the basis of its interval being disturbed AND on the basis of its dependencies being expired. This is just to get the behavior working. It needs to be tightened up.
    Nathan Sobo committed Mar 8, 2008
Commits on Mar 7, 2008
  1. Updated textra to new Rucola

    pivotal committed Mar 7, 2008
  2. Updated site to reflect new repository home

    pivotal committed Mar 7, 2008
  3. Broke dependency on facets and trying to coexist with Rails.

    Facets methods #camelize and #tabto have been duplicated in String extension. #camelize has been rename to #treetop_camelize so I don't step on Rails's version but also don't have to be at its mercy. The #blank? method is only added on String if it hasn't already been defined. Don't define my own version because this one seems pretty hard to get wrong in the manner Treetop uses it.
    pivotal committed Mar 7, 2008
Commits on Mar 6, 2008
  1. Iterative parsing specs passing.

    Nathan Sobo committed Mar 6, 2008
  2. Propagations are returned from choice expressions.

    The compiled parser will always discard a propagation returned as the result of the entire parse unless the return_propagations option is set to true. SyntaxNodes add propagations to their dependencies but add the propagated result to their elements.
    Nathan Sobo committed Mar 6, 2008
Commits on Mar 5, 2008
  1. Fleshed out pending specs a little

    Nathan Sobo committed Mar 5, 2008
Commits on Mar 3, 2008
  1. Added spec for Propagation and fixed its dependencies

    Nathan Sobo committed Mar 3, 2008