org.kiama.example.minijava

JVMTree

object JVMTree

Module containing tree structures for representing JVM programs. Not all features of the JVM are expressible with this representation.

Source
JVMTree.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. JVMTree
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. case class Aload(loc: Int) extends JVMInstr with Product with Serializable

    JVM instructions.

    JVM instructions. See JVM documentation for descriptions.

    This list does not include all available instructions. To add a new one, just add it as a case class whose name is the instruction name with at least a starting capital letter.

    The arguments of the case class should be the instruction operands in the order in which they must appear in an instruction instance.

    The stackChange value must be the net change in stack elements when an instance of this instruction runs. E.g., zero means there is no change, whereas a stack change of one means that there is one more element on the operand stack after the instruction has executed than there is before.

  2. case class Areturn() extends JVMInstr with Product with Serializable

  3. case class ArrayLength() extends JVMInstr with Product with Serializable

  4. case class Astore(loc: Int) extends JVMInstr with Product with Serializable

  5. case class Bipush(num: Int) extends JVMInstr with Product with Serializable

  6. case class ClassFile(source: String, name: String, superclassname: String, fields: Seq[JVMField], methods: Seq[JVMMethod]) extends Product with Serializable

    A class file defining a JVM class.

    A class file defining a JVM class. source gives the name of the source file from which this class file comes. name gives the name of the class that is being defined, and superClass is the name of the super class of this class. fields and methods define the components of the class.

  7. case class Dup() extends JVMInstr with Product with Serializable

  8. case class GetField(name: String, tipe: JVMType) extends JVMInstr with Product with Serializable

  9. case class GetStatic(name: String, tipe: JVMType) extends JVMInstr with Product with Serializable

  10. case class Goto(label: String) extends JVMInstr with Product with Serializable

  11. case class Iadd() extends JVMInstr with Product with Serializable

  12. case class Iaload() extends JVMInstr with Product with Serializable

  13. case class Iastore() extends JVMInstr with Product with Serializable

  14. case class Iconst_0() extends JVMInstr with Product with Serializable

  15. case class Iconst_1() extends JVMInstr with Product with Serializable

  16. case class Iconst_2() extends JVMInstr with Product with Serializable

  17. case class Iconst_3() extends JVMInstr with Product with Serializable

  18. case class Iconst_4() extends JVMInstr with Product with Serializable

  19. case class Iconst_5() extends JVMInstr with Product with Serializable

  20. case class Iconst_m1() extends JVMInstr with Product with Serializable

  21. case class If_icmpge(label: String) extends JVMInstr with Product with Serializable

  22. case class Ifeq(label: String) extends JVMInstr with Product with Serializable

  23. case class Ifne(label: String) extends JVMInstr with Product with Serializable

  24. case class Iload(loc: Int) extends JVMInstr with Product with Serializable

  25. case class Imul() extends JVMInstr with Product with Serializable

  26. case class InvokeSpecial(spec: JVMMethodSpec) extends JVMInstr with Product with Serializable

  27. case class InvokeVirtual(spec: JVMMethodSpec) extends JVMInstr with Product with Serializable

  28. case class Ireturn() extends JVMInstr with Product with Serializable

  29. case class Istore(loc: Int) extends JVMInstr with Product with Serializable

  30. case class Isub() extends JVMInstr with Product with Serializable

  31. case class JVMArrayType(elemType: JVMType) extends JVMType with Product with Serializable

    A JVM array with the given element type.

  32. case class JVMBooleanType() extends JVMType with Product with Serializable

    The Boolean type.

  33. case class JVMClassType(name: String) extends JVMType with Product with Serializable

    A class type.

  34. case class JVMField(name: String, tipe: JVMType) extends Product with Serializable

    A field in the class.

  35. sealed abstract class JVMInstr extends Product

    Base class for JVM instructions.

    Base class for JVM instructions. stackChange records the number of elements by which the stack changes after execution of an instruction of this type. Thus, zero means no change, a positive value means an increase in stack size, and a negative value means a decrease in stack size.

  36. case class JVMIntType() extends JVMType with Product with Serializable

    The integer type.

  37. case class JVMMethod(spec: JVMMethodSpec, isStatic: Boolean, instrs: Seq[JVMInstr]) extends Product with Serializable

    A method in the class.

  38. case class JVMMethodSpec(name: String, argTypes: Seq[JVMType], retType: JVMType) extends Product with Serializable

    A method specification.

  39. case class JVMStringType() extends JVMType with Product with Serializable

    The string type.

  40. sealed abstract class JVMType extends AnyRef

    Base class for JVM types.

  41. case class JVMVoidType() extends JVMType with Product with Serializable

    The void type.

  42. case class Label(label: String) extends JVMInstr with Product with Serializable

    A special instruction to mark the position of a label.

    A special instruction to mark the position of a label. These will be output symbolically by the compiler but then replaced with offsets by the assembler.

  43. case class Ldc(num: Int) extends JVMInstr with Product with Serializable

  44. case class New(className: String) extends JVMInstr with Product with Serializable

  45. case class NewArray(elemtype: String) extends JVMInstr with Product with Serializable

  46. case class PutField(name: String, tipe: JVMType) extends JVMInstr with Product with Serializable

  47. case class Return() extends JVMInstr with Product with Serializable

Value Members

  1. final def !=(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  5. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  10. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  11. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  13. final def notify(): Unit

    Definition Classes
    AnyRef
  14. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  15. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  16. def toString(): String

    Definition Classes
    AnyRef → Any
  17. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped