fr.umlv.tatoo.cc.ebnf.ast
Class TreeFactory

java.lang.Object
  extended by fr.umlv.tatoo.cc.ebnf.ast.TreeFactory

public class TreeFactory
extends Object


Constructor Summary
TreeFactory(AST ast, AnnotationComputer annotationComputer)
           
 
Method Summary
 NodeBuilder<AliasDefAST> createAliasDef(TokenAST<String> name)
           
 NodeBuilder<DirectiveDefAST> createDirectiveDef(TokenAST<String> name)
           
 NodeBuilder<EnhancedDefAST> createEnhancedVariable(EnhancedDefAST.Enhancement enhancement, VariableVarAST element, VariableVarAST separator, List<Node> vargroup)
           
 NodeBuilder<ImportDefAST> createImportDef(TokenAST<String> qualifiedId)
           
 NodeBuilder<MacroDefAST> createMacroDef(TokenAST<String> name, String regex)
           
 NodeBuilder<NonTerminalDefAST> createNonTerminalDef(TokenAST<String> name, TypeVarAST type, List<ProductionDefAST> productions)
           
 NodeBuilder<PriorityDefAST> createPriorityDef(TokenAST<String> name, double number, String assoc)
           
 NodeBuilder<PriorityVarAST> createPriorityVar(TokenAST<String> name)
           
 NodeBuilder<ProductionDefAST> createProductionDef(List<Node> varlist, PriorityVarAST priority, ProductionIdAndVersionDefAST idAndVersion)
           
 NodeBuilder<ProductionIdAndVersionDefAST> createProductionIdAndVersionDef(TokenAST<String> name, VersionVarAST version)
           
 NodeBuilder<QuotedIdVarAST> createQuotedIdVar(TokenAST<String> name)
           
 NodeBuilder<RootDefAST> createRootDef(StartNonTerminalSetDefAST startNonTerminalSetDef)
           
 NodeBuilder<RuleDefAST> createRuleDef(TokenAST<String> name, String regex)
           
<V> NodeBuilder<SimpleNodeAST<V>>
createSimpleNode(Kind kind, V value)
           
 NodeBuilder<StartNonTerminalSetDefAST> createStartNonTerminalSetDef(List<UnquotedIdVarAST> startNonTerminalList)
           
 NodeBuilder<TerminalDefAST> createTerminalDef(TerminalDefAST.TerminalKind kind, TokenAST<String> name, AliasDefAST alias, TypeVarAST type, RuleDefAST rule, PriorityVarAST priority)
           
<V> TokenAST<V>
createToken(fr.umlv.tatoo.cc.lexer.ebnf.parser.TerminalEnum kind, V value)
           
 NodeBuilder<TypeVarAST> createTypeVar(TokenAST<String> qualifiedid)
           
 NodeBuilder<UnquotedIdVarAST> createUnquotedIdVar(TokenAST<String> name)
           
 NodeBuilder<VariableTypeDefAST> createVariableTypeDef(VariableVarAST variable, TypeVarAST type)
           
 NodeBuilder<VersionDefAST> createVersionDef(TokenAST<String> name, VersionVarAST parent)
           
 NodeBuilder<VersionVarAST> createVersionVar(TokenAST<String> name)
           
 AnnotationComputer getAnnotationComputer()
           
 void reset(AST ast)
           
 void setRoot(Node root)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TreeFactory

public TreeFactory(AST ast,
                   AnnotationComputer annotationComputer)
Method Detail

reset

public void reset(AST ast)

getAnnotationComputer

public AnnotationComputer getAnnotationComputer()

setRoot

public void setRoot(Node root)

createToken

public <V> TokenAST<V> createToken(fr.umlv.tatoo.cc.lexer.ebnf.parser.TerminalEnum kind,
                                   V value)

createSimpleNode

public <V> NodeBuilder<SimpleNodeAST<V>> createSimpleNode(Kind kind,
                                                          V value)

createProductionIdAndVersionDef

public NodeBuilder<ProductionIdAndVersionDefAST> createProductionIdAndVersionDef(TokenAST<String> name,
                                                                                 VersionVarAST version)

createEnhancedVariable

public NodeBuilder<EnhancedDefAST> createEnhancedVariable(EnhancedDefAST.Enhancement enhancement,
                                                          VariableVarAST element,
                                                          VariableVarAST separator,
                                                          List<Node> vargroup)

createImportDef

public NodeBuilder<ImportDefAST> createImportDef(TokenAST<String> qualifiedId)

createMacroDef

public NodeBuilder<MacroDefAST> createMacroDef(TokenAST<String> name,
                                               String regex)

createNonTerminalDef

public NodeBuilder<NonTerminalDefAST> createNonTerminalDef(TokenAST<String> name,
                                                           TypeVarAST type,
                                                           List<ProductionDefAST> productions)

createUnquotedIdVar

public NodeBuilder<UnquotedIdVarAST> createUnquotedIdVar(TokenAST<String> name)

createPriorityDef

public NodeBuilder<PriorityDefAST> createPriorityDef(TokenAST<String> name,
                                                     double number,
                                                     String assoc)

createPriorityVar

public NodeBuilder<PriorityVarAST> createPriorityVar(TokenAST<String> name)

createProductionDef

public NodeBuilder<ProductionDefAST> createProductionDef(List<Node> varlist,
                                                         PriorityVarAST priority,
                                                         ProductionIdAndVersionDefAST idAndVersion)

createDirectiveDef

public NodeBuilder<DirectiveDefAST> createDirectiveDef(TokenAST<String> name)

createRuleDef

public NodeBuilder<RuleDefAST> createRuleDef(TokenAST<String> name,
                                             String regex)

createRootDef

public NodeBuilder<RootDefAST> createRootDef(StartNonTerminalSetDefAST startNonTerminalSetDef)

createStartNonTerminalSetDef

public NodeBuilder<StartNonTerminalSetDefAST> createStartNonTerminalSetDef(List<UnquotedIdVarAST> startNonTerminalList)

createTerminalDef

public NodeBuilder<TerminalDefAST> createTerminalDef(TerminalDefAST.TerminalKind kind,
                                                     TokenAST<String> name,
                                                     AliasDefAST alias,
                                                     TypeVarAST type,
                                                     RuleDefAST rule,
                                                     PriorityVarAST priority)

createQuotedIdVar

public NodeBuilder<QuotedIdVarAST> createQuotedIdVar(TokenAST<String> name)

createTypeVar

public NodeBuilder<TypeVarAST> createTypeVar(TokenAST<String> qualifiedid)

createVersionDef

public NodeBuilder<VersionDefAST> createVersionDef(TokenAST<String> name,
                                                   VersionVarAST parent)

createAliasDef

public NodeBuilder<AliasDefAST> createAliasDef(TokenAST<String> name)

createVariableTypeDef

public NodeBuilder<VariableTypeDefAST> createVariableTypeDef(VariableVarAST variable,
                                                             TypeVarAST type)

createVersionVar

public NodeBuilder<VersionVarAST> createVersionVar(TokenAST<String> name)