Commits on Oct 31, 2010
  1. Version 2.1.2

    committed Oct 31, 2010
  2. Added TextMate bundle.

    committed Oct 31, 2010
Commits on Oct 30, 2010
  1. Bumped to version 2.1.1

    committed Oct 30, 2010
  2. Bumped to version 2.1.0

    committed Oct 30, 2010
  3. Refactored Citrus::ParseError.

    Most of the methods on ParseError were moved to Input as they were actually
    just calling them on Input objects anyways. This creates cleaner encapsulation
    of Input objects, and even makes them reusable after a ParseError has been
    raised with one of them (simply call Input#reset to reuse).
    committed Oct 30, 2010
Commits on Oct 28, 2010
  1. Refactored Citrus::File.

    Reduced the use of Kernel#eval and created cleaner encapsulation of rule
    responsibilities in the hierarchy.
    Introduced Citrus#parse as an intermediary that is useful for performing
    parsing using Citrus::File and inspecting match results. Citrus::SyntaxError
    was created to report errors from parsing a Citrus grammar.
    Citrus#eval and Citrus::Rule#eval now throws a SyntaxError on failed parse.
    Also, created Citrus::Error and made all Citrus error classes subclasses.
    This enables more consistent error handling for clients.
    committed Oct 26, 2010
Commits on Oct 24, 2010
  1. Added some docs.

    Added a section to the README about testing and debugging.
    committed Oct 24, 2010
  2. Separating out debug tests

    committed Oct 24, 2010
  3. Some small refactorings.

    Exposed Input#lines, Input#each_line, and ParseError#line_index just
    because there's no real advantage to keeping them private.
    committed Oct 24, 2010
  4. Bumped version to 2.0.1

    committed Oct 24, 2010
  5. Fixed ParseError message

    committed Oct 24, 2010
  6. Bumped version to 2.0

    committed Oct 24, 2010
  7. Matches no longer contain an offset.

    Calculating the offset every time a match is created can slow down the
    parse dramatically. Also, the actual offset of a match is not usually
    very useful during interpretation.
    The functionality was moved into citrus/debug.rb to preserve the ability
    to inspect the offset of a match when debugging.
    committed Oct 24, 2010
  8. Implemented StringScanner for scanning input strings.

    Citrus::Input now extends StringScanner which provides a big boost to
    performance. As part of this refactoring, Citrus::FixedWidth and
    Citrus::Expression were merged into Citrus::Terminal.
    Also, Citrus::ParseError now provides much more detailed information for
    debugging parse failures. It is now very easy to discover the line, line
    number, and exact character where the error occurred.
    committed Oct 23, 2010
Commits on Oct 22, 2010
  1. More doc tweaks.

    committed Oct 22, 2010
Commits on Oct 21, 2010
  1. Tweaked some docs.

    committed Oct 21, 2010
  2. Bumped version to 1.8.0

    committed Oct 21, 2010
  3. Updated documentation.

    committed Oct 21, 2010
  4. Ignoring api.

    committed Oct 21, 2010
Commits on Oct 14, 2010
  1. Match now subclasses String.

    committed Sep 24, 2010
Commits on Sep 30, 2010
  1. Adjusted examples.

    committed Sep 24, 2010
Commits on Sep 23, 2010
  1. Reordered arguments to more sensible order.

    The argument list to Repeat#new and Label#new needed to be reordered to
    follow a more sane model. Instead of accepting the rule as the last
    argument, they now accept the rule as the first argument just like all
    other Rule types.
    committed Sep 23, 2010
  2. Implied Rule#value method.

    If no methods are specified in an extension block, it is assumed that
    the block is to be used to define a "value" method on an anonymous
    module. This helps syntax to be much less verbose, and may be used in
    the vast majority of cases.
    committed Sep 23, 2010
Commits on Sep 20, 2010
  1. Added GrammarMethods#dot.

    committed Sep 20, 2010
Commits on Sep 19, 2010
Commits on Sep 17, 2010
Commits on Sep 8, 2010
  1. Refactored calculator examples.

    Added ability to interpret unary operators.
    committed Sep 8, 2010
  2. Refactored calculator examples.

    Added ability to understand numbers with underscores, the modulo
    operator, and exponential notation.
    committed Sep 8, 2010