Jasmin kód azzal kezdődik, hogy megadjuk az információkat az osztályról, amit definiálunk (ahogy azt javában megszoktuk, minden osztály külön fájlba kerül). Egy tipikus Jasmin fájl a következő direktívákkal kezdődik:
.source <source-file>
.class <access-spec> <class-name>
.super <class-name>
Ez a direktíva opcionális. Megadja a forrásfájl nevét, amiben az osztály definiáltuk. Ha nem adjuk meg, akkor a Jasmin fájl nevét fogja kapni.
Megadja az osztály és az ősosztály nevét. Paramétereik a következő módon épülnek fel:
<class-name>
A teljes neve az osztálynak, ami tartalmazza a java csomagneveket is. Pl.: myPackage/MyClass
<acces-spec>
Ez definiálja az osztály hozzáférését és az egyéb attribútumait: public, private, abstract, final.
.class helyett használhatjuk ezt a direktívát is, amennyiben interface-t akarunk definiálni osztály helyett.
A három fent említett direktíva után felsorolhatjuk az esetleges implementált interface-eket, mindegyiket külön sorba, a következő módon:
.implements <class-name>
ahol a <class-name> megegyezik a .class direktívákban leírtakhoz.
Miután megadtuk az osztályra vonatkozó fejléc információkat, a következő lépés az adattagok definiálása. Ezt a következő módon tehetjük, adattagonként új sorban:
.field <access-spec> <field-name> <descriptor> [ =
ahol:
<acces-spec> a következő kulcsszavak lehetnek: public, private, protected, static, final, volatile, transient (szokásos java kulcsszavak);
<field-name> az adattag neve;
<descriptor> a típusleíró;
<value> a változó kezdőértéke.
Pl.: .field public static final PI F = 3.14
Az adattagok felsorolása után a fájl maradék része a metódusok leírása. Az általános forma a következő:
.method <access-spec> <method-spec>
<statements>
.end method
ahol:
<acces-spec> a javában megszokott láthatósági és meta információk: public, private, static, final, synchronized, native, abstract;
<method-spec> a metódusleíró (a nyelv szerkezeténél feltűntetett módon);
<statements> a metódus törzse, ami tartalmazza az utasításokat.
A metódusokat nem lehet egymásba ágyazni. Továbbá nincs implicit visszatérés. Ezt a return utasítás kiadásával érhetjük el.
Amennyiben absztrakt metódust kívánunk definiálni, akkor ezt a törzs elhagyásával tehetjük.
Ezeket csak a metódusokon belül használhatjuk.
A stack maximum méretét adhatjuk meg.
A lokális változók maximumát adhatjuk meg vele.
Ezzel adhatjuk meg azokat a kivételeket, amiket a metódus dobhat (checked exeptions). Minden egyes kivételt külön-külön direktívaként kell megadnunk.
Ez absztrakt metódusban is megadható.
Fejlesztés alatt