Class Declaration

java.lang.Object
simula.compiler.syntaxClass.SyntaxClass
simula.compiler.syntaxClass.declaration.Declaration
Direct Known Subclasses:
ArrayDeclaration, DeclarationScope, ExternalDeclaration, InspectVariableDeclaration, Parameter, SimpleVariableDeclaration, UndefinedDeclaration, VirtualMatch, VirtualSpecification

public abstract class Declaration extends SyntaxClass

Declaration.

 
Simula Standard: Chapter 5. Declarations
 
   declaration
      = simple-variable-declaration
      | array-declaration
      | switch-declaration
      | procedure-declaration
      | class-declaration
      | external-declaration
 

This class is prefix to DeclarationScope, ExternalDeclaration, Parameter, SimpleVariableDeclaration, VirtualSpecification, VirtualMatch, ArrayDeclaration

Link to GitHub: Source File.

Author:
Øystein Myhre Andersen
  • Field Details

    • type

      public Type type
      The type
    • isProtected

      public ProtectedSpecification isProtected
      Indicates that this declaration is protected.
    • identifier

      public String identifier
      Simula Identifier from Source Text
    • externalIdent

      public String externalIdent
      External Identifier set by doChecking
    • declaredIn

      public DeclarationScope declaredIn
      The DeclarationScope in which this Declaration is defined.
    • declarationKind

      public int declarationKind
      The declarationKind.
  • Constructor Details

    • Declaration

      protected Declaration(String identifier)
      Create a new Declaration.
      Parameters:
      identifier - the given identifier
  • Method Details

    • getJavaIdentifier

      public final String getJavaIdentifier()
      Returns the Java identifier for this declaration.
      Returns:
      the Java identifier for this declaration
    • checkAlreadyDefined

      protected void checkAlreadyDefined()
      Check if a declaration with this identifier is already defined.
    • acceptDeclaration

      protected static boolean acceptDeclaration(BlockDeclaration enclosure)
      Parse a declaration and add it to the given declaration list.
      Parameters:
      enclosure - the owning block.
      Returns:
      true if a declaration was found, false otherwise
    • isCompatibleClasses

      public boolean isCompatibleClasses(Declaration other)
      Check if these classes are compatible.
      Parameters:
      other - the other ClassDeclaration
      Returns:
      the resulting boolean value
    • buildDeclaration

      public void buildDeclaration(ClassBuilder classBuilder, BlockDeclaration encloser)
      Output Java ByteCode. Treat Declaration.
      Parameters:
      classBuilder - the classBuilder to use.
      encloser - the owning block.
    • getFieldIdentifier

      public String getFieldIdentifier()
      ClassFile coding utility: get getFieldIdentifier.
      Returns:
      the resulting String.
    • buildInitAttribute

      public void buildInitAttribute(CodeBuilder codeBuilder)
      Output Java ByteCode. Build init code for an Attribute.
      Parameters:
      codeBuilder - the codeBuilder to use.
    • buildDeclarationCode

      public void buildDeclarationCode(CodeBuilder codeBuilder)
      Output Java ByteCode. Build declaration code for an Attribute.
      Parameters:
      codeBuilder - the codeBuilder to use.
    • verifyTree

      protected void verifyTree(Object head)
      Debug utility: verifyTree.
      Parameters:
      head - of the tree.