KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > fri > patterns > interpreter > parsergenerator > Semantic


1 package fri.patterns.interpreter.parsergenerator;
2
3 import java.util.List JavaDoc;
4 import fri.patterns.interpreter.parsergenerator.syntax.Rule;
5
6 /**
7     A semantic processes parsed input from the Parser. It receives the evaluated Rule,
8     a List of Objects representing the parse results from the right side of the Rule,
9     and the character positions for those Objects.
10     Whenever a rule was reduced by the Parser, it calls this interface (when not null).
11     
12     @see fri.patterns.interpreter.parsergenerator.semantics.PrintSemantic
13     @see fri.patterns.interpreter.parsergenerator.semantics.ReflectSemantic
14     @see fri.patterns.interpreter.parsergenerator.semantics.TreeBuilderSemantic
15     @author (c) 2000, Fritz Ritzberger
16 */

17     
18 public interface Semantic
19 {
20     /**
21         Called by every REDUCE step. Passes the evaluated Rule and the corresponding parsing results.
22         @param rule Rule that was "reduced" (recognized).
23         @param parseResults all semantic call returns from underlying rules, collected according to current rule,
24                 that means you get a List of Objects as long as the count of symbols on the right side of the rule,
25                 every Object is a return of an underlying doSemantic() call.
26         @param resultRanges all line ranges for parseResults elements. Cast elements to Token.Range
27                 to get the start and end position of every Object in parseResult List.
28         @return some result to be pushed on value stack by the Parser, or null.
29     */

30     public Object JavaDoc doSemantic(Rule rule, List JavaDoc parseResults, List JavaDoc resultRanges);
31
32 }
33
Popular Tags