Class OOParser::Grammar
In: lib/ooparser/grammar.rb  (CVS)
Parent: Object

A grammar class for representing the structure of an OOParser

Methods

def_rule   default   new  

Attributes

default_rule  [RW]  The default rule to enter a parse with
rules  [R]  Rules defined by the grammar

Public Class methods

Create a new OOParser::Grammar whose rules are defined in the given block.

[Source]

# File lib/ooparser/grammar.rb, line 43
    def initialize( &block )
        @rules = {}
        @default_rule = nil
        self.instance_eval( &block ) if block
    end

Public Instance methods

Add a rule with the given name, production, and action to the parser’s grammar, creating a new Rule object if necessary.

[Source]

# File lib/ooparser/grammar.rb, line 63
    def def_rule( name, production, &action )
        @rules[ name ] ||= OOParser::Rule::new( name )
        @rules[ name ].add_production( production, &action )

        @default_rule ||= name
    end

Set the default rule

[Source]

# File lib/ooparser/grammar.rb, line 72
    def default( rule )
        self.default_rule = rule
    end

[Validate]