Skip to content
valenj18 edited this page Nov 21, 2012 · 13 revisions

Proti jazyku co zatim máme navržený to nepočítá s funkcemi mimo třídu a globálními proměnnými.

ClassFile

  • CLASS ID - uint16 - nevím jestli je nutné
  • CLASS NAME - char[25]
  • CONST POOL SIZE - uint16 - počet položek
  • CONST POOL - Const pool struct[CONST POOL SIZE]
  • FIELD COUNT - uint8
  • METHOD COUNT - uint8
  • METHODS - METHOD[METHOD COUNT]

Const pool struct

Různé typy struktur označené tagem uint8.

MethodRef

(Neobsahuje odkaz na metodu. Ten se zjišťuje dynamicky z typu proměnné. Typy parametrů nejsou potřeba.)

  • TAG - 1
  • NAME - char[25]
  • PARAM COUNT - uint8

ClassRef

  • TAG - 2
  • NAME - char[25]
  • CLASS ID - uint16

StringConst

  • TAG - 3
  • LENGTH - uint16
  • VALUE - char[LENGTH]

IntConst

  • TAG - 4
  • VALUE - uint32

RealConst

  • TAG - 5
  • VALUE - double

Method

  • NAME - char[25]
  • FLAG - uint8 - metoda třídy 0, metoda objektu 1
  • PARAM COUNT - uint8
  • LOCALS COUNT - uint8
  • CODE SIZE - uint16
  • CODE - char[CODE SIZE]
Clone this wiki locally