Changes for version 1.152

  • lexer, input and error as static/class attributes and inheritance
  • Parse::Eyapp::TailSupport embedded in Driver
  • if lex or error are already set don't ask for then in YYParse
  • label for names %name B:A (label is A, name is B). A conflict can refer to the name:label but the class is 'name'
  • Dynamic conflict resolution: %conflict CONFLICTIDENTIFIER { # conflict solver if (is_A()) { $self->YYSetReduce('@', 'ruleA') } else { $self->YYSetShift('@') } }
    • A: alpha %PREC CONFLICTIDENTIFIER

Documentation

A Perl front-end to the Parse::Eyapp module
Tree Matching and Tree substitution: an introduction
Tutorial on Using Parse::Eyapp as a Data Generator for Testing
Solving ambiguities and fixing lexical, syntactic and semantic errors
Introduction to Default Actions and Grammar Reuse
An introduction to Parse::Eyapp
The Eyapp language reference manual
Introduction to Translation Schemes in Eyapp
Compiler for Tree Regular Expressions
vgg
Produces a graph for a Eyapp grammar or a tree term

Modules

Bottom up parser generator
Miscellaneous support functions for Parse::Eyapp
The LR parser
The nodes of the Syntax Trees
The parser of Eyapp grammars
Support for Scope Analysis
Support for Using Parse::Eyapp as a Data Generator
Tree transformations
Tree transformation objects

Provides

in lib/Parse/Eyapp/Cleaner.pm
in lib/Parse/Eyapp/Grammar.pm
in lib/Parse/Eyapp/Lalr.pm
in lib/Parse/Eyapp/Node.pm
in lib/Parse/Eyapp/Options.pm
in lib/Parse/Eyapp/Output.pm
in lib/Parse/Eyapp/Treeregexp.pm
in lib/Parse/Eyapp/_TreeregexpSupport.pm

Examples