root/trunk/ProjectFortress/src/com/sun/fortress/interpreter/glue/WellKnownNames.java @ 3292

Revision 3292, 5.1 KB (checked in by EricAllen, 11 months ago)

Added a type normalizer to improve presentation of types in error messages.
Got the type checker working over more of our first 20 compiled programs.
Added corresponding tests to CompilerJUTests.

Line 
1/*******************************************************************************
2    Copyright 2008 Sun Microsystems, Inc.,
3    4150 Network Circle, Santa Clara, California 95054, U.S.A.
4    All rights reserved.
5
6    U.S. Government Rights - Commercial software.
7    Government users are subject to the Sun Microsystems, Inc. standard
8    license agreement and applicable provisions of the FAR and its supplements.
9
10    Use is subject to license terms.
11
12    This distribution may include materials developed by third parties.
13
14    Sun, Sun Microsystems, the Sun logo and Java are trademarks or registered
15    trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
16 ******************************************************************************/
17
18package com.sun.fortress.interpreter.glue;
19
20import com.sun.fortress.nodes.Id;
21import com.sun.fortress.nodes.ObjectExpr;
22import com.sun.fortress.nodes.VarDecl;
23import com.sun.fortress.useful.HasAt;
24
25public class WellKnownNames {
26    public static final String anyTypeName = "Any";
27    public static final String objectTypeName = "Object";
28    public static final String defaultSelfName = "self";
29    public static final String secretSelfName = "$self"; // The true name of the object
30    public static final String secretParentName = "$parent"; // The true name of the object
31    public static String arrayTrait(int rank) {
32        return "Array"+rank;
33    }
34    public static String arrayMaker(int rank) {
35        return "__builtinFactory"+rank;
36    }
37
38    private static String _compilerLibrary = "CompilerLibrary";
39    private static String _compilerBuiltin = "CompilerBuiltin";
40    private static String _fortressLibrary = "FortressLibrary";
41    private static String _fortressBuiltin = "FortressBuiltin";
42    private static String _anyTypeLibrary = "AnyType";
43    private static final String _executableApi = "Executable";
44    private static final String _simpleExecutableApi = "SimpleExecutable";
45
46    private static String[] _defaultLibrary =
47        { anyTypeLibrary(), fortressLibrary(), fortressBuiltin() };
48
49    public final static String varargsFactoryName = "__immutableFactory1";
50    public final static String arrayElementTypeName = "T";
51    public final static String arrayGetter = "get";
52    public final static String arrayPutter = "init";
53
54    public final static String matrix = "Matrix";
55
56    public static final String thread = "Thread";
57
58    public final static String loop = "loop";
59    public final static String generate = "__generate";
60    public final static String nest = "__nest";
61    public final static String map = "__map";
62    public final static String singleton = "__singleton";
63    public final static String cond = "__cond";
64    public final static String whileCond = "__whileCond";
65    public final static String bigOperator = "__bigOperator";
66    public final static String bigOperator2 = "__bigOperator2";
67    public final static String filter = "__filter";
68    public final static String outcome = "outcome";
69
70    public final static String containsTypeName = "Contains";
71    public final static String containsMatchName = "MATCH";
72
73    public final static String forbiddenException = "ForbiddenException";
74    public final static String tryatomicFailureException = "TryAtomicFailure";
75    public final static String matchFailureException = "MatchFailure";
76    public final static String callerViolationException = "CallerViolation";
77    public final static String calleeViolationException = "CalleeViolation";
78    public final static String labelException = "LabelException";
79
80    public static String compilerLibrary() { return _compilerLibrary; }
81    public static String compilerBuiltin() { return _compilerBuiltin; }
82    public static String fortressLibrary() { return _fortressLibrary; }
83    public static String fortressBuiltin() { return _fortressBuiltin; }
84    public static String anyTypeLibrary() { return _anyTypeLibrary; }
85    public static String[] defaultLibrary() { return _defaultLibrary; }
86
87    public static boolean exportsMain(String apiName) {
88        return (apiName.equals(_executableApi) || apiName.equals(_simpleExecutableApi));
89    }
90
91    /**
92     * Re-points fortressLibrary etc. to special compiler (rather than interpreter) versions
93     * of the code.  Hopefully temporary hack as we work on importing java objects cleanly.
94     */
95    public static void useCompilerLibraries() {
96        _fortressLibrary = "CompilerLibrary";
97        _fortressBuiltin = "CompilerBuiltin";
98        _defaultLibrary =
99            new String[] { anyTypeLibrary(), fortressLibrary(), fortressBuiltin() };
100    }
101
102    public final static String obfuscatedSingletonConstructorName(String fname, HasAt x) {
103        // TODO Auto-generated method stub
104        return "*1_" + fname;
105    }
106    public static String objectExprName(ObjectExpr expr) {
107        return "*objectexpr_" + expr.toString();
108    }
109    public static String tempTupleName(VarDecl vd) {
110        // TODO Auto-generated method stub
111        return "*tuple_"+vd.at();
112    }
113    public static String tempForUnderscore(Id id) {
114        // TODO Auto-generated method stub
115        return "*underscore_"+id.at();
116    }
117
118}
Note: See TracBrowser for help on using the browser.