Generic Interpreter 0.9
Private API

gi
Class Grammar.Semantics

java.lang.Object
  |
  +--gi.Grammar.Semantics
Enclosing class:
Grammar

protected static class Grammar.Semantics
extends Object

This class implements Semantics embedded in productions and evaluated when interpreting.

Version:
0.9
Author:
© 1999-2000 Craig A. Rich <carich@acm.org>

Constructor Summary
protected Grammar.Semantics()
          Constructs Semantics.
 
Method Summary
protected  void evaluate(Grammar.ParseTree tree)
          Evaluates attributes in a ParseTree when interpreting.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Constructor Detail

Grammar.Semantics

protected Grammar.Semantics()

Constructs Semantics.

Method Detail

evaluate

protected void evaluate(Grammar.ParseTree tree)
                 throws Lexicon.Exception

Evaluates attributes in a ParseTree when interpreting. evaluate is invoked when a production containing this Semantics is applied to the ParseTree. tree provides the context in which attribute evaluation occurs. tree.symbol and tree.phrase are the left- and right-hand side of the production in which this Semantics is embedded.

During top-down LL(1) parsing, the ParseTree is constructed from the top down by leftmost derivation. This is a depth-first left-to-right traversal, in which embedded Semantics are evaluated when first visited. Evaluation should not depend on attributes produced by Semantics below or to the right of this Semantics. In other words, LL parsing supports evaluation of L-attributed semantic specifications.

During bottom-up LR(0), SLR(1) or LR(1) parsing, the ParseTree is constructed from the bottom up by reverse rightmost derivation. Embedded Semantics are evaluated after all subtrees rooted in the phrase to be reduced have been visited.

Parameters:
tree - the ParseTree in which attribute evaluation occurs.

 

© 1999-2000 Craig A. Rich <carich@acm.org>