The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
Revision history for Perl extension Parse::Stallion.

0.70
    Parameters to evaluation/parse_forward/parse_backtrack modified
    to get in hash.

    parse done in eval so can croak error messages to calling code

    Some more functionality to ebnf_new (comments, parse forward,
     match_min_first, parentheses around rules to subroutines)

0.60
     Evaluation after parsing also gets entered value as argument.

     EBNF parser set up.  Added STRING_EVALUATION to support this.

     LOCATION subroutine created.

     Added parse_hash as parameter to evaluation, unevaluation, parse_forward,
     and parse_backtrack.

     Removed increasing_value_function, now a returned value of parse_forward.

     Added initial_value for non standard parses.

     final_value added for parsing non strings.

     fix to passed in separator to use index instead of regex search which
     would fail on special characters

     Fix for when only one rule in grammar.

     If a multiple rule has maximum of 1 child (i.e. for an optional rule)
     then the subrules within are not necessarily set to arrays when passed
     as parameters to the evaluation routine.

     Parameters to which_parameters_are_arrays changed.

0.50
     EVAL can take more than just a function.

     Leaf can take parenthesized regex'es and use first to set value,
      got rid of remove_white_space.

     Changed parameters to creating a parser, replaced
      rules_to_set_up_hash parameter by having it be first parameter.

     Changed paramters to parse_and_evaluate, object to be parsed is
     its own parameter.

     Changed parse_info to a hash passed in instead of using wantarray
     context.  This seems more consistent with other programming langauges.

0.4
     Removed internal function calls to make faster.

     Ensured that default evaluation routines on empty string
     will return empty string instead of an undefined value.

0.3
     Fix UNEVAL if given no subroutine

     Removed CSVFH.pm

     Fixed parse_match in unevaluation routine.

     code rewritten to speed up parses

     changed MATCH_MIN_FIRST() to string parameter of MULTIPLE

     NON_STRING_LEAF removed, can be handled by LEAF

0.2
     leaf rules have their own forward and backtrack subroutines

     backtrack subroutine can end a parse

     leaf can have display (for Parse::Stallion::EBNF)

     error messages on bad rules

0.11
     fixed name in description of module

0.1
     additions to the documentation on parsing during evaluation

     able to set up parser if grammar rules ref is the parameter to new

     leaf rules specificied within other rules as only a Regexp (qr)

     fixed finding start_rule if not specified

     set default output of stringify

     internal changes as to how parameters are passed to evaluation routines

     which_parameters_are_arrays now returns 0/1 instead of scalar/array

     added Parse::Stallion::EBNF

     replaced pvalue with more functionality of parse_match

     removed regex_not_match option in leaf, documented how to use
     do_evaluation_in_parsing as substitute

     removed parse_failed result (parse_succeeded is enough)

     removed backtrack_can_change_value (not needed)

     removed end_of_parse as a function

0.04

     multiple rules can now take lists as arguments instead of just one subrule
     the total number of subrules and how many times each subrule appears
     is controllable

     reduced number of methods, now only new and parse_and_evaluate

     internal data structure changes for rule types, simplifying code

     start_rule can be determined automatically

     parse_and_evaluate can take single string as argument (or ref)
     and will return the resultant evaluation; if in array reference
     the parse info will also be returned

     more complicated notation to define rules not allowed

     removed scan arrays

     documented parse_function, display_value_function

0.03
     allowed 'eval' to be an abbreviation for 'evaluation'

     multiple rule now has option match_min_first

     fixed error in case of parsing during evaluation, if multiple
     rule fails with no children.

     allow more than one parser at a time, notably when
     evaluating during parsing is on, the code can call another parser

0.02
     by default white space is not removed from the value passed to
     a leaf's rule evaluation.  the parameter remove_white_space has
     been added to handle this.  evaluation during/after parsing
     was inconsistent before.

     rules_to_set_up_hash parameter now sorted so rules are
     created in a consistent order.

0.01
     evaluation can now occur during parsing, replacing
     on_start, on_match, and on_unmatch

     example directory

     parse returns trace of each step

     optional rule one letter abbreviation changed from p to z
     optional rule also allows naming of zero_or_one

     mutliple rules' minimum handling fixed

     fixed CSV.pm to handle white space

     not croak when a parse fails

0.009  Multiple rules can now have named-subrules when defining
       them.  Demonstrated in Parse::Stallion::CSV.
       Minor changes to the documentation.
       Parse::Stallion::CSV was corrected to handle
       quotes and the documentation for it was expanded.

0.008  Modified test script date_with_no_end_string.t to handle different operating
 systems that have different localtimes

0.007  Modified test script date_parsing.t to handle different operating
 systems that have different localtimes?

0.006  Modified test script date_parsing.t to handle different operating
 systems that apparently have a different epoch.

0.005  Originally released version.