Class BlockStatement


public final class BlockStatement extends Statement

BlockStatement.

Simula Standard: 4.10 Blocks

  block
     = subblock
     | prefixed-block
     
        subblock = BEGIN declaration { ; declaration } ; statement { ; statement } END
        
        prefixed-block
           = block-prefix main-block
           
           block-prefix
              = class-identifier [ actual-parameter-part ]
              
           main-block
           
              = block
              | BEGIN statement { ; statement } END

Link to GitHub: Source File.

Author:
SIMULA Standards Group, Øystein Myhre Andersen
  • Field Details

    • blockDeclaration

      private BlockDeclaration blockDeclaration
      The associated block declaration.
  • Constructor Details

    • BlockStatement

      public BlockStatement(BlockDeclaration blockDeclaration)
      Create a new BlockStatement.
      Parameters:
      blockDeclaration - the BlockDeclaration
    • BlockStatement

      private BlockStatement()
      Default constructor used by Attribute File I/O
  • Method Details

    • isCompoundStatement

      boolean isCompoundStatement()
      Check if this BlockStatement is a CompoundStatement.
      Returns:
      true if this BlockStatement is a CompoundStatement
    • doChecking

      public void doChecking()
      Description copied from class: SyntaxClass

      Perform semantic checking.

      This must be redefined in every subclass.

      Overrides:
      doChecking in class SyntaxClass
    • addLeadingLabel

      void addLeadingLabel(String labelcode)
      Add a leading label to this BlockStatement.
      Parameters:
      labelcode - the label code
    • doJavaCoding

      public void doJavaCoding()
      Description copied from class: SyntaxClass
      Output Java code.
      Overrides:
      doJavaCoding in class Statement
    • buildByteCode

      public void buildByteCode(CodeBuilder codeBuilder)
      Description copied from class: Statement
      Build Java ByteCode.
      Overrides:
      buildByteCode in class Statement
      Parameters:
      codeBuilder - the codeBuilder to use.
    • print

      public void print(int indent)
      Description copied from class: SyntaxClass
      Utility print method.
      Overrides:
      print in class SyntaxClass
      Parameters:
      indent - number of spaces leading the line
    • printTree

      public void printTree(int indent, Object head)
      Description copied from class: SyntaxClass
      Utility print syntax tree method.
      Overrides:
      printTree in class SyntaxClass
      Parameters:
      indent - number of spaces leading the lines
      head - the head of the tree.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • writeObject

      public void writeObject(AttributeOutputStream oupt) throws IOException
      Description copied from class: SyntaxClass
      Write a SyntaxClass object to a AttributeOutputStream.
      Overrides:
      writeObject in class SyntaxClass
      Parameters:
      oupt - the AttributeOutputStream to write to.
      Throws:
      IOException - if something went wrong.
    • readObject

      public static BlockStatement readObject(AttributeInputStream inpt) throws IOException
      Read and return a BlockStatement object.
      Parameters:
      inpt - the AttributeInputStream to read from
      Returns:
      the BlockStatement object read from the stream.
      Throws:
      IOException - if something went wrong.