NAME
    Soar::Production::Parser - PARSES SOAR PRODUCTIONS

VERSION
    version 1.122800

SYNOPSIS
      use Soar::Production::Parser;
      use Data::Dumper;
      my $parser = Soar::Production::Parser->new;
      my @trees=$parser->parse_file("foo.soar");
      print Dumper(\@tree);

NAME
    Soar::Production::Parser - Perl extension for parsing angst grammar
    files

METHODS
  "new"
    Creates a new parser.

  "parse_text"
    Argument: the text of a single Soar production. Returns: a parse tree
    for the given production.

  "get_parses"
    Argument: Reference to array containing text for individual productions.
    Return: Reference to an array containing parse trees for each of the
    productions in the input array reference.

  "no_comment"
Argument: Text which contains Soar productions or commands
Return: Same text, but with all comments removed. Comments are indicated with a # (pound), optionally preceded by a ; (semicolon) and whitespace.
  "productions"
    This method extracts productions from a given text. It returns a
    reference to an array containing either the text of each of the
    productions, or a parse tree for each of them. Note that all comments
    are removed as a preprocessing step to detecting and extracting
    productions. It takes a set of named arguments: 'file'- the name of a
    file to read. 'text'- the text to split. 'parse'- set to true if the
    return value should be an array of parse trees for the extracted
    productions; otherwise an array containing the production text will be
    returned. For example, if you would like to extract all of the
    productions from a file and print their parse trees, you could do this:

        use Soar::Production::Parser;
            use Data::Dumper;
        
            my $file = shift;
            my $parser = Soar::Production::Parser->new();
            my $parses = $parser->productions(
                    file => $file,
                    parse => 1
            );
        
            for my $prod(@$productions){
                    print Dumper($prod);
            }

AUTHOR
    Nathan Glenn <garfieldnate@gmail.com>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2012 by Nathan Glenn.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.

