diff options
author | Gilles Dubochet <gilles.dubochet@epfl.ch> | 2005-12-18 18:33:03 +0000 |
---|---|---|
committer | Gilles Dubochet <gilles.dubochet@epfl.ch> | 2005-12-18 18:33:03 +0000 |
commit | d3819b93ab8b2de3d5cc35c33b8258ccdb5a931a (patch) | |
tree | dfc6f7f497e58ea3321e6f687b11313d2afa86b5 /sources/meta/scalac/ast/Tree.java | |
parent | 0e82079908655682e5140ad521cef0572cb6d2a4 (diff) | |
download | scala-d3819b93ab8b2de3d5cc35c33b8258ccdb5a931a.tar.gz scala-d3819b93ab8b2de3d5cc35c33b8258ccdb5a931a.tar.bz2 scala-d3819b93ab8b2de3d5cc35c33b8258ccdb5a931a.zip |
Removed old Scalac code in sources and various ...
Removed old Scalac code in sources and various other obsolete elements.
Diffstat (limited to 'sources/meta/scalac/ast/Tree.java')
-rw-r--r-- | sources/meta/scalac/ast/Tree.java | 441 |
1 files changed, 0 insertions, 441 deletions
diff --git a/sources/meta/scalac/ast/Tree.java b/sources/meta/scalac/ast/Tree.java deleted file mode 100644 index 492461bc59..0000000000 --- a/sources/meta/scalac/ast/Tree.java +++ /dev/null @@ -1,441 +0,0 @@ -/* ____ ____ ____ ____ ______ *\ -** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala ** -** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL ** -** /_____/\____/\___/\____/____/ ** -\* */ - -// $Id$ - -package meta.scalac.ast; - -import java.util.List; -import java.util.ArrayList; - -import meta.java.Type; -import meta.scalac.Phase; - -/** This class describes all tree nodes. */ -public class Tree { - - //######################################################################## - // Private Fields - - private final TreeKind - Any = TreeKind.Any, - Type = TreeKind.Type, - Term = TreeKind.Term, - Dual = TreeKind.Dual, - Test = TreeKind.Test, - None = TreeKind.None; - - private final Type - t_int = TreeType.INT, - t_ints = TreeType.Array(t_int), - t_Object = TreeType.Reference(null, "Object"), - t_String = TreeType.Reference(null, "String"), - t_Global = TreeType.Reference("scalac", "Global"), - t_Unit = TreeType.Reference("scalac", "Unit"), - t_TreeGen = TreeType.Reference("scalac.ast", "TreeGen"), - t_AConstant = TreeType.Reference("scalac.atree", "AConstant"), - t_Symbol = TreeType.Reference("scalac.symtab", "Symbol"), - t_Type = TreeType.Reference("scalac.symtab", "Type"), - t_Name = TreeType.Name(Any), - t_TypeName = TreeType.Name(Type), - t_TermName = TreeType.Name(Term), - t_TestName = TreeType.Name(Test), - t_Names = TreeType.Array(t_Name), - t_Tree = getType(0), - t_TypeTree = getType(0, Type), - t_TermTree = getType(0, Term), - t_Trees = getType(1), - t_TypeTrees = getType(1, Type), - t_TermTrees = getType(1, Term); - - private final TreeFieldLink - SymFlags = TreeFieldLink.SymFlags, - SymName = TreeFieldLink.SymName; - - private final TreeField - tree_symbol = new TreeField(t_Symbol, "symbol"); - - private final TreeSymbol - NoSym = TreeSymbol.NoSym, - HasSym = TreeSymbol.HasSym(tree_symbol, false), - DefSym = TreeSymbol.HasSym(tree_symbol, true); - - private final List list - = new ArrayList(); - - //######################################################################## - // Public Fields - - public final TreeNode - n_Empty = node("Empty" , Any , NoSym), - n_Attributed = node("Attributed" , None, NoSym), - n_DocDef = node("DocDef" , None, NoSym), - n_ClassDef = node("ClassDef" , None, DefSym), - n_PackageDef = node("PackageDef" , None, NoSym), - n_ModuleDef = node("ModuleDef" , None, DefSym), - n_ValDef = node("ValDef" , None, DefSym), - n_PatDef = node("PatDef" , None, NoSym), - n_DefDef = node("DefDef" , None, DefSym), - n_AbsTypeDef = node("AbsTypeDef" , None, DefSym), - n_AliasTypeDef = node("AliasTypeDef" , None, DefSym), - n_Import = node("Import" , None, HasSym), - n_CaseDef = node("CaseDef" , None, NoSym), - n_Template = node("Template" , None, HasSym), - n_LabelDef = node("LabelDef" , Term, DefSym), - n_Block = node("Block" , Term, NoSym), - n_Sequence = node("Sequence" , Term, NoSym), - n_Alternative = node("Alternative" , Term, NoSym), - n_Bind = node("Bind" , Term, DefSym), - n_Visitor = node("Visitor" , Term, NoSym), - n_Function = node("Function" , Term, NoSym), - n_Assign = node("Assign" , Term, NoSym), - n_If = node("If" , Term, NoSym), - n_Switch = node("Switch" , Term, NoSym), - n_Return = node("Return" , Term, HasSym), - n_Throw = node("Throw" , Term, NoSym), - n_New = node("New" , Term, NoSym), - n_Create = node("Create" , Term, HasSym), - n_Typed = node("Typed" , Term, NoSym), - n_TypeApply = node("TypeApply" , Term, NoSym), - n_Apply = node("Apply" , Term, NoSym), - n_Super = node("Super" , Term, HasSym), - n_This = node("This" , Term, HasSym), - n_Select = node("Select" , Test, HasSym), - n_Ident = node("Ident" , Test, HasSym), - n_Literal = node("Literal" , Term, NoSym), - n_TypeTerm = node("TypeTerm" , Type, NoSym), - n_SingletonType = node("SingletonType" , Type, NoSym), - n_SelectFromType = node("SelectFromType", Type, HasSym), - n_FunType = node("FunType" , Type, NoSym), - n_CompoundType = node("CompoundType" , Type, NoSym), - n_AppliedType = node("AppliedType" , Type, NoSym), - n_Try = node("Try" , Term, NoSym); - - public final TreeNode[] nodes; - public int arrays; - - //######################################################################## - // Public Constructors - - public Tree() { - nodes = (TreeNode[])list.toArray(new TreeNode[list.size()]); - - n_Empty. - setDescription("A tree node for the absence of a tree"). - setRange(Phase.PARSER, Phase.UNKNOWN). - noFields(); - - n_Attributed. - setDescription("Attributed definition"). - setRange(Phase.PARSER, Phase.ANALYZER). - addField(t_Tree, "attribute"). - addField(t_Tree, "definition"); - - n_DocDef. - setDescription("Documented definition"). - setRange(Phase.PARSER, Phase.ANALYZER). - addField(t_String, "comment"). - addField(t_Tree, "definition"); - - n_ClassDef. - setDescription("Class and data declaration"). - setRange(Phase.PARSER, Phase.END). - addField(t_int, "mods", SymFlags). - addField(t_TypeName, "name", SymName). - addField(n_AbsTypeDef.getType(1), "tparams"). - addField(n_ValDef.getType(2), "vparams"). - addField(t_TypeTree, "tpe"). - addField(n_Template.getType(0), "impl"); - - n_PackageDef. - setDescription("Package declaration"). - setRange(Phase.PARSER, Phase.UNKNOWN). - addField(t_TermTree, "packaged"). - addField(n_Template.getType(0), "impl"); - - n_ModuleDef. - setDescription("Module declaration"). - setRange(Phase.PARSER, Phase.REFCHECK). - addField(t_int, "mods", SymFlags). - addField(t_TermName, "name", SymName). - addField(t_TypeTree, "tpe"). - addField(n_Template.getType(0), "impl"); - - n_ValDef. - setDescription("Value declaration (var or let)"). - setRange(Phase.PARSER, Phase.END). - addField(t_int, "mods", SymFlags). - addField(t_TermName, "name", SymName). - addField(t_TypeTree, "tpe"). - addField(t_TermTree, "rhs"); - - - n_PatDef. - setDescription("Value declaration with patterns (val)"). - setRange(Phase.PARSER, Phase.DESUGARIZER). - addField(t_int, "mods"). - addField(t_TermTree, "pat"). - addField(t_TermTree, "rhs"); - - n_DefDef. - setDescription("Function declaration (def)"). - setRange(Phase.PARSER, Phase.END). - addField(t_int, "mods", SymFlags). - addField(t_TermName, "name", SymName). - addField(n_AbsTypeDef.getType(1), "tparams"). - addField(n_ValDef.getType(2), "vparams"). - addField(t_TypeTree, "tpe"). - addField(t_TermTree, "rhs"); - - n_AbsTypeDef. - setDescription("Type declaration"). - setRange(Phase.PARSER, Phase.END). // !!! needed for type params - addField(t_int, "mods", SymFlags). - addField(t_TypeName, "name", SymName). - addField(t_TypeTree, "rhs"). - addField(t_TypeTree, "lobound"); - - n_AliasTypeDef. - setDescription("Type alias"). - setRange(Phase.PARSER, Phase.EXPLICITOUTER). - addField(t_int, "mods", SymFlags). - addField(t_TypeName, "name", SymName). - addField(n_AbsTypeDef.getType(1), "tparams"). - addField(t_TypeTree, "rhs"); - - n_Import. - setDescription("Import declaration"). - setRange(Phase.PARSER, Phase.ANALYZER). - addField(t_TermTree, "expr"). - addField(t_Names, "selectors"); - - n_CaseDef. - setDescription("Case declaration"). - setRange(Phase.PARSER, Phase.TRANSMATCH). - addField(t_TermTree, "pat"). - addField(t_TermTree, "guard"). - addField(t_TermTree, "body"); - - n_Template. - setDescription("Instantiation templates"). - setRange(Phase.PARSER, Phase.END). - addField(t_TermTrees, "parents"). - addField(t_Trees, "body"); - - n_LabelDef. - setDescription("Labelled expression - the symbols in the array (must be Idents!) are those the label takes as argument"). - setRange(Phase.PARSER, Phase.END). - addField(t_TermName, "name", SymName). - addField(n_Ident.getType(1), "params"). - addField(t_TermTree, "rhs"); - - n_Block. - setDescription("Block of expressions " + - "(semicolon separated expressions)"). - setRange(Phase.PARSER, Phase.END). - addField(t_Trees, "stats"). - addField(t_TermTree, "expr"); - - n_Sequence. - setDescription("Sequence of expressions (comma separated expressions)"). - setRange(Phase.PARSER, Phase.TRANSMATCH). - addField(t_TermTrees, "trees"); - - n_Alternative. - setDescription("Alternatives of expressions/patterns"). - setRange(Phase.PARSER, Phase.TRANSMATCH). - addField(t_TermTrees, "trees"); - - n_Bind. - setDescription("Bind of a variable to a rhs pattern, possibly recursive"). - setRange(Phase.PARSER, Phase.TRANSMATCH). - addField(t_TermName, "name", SymName). - addField(t_TermTree, "rhs"); - - - n_Visitor. - setDescription("Visitor (a sequence of cases)"). - setRange(Phase.PARSER, Phase.TRANSMATCH). - addField(n_CaseDef.getType(1), "cases"); - - - n_Function. - setDescription("Anonymous function"). - setRange(Phase.PARSER, Phase.ANALYZER). - addField(n_ValDef.getType(1), "vparams"). - addField(t_TermTree, "body"); - - n_Assign. - setDescription("Assignment"). - setRange(Phase.PARSER, Phase.END). - addField(t_TermTree, "lhs"). - addField(t_TermTree, "rhs"); - - n_If. - setDescription("Conditional expression"). - setRange(Phase.PARSER, Phase.END). - addField(t_TermTree, "cond"). - addField(t_TermTree, "thenp"). - addField(t_TermTree, "elsep"); - - n_Switch. - setDescription("Switch"). - setRange(Phase.REFCHECK, Phase.END). - addField(t_TermTree, "test"). - addField(t_ints, "tags"). - addField(t_TermTrees, "bodies"). - addField(t_TermTree, "otherwise"); - - n_Return. - setDescription("Return"). - setRange(Phase.PARSER, Phase.END). - addField(t_TermTree, "expr"); - - n_Throw. - setDescription("Throw"). - setRange(Phase.PARSER, Phase.ANALYZER). - addField(t_TermTree, "expr"); - - n_New. - setDescription("Instantiation"). - setRange(Phase.PARSER, Phase.END). - addField(t_TermTree, "init"); - - n_Create. - setDescription("Instance creation"). - setRange(Phase.ANALYZER, Phase.END). - addField(t_TermTree, "qualifier"). - addField(t_TypeTrees, "targs"); - - n_Typed. - setDescription("Type annotation"). - setRange(Phase.PARSER, Phase.EXPLICITOUTER). - addField(t_TermTree, "expr"). - addField(t_TypeTree, "tpe"); - - - n_TypeApply. - setDescription("Type application"). - setRange(Phase.PARSER, Phase.END). - addField(t_Tree, "fun"). - addField(t_TypeTrees, "args"); - - n_Apply. - setDescription("Value application"). - setRange(Phase.PARSER, Phase.END). - addField(t_Tree, "fun"). // !!! should be t_TermTree - addField(t_TermTrees, "args"); - - n_Super. - setDescription("Super reference"). - setRange(Phase.PARSER, Phase.END). - addField(t_TypeName, "qualifier", SymName). - addField(t_TypeName, "mixin"); - - n_This. - setDescription("Self reference"). - setRange(Phase.PARSER, Phase.END). - addField(t_TypeName, "qualifier", SymName); - - n_Select. - setDescription("Designator"). - setRange(Phase.PARSER, Phase.END). - addField(t_TermTree, "qualifier"). - addField(t_TestName, "selector", SymName); - - n_Ident. - setDescription("Identifier"). - setRange(Phase.PARSER, Phase.END). - addField(t_TestName, "name", SymName); - - n_Literal. - setDescription("Literal"). - setRange(Phase.PARSER, Phase.END). - addField(t_AConstant, "value"); - - n_TypeTerm. - setDescription("TypeTerm"). - setRange(Phase.PARSER, Phase.END); - - n_SingletonType. - setDescription("Singleton type"). - setRange(Phase.PARSER, Phase.REFCHECK). - addField(t_TermTree, "ref"); - - n_SelectFromType. - setDescription("Type selection"). - setRange(Phase.PARSER, Phase.REFCHECK). - addField(t_TypeTree, "qualifier"). - addField(t_TypeName, "selector", SymName); - - n_FunType. - setDescription("Function type"). - setRange(Phase.PARSER, Phase.REFCHECK). - addField(t_TypeTrees, "argtpes"). - addField(t_TypeTree, "restpe"); - - n_CompoundType. - setDescription("Object type (~ Template)"). - setRange(Phase.PARSER, Phase.REFCHECK). - addField(t_TypeTrees, "parents"). - addField(t_Trees, "refinements"); - - n_AppliedType. - setDescription("Applied type"). - setRange(Phase.PARSER, Phase.REFCHECK). - addField(t_TypeTree, "tpe"). - addField(t_TypeTrees, "args"); - - n_Try. - setDescription("Try Expression"). - setRange(Phase.PARSER, Phase.END). - addField(t_TermTree, "block"). - addField(t_TermTree, "catcher"). - addField(t_TermTree, "finalizer"); - } - - //######################################################################## - // Public Functions - - public static boolean isTree(Type type) { - switch (type) { - case Array(Type item): - return isTree(item); - case TreeType.Tree(_): - case TreeType.Node(_): - return true; - default: - return false; - } - } - - //######################################################################## - // Public Methods - - public Type getType(int rank) { - return getType(rank, Any); - } - - public Type getType(int rank, TreeKind kind) { - arrays = Math.max(arrays , rank); - return rank==0 ? TreeType.Tree(kind) : TreeType.Array(getType(rank-1)); - } - - public String getFormal(String name) { - return getType(0) + " " + name; - } - - //######################################################################## - // Private Methods - - private TreeNode node(String name, TreeKind kind, TreeSymbol symbol) { - TreeNode node = new TreeNode(name, kind, symbol); - list.add(node); - return node; - } - - //######################################################################## -} |