fri.patterns.interpreter.parsergenerator.util
Class SourceGenerator

java.lang.Object
  |
  +--fri.patterns.interpreter.parsergenerator.util.SourceGenerator

public abstract class SourceGenerator
extends java.lang.Object

Java source generator. Following code generations are supported:

        SYNTAX: java fri.patterns.interpreter.parsergenerator.util.SourceGenerator [semantic|LALR|SLR|LR] file.syntax [file.syntax ...]
                        LALR|SLR|LR: Generates ParserTable implementation(s) of passed grammar file(s).
                               else: Generates Syntax implementation(s) of passed grammar file(s).
        CAUTION: Files MUST have relative pathes!
        

Author:
(c) 2002, Fritz Ritzberger

Method Summary
static void generateParserTable(AbstractParserTables parserTables, java.lang.String className, java.lang.String pkgName)
          Generates Java code from parser tables. makes the output filename and calls parserTables.toSourceFile() then.
static void generateSemanticSkeleton(Syntax syntax, java.lang.String className, java.lang.String pkgName)
          Generates a semantic skeleton implementation for a given syntax.
static void generateSyntaxImpl(Syntax syntax, java.lang.String className, java.lang.String pkgName, java.util.List initialNonterminals)
          Generates a Java implementation from the passed Syntax object.
static void main(java.lang.String[] args)
          Source generator main.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

generateSemanticSkeleton

public static void generateSemanticSkeleton(Syntax syntax,
                                            java.lang.String className,
                                            java.lang.String pkgName)
                                     throws java.lang.Exception
Generates a semantic skeleton implementation for a given syntax.

Parameters:
className - basename of class to generate, semantic will be named className+"Semantic.java"
pkgName - package-name of class to generate
java.lang.Exception

generateParserTable

public static void generateParserTable(AbstractParserTables parserTables,
                                       java.lang.String className,
                                       java.lang.String pkgName)
                                throws java.lang.Exception
Generates Java code from parser tables. makes the output filename and calls parserTables.toSourceFile() then.

Parameters:
parserTables - ParserTables for which the source should stand
className - basename of class to generate
pkgName - name of package of class to generate, can be null
java.lang.Exception

generateSyntaxImpl

public static void generateSyntaxImpl(Syntax syntax,
                                      java.lang.String className,
                                      java.lang.String pkgName,
                                      java.util.List initialNonterminals)
                               throws java.io.IOException
Generates a Java implementation from the passed Syntax object.

Parameters:
syntax - Syntax to convert to Java code.
className - basename of class to generate
pkgName - name of package of class to generate
java.io.IOException

main

public static void main(java.lang.String[] args)
Source generator main. Writes syntax to stderr when launched with no arguments or -h.