at.dms.kjc
Class JInterfaceDeclaration

java.lang.Object
  |
  +--at.dms.util.Utils
        |
        +--at.dms.compiler.Phylum
              |
              +--at.dms.kjc.JPhylum
                    |
                    +--at.dms.kjc.JMemberDeclaration
                          |
                          +--at.dms.kjc.JTypeDeclaration
                                |
                                +--at.dms.kjc.JInterfaceDeclaration
All Implemented Interfaces:
Constants, Constants

public class JInterfaceDeclaration
extends JTypeDeclaration

This class represents a Java interface in the syntax tree.


Fields inherited from class at.dms.kjc.JMemberDeclaration
ACCESSOR_PREFIX
 
Fields inherited from class at.dms.util.Utils
DBG_LEVEL_HIGH, DBG_LEVEL_LOW, DBG_LEVEL_NO
 
Fields inherited from interface at.dms.kjc.Constants
CMP_VERSION, JAV_CLASS, JAV_CLONE, JAV_CLONEABLE, JAV_CONSTRUCTOR, JAV_ERROR, JAV_EXCEPTION, JAV_INIT, JAV_LENGTH, JAV_NAME_SEPARATOR, JAV_OBJECT, JAV_OUTER_THIS, JAV_RUNTIME, JAV_RUNTIME_EXCEPTION, JAV_STATIC_INIT, JAV_STRING, JAV_STRINGBUFFER, JAV_THIS, JAV_THROWABLE, OPE_BAND, OPE_BNOT, OPE_BOR, OPE_BSR, OPE_BXOR, OPE_EQ, OPE_GE, OPE_GT, OPE_LE, OPE_LNOT, OPE_LT, OPE_MINUS, OPE_NE, OPE_PERCENT, OPE_PLUS, OPE_POSTDEC, OPE_POSTINC, OPE_PREDEC, OPE_PREINC, OPE_SIMPLE, OPE_SL, OPE_SLASH, OPE_SR, OPE_STAR, TID_ARRAY, TID_BOOLEAN, TID_BYTE, TID_CHAR, TID_CLASS, TID_DOUBLE, TID_FLOAT, TID_INT, TID_LONG, TID_SHORT, TID_VOID
 
Fields inherited from interface at.dms.classfile.Constants
ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_NBR_FLAGS, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, ATT_CODE, ATT_CONSTANTVALUE, ATT_DEPRECATED, ATT_EXCEPTIONS, ATT_GENERIC, ATT_INNERCLASSES, ATT_LINENUMBERTABLE, ATT_LOCALVARIABLETABLE, ATT_SOURCEFILE, ATT_SYNTHETIC, CST_CLASS, CST_DOUBLE, CST_FIELD, CST_FLOAT, CST_INTEGER, CST_INTERFACEMETHOD, CST_LONG, CST_METHOD, CST_NAMEANDTYPE, CST_STRING, CST_UTF8, ENV_DEBUG_MODE, ENV_USE_CACHE, JAVA_MAGIC, JAVA_MAJOR, JAVA_MINOR, MAX_CODE_PER_METHOD, opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_athrow, opc_baload, opc_bastore, opc_bipush, opc_caload, opc_castore, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dsub, opc_dup, opc_dup_x1, opc_dup_x2, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_imul, opc_ineg, opc_instanceof, opc_invokeinterface, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc_w, opc_ldc2_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lmul, opc_lneg, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nop, opc_pop, opc_pop2, opc_putfield, opc_putstatic, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_swap, opc_tableswitch, opc_wide, opc_xxxunusedxxx, POO_ASCII_CONSTANT, POO_CLASS_CONSTANT, POO_DOUBLE_CONSTANT, POO_FLOAT_CONSTANT, POO_INTEGER_CONSTANT, POO_LONG_CONSTANT, POO_NAT_CONSTANT, POO_REF_CONSTANT, POO_STRING_CONSTANT, TYP_ADDRESS, TYP_DOUBLE, TYP_FLOAT, TYP_INT, TYP_LONG, TYP_REFERENCE, TYP_VOID
 
Constructor Summary
JInterfaceDeclaration(TokenReference where, int modifiers, java.lang.String shortName, CClassType[] interfaces, JFieldDeclaration[] fields, JMethodDeclaration[] methods, JTypeDeclaration[] inners, JPhylum[] initializers, JavadocComment javadoc, JavaStyleComment[] comments)
          Construct a node in the parsing tree.
 
Method Summary
 void accept(KjcVisitor p)
          Accepts the specified visitor.
 void checkInitializers(CContext context)
          Check that initializers are correct.
 void checkInterface(CContext context)
          Second pass (quick), check interface looks good Exceptions are not allowed here, this pass is just a tuning pass in order to create informations about exported elements such as Classes, Interfaces, Methods, Constructors and Fields
 void checkTypeBody(CContext context)
          Check expression and evaluate and alter context.
 CClassContext createContext(CContext parent)
          createContext.
 void transformType(CContext context)
          Transforms this type before code generation.
 
Methods inherited from class at.dms.kjc.JTypeDeclaration
addGeneratedBodyPart, addGeneratedField, addGeneratedInner, addGeneratedMethod, addOuterThis, checkInterface, generateInterface, getBody, getBodyList, getDefaultConstructor, getFieldList, getFields, getGeneratedFieldList, getGeneratedInnerList, getGeneratedMethodList, getIdent, getInnerList, getInners, getInstanceInitializer, getInterfaces, getMethodList, getMethods, getModifiers, getOwner, getSourceClass, getStaticInitializer, isAtTopLevel, setDefaultConstructor, setIdent, setInstanceInitializer, setInterfaces, setModifiers, setStaticInitializer
 
Methods inherited from class at.dms.kjc.JMemberDeclaration
checkOrder, genComments, getCClass, getField, getMethod, getModifierName, isDeprecated, isSynthetic, setInterface, setSynthetic
 
Methods inherited from class at.dms.kjc.JPhylum
check, check, check, check, fail
 
Methods inherited from class at.dms.compiler.Phylum
getTokenReference, setTokenReference
 
Methods inherited from class at.dms.util.Utils
assert, assert, fail, fail, hasFlag, hasMoreThanOneFlag, hasOtherFlags, splitQualifiedName, splitQualifiedName, vectorToArray, vectorToIntArray
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JInterfaceDeclaration

public JInterfaceDeclaration(TokenReference where,
                             int modifiers,
                             java.lang.String shortName,
                             CClassType[] interfaces,
                             JFieldDeclaration[] fields,
                             JMethodDeclaration[] methods,
                             JTypeDeclaration[] inners,
                             JPhylum[] initializers,
                             JavadocComment javadoc,
                             JavaStyleComment[] comments)
Construct a node in the parsing tree.
Parameters:
where - The line of this node in the source code.
modifiers - The modifiers of this interface.
shortName - The short name of this interface.
interfaces - The interfaces extended by this interface.
fields - The fields in this interface.
methods - The methods in this interface.
javadoc - Javadoc comment.
comments - implementation comments.
Method Detail

transformType

public void transformType(CContext context)
                   throws PositionedError
Transforms this type before code generation.
Overrides:
transformType in class JTypeDeclaration
Throws:
PositionedError - an error with reference to the source file

checkInterface

public void checkInterface(CContext context)
                    throws PositionedError
Second pass (quick), check interface looks good Exceptions are not allowed here, this pass is just a tuning pass in order to create informations about exported elements such as Classes, Interfaces, Methods, Constructors and Fields
Overrides:
checkInterface in class JTypeDeclaration
Returns:
true iff sub tree is correct enought to check code
Throws:
PositionedError - an error with reference to the source file

checkInitializers

public void checkInitializers(CContext context)
                       throws PositionedError
Check that initializers are correct.
Overrides:
checkInitializers in class JTypeDeclaration
Throws:
PositionedError - an error with reference to the source file

checkTypeBody

public void checkTypeBody(CContext context)
                   throws PositionedError
Check expression and evaluate and alter context.
Overrides:
checkTypeBody in class JTypeDeclaration
Parameters:
context - the actual context of analyse
Returns:
a pure java expression including promote node
Throws:
PositionedError - an error with reference to the source file

createContext

public CClassContext createContext(CContext parent)
createContext.
Overrides:
createContext in class JTypeDeclaration
Parameters:
parent - the parent context or null
Returns:
returns a CClassContext that represents this context
Throws:
UnpositionedError - Error catched as soon as possible

accept

public void accept(KjcVisitor p)
Accepts the specified visitor.
Overrides:
accept in class JMemberDeclaration
Parameters:
p - The visitor.