Tässä luvussa kuvataan K-kielen syntaksi eli kirjoitussäännöt. K-kielen semantiikka eli merkitys kuvataan luvussa 3.
K-kielen varatut sanat, joita ei saa käyttää muuhun kuin kielen kiinnittämään tarkoitukseen, ovat seuraavat:
aliohjelma alku crc CGI_lue CGI_kuva CGI_laskuri ei edell ens endsql etsi etsi_ja_korvaa ja jokaiselle jos kaikki kentta keskeyta klo lista_etsi lista_kentta_aseta lista_kentta_lue lista_luo lista_lue lista_rivi_pois lista_rivi_uusi lista_selaa lopeta loppu luejono merkki muoto muuten niin null nykyinen osajono palauta pituus pvm_ero pvm_kasvatus pvm_muutos ruudulle select seuraava seur systeemikomento sql sql_date sql_debug tai tanaan tiedosto_sulje tiedostoon tiedostosta toisto_alkaa toisto_loppu toisto_loppuu tulosta tulostustiedosto versio viim yhteys_avaa yhteys_sulje yhteys_vaihda ymp_muuttuja
K-kielen perusalkiot ovat seuraavat:
LUKU yksi tai useampi numeroita (0-9), joiden joukossa voi olla korkeintaan yksi piste (.) Esim: 5 25 0.5 .1MJONO lainausmerkkien (") välissä yksi tai useampi seuraavista merkeistä: A-Z a-z 0-9 äöå ÄÖÅ +^=-?#%&/!><_.,;:*$()' Esim: "Aku Ankka" " " "Vaa'alla"
MUUTTUJA Dollari ($), jota seuraa yksi tai useampi kirjaimia (A-Z a-z) numeroita (0-9) ja alleviivauksia (_) Esim: $a $SopNro $koe1 $koe_1
K-kielisessä ohjelmassa voi lisäksi olla kommentteja, jotka ovat seuraavia muotoja:
/* kommentti */ voi esiintyä missä tahansa // kommentti rivin loppu kommenttia -- kommentti rivin loppu kommenttia
Seuraavassa on kuvattu K-kielisten ohjelmien muotosäännöt eli syntaksi. Kullekin syntaktiselle oliolle voi olla useita vaihtoehtoja, joista ensimmäinen on kaksoispisteen perässä ja seuraavat ö-kirjaimen perässä.
K_OHJELMA : LAUSEET lopeta ;
LAUSEET : ö LAUSEET LAUSE
LAUSE : SIJ_LAUSE ; ö JOS_LAUSE ö JOK_LAUSE ; ö PALAUTA_LAUSE ; ö TULOSTA_LAUSE ; ö RUUDULLE_LAUSE ; ö toisto_loppu ; ö keskeyta;
SIJ_LAUSE : MUUTTUJALISTA = LAUSEKE
LAUSEKE : ARITM_LAUSEKE ö ( LAUSEKE ) ö SELECT_LAUSEKE ö SQL_LAUSEKE ö STR_LAUSEKE ö FUNKTIO ö BOOLEN_LAUSEKE ö ALKIO
ALKIO : MUUTTUJA ö VAKIO
VAKIO : MJONO ö null ö LUKU
ARITM_LAUSEKE : LAUSEKE + LAUSEKE ö LAUSEKE - LAUSEKE ö LAUSEKE * LAUSEKE ö LAUSEKE / LAUSEKE ö LAUSEKE % LAUSEKE ö - LAUSEKE
STR_LAUSEKE : LAUSEKE :: LAUSEKE
MUUTTUJALISTA : MUUTTUJALISTA , MUUTTUJA ö MUUTTUJA
JOS_LAUSE : jos BOOLEN_LAUSEKE niin LOHKO_LAUSE ö jos BOOLEN_LAUSEKE niin LOHKO_LAUSE muuten LOHKO_LAUSE
LOHKO_LAUSE : << LAUSEET >> ö LAUSE BOOLEN_LAUSEKE : LAUSEKE <= LAUSEKE ö LAUSEKE >= LAUSEKE ö LAUSEKE = LAUSEKE ö LAUSEKE <> LAUSEKE ö LAUSEKE < LAUSEKE ö LAUSEKE > LAUSEKE ö LAUSEKE ja LAUSEKE ö LAUSEKE tai LAUSEKE
JOUKKO_LAUSEKE : kaikki ö nykyinen
SUUNTA_LAUSEKE : ens ö viim ö edell ö seur
JOK_LAUSE : jokaiselle LAUSEET seuraava
TOISTO_LAUSE : toisto_alkaa LAUSEET toisto_loppuu TULOSTA_LAUSE : tulosta TUL_LISTA
RUUDULLE_LAUSE : ruudulle TUL_LISTA
TUL_LISTA : TUL_LISTA , LAUSEKE ö LAUSEKE
SQL_LAUSEKE : sql MJONO endsql
SELECT_LAUSEKE : select MJONO endsql
PALAUTA_LAUSE : palauta PAL_LISTA
PAL_LISTA : PAL_LISTA , LAUSEKE ö LAUSEKE
FUNKTIO : sql_date ( LAUSEKE ) ö CGI_kuva ( LAUSEKE, LAUSEKE, LAUSEKE, LAUSEKE, LAUSEKE, LAUSEKE, LAUSEKE ) ö CGI_laskuri ( LAUSEKE , LAUSEKE, LAUSEKE ) ö CGI_lue ( LAUSEKE , LAUSEKE) ö crc ( LAUSEKE , LAUSEKE) ö pvm_muutos ( LAUSEKE , LAUSEKE , LAUSEKE ) ö pvm_ero ( LAUSEKE , LAUSEKE ) ö pvm_kasvatus ( LAUSEKE , LAUSEKE ) ö kentta ( LAUSEKE , LAUSEKE , LAUSEKE ) ö pituus ( LAUSEKE ) ö osajono ( LAUSEKE , LAUSEKE , LAUSEKE ) ö etsi ( LAUSEKE, LAUSEKE ) ö etsi_ja_korvaa ( LAUSEKE , LAUSEKE , LAUSEKE ) ö muoto ( LAUSEKE , LAUSEKE ) ö merkki ( LAUSEKE ) ö lista_luo ( LAUSEKE , LAUSEKE ) ö lista_lue ( LAUSEKE , LAUSEKE , LAUSEKE , LAUSEKE ) ö lista_selaa ( LAUSEKE , SUUNTA_LAUSEKE ) ö lista_etsi ( LAUSEKE , LAUSEKE , LAUSEKE ) ö lista_rivi_uusi ( LAUSEKE ) ö lista_rivi_pois ( LAUSEKE , JOUKKO_LAUSEKE ) ö lista_kentta_aseta ( LAUSEKE , LAUSEKE , LAUSEKE ) ö lista_kentta_lue ( LAUSEKE , LAUSEKE ) ö luejono ( LAUSEKE ) ö aliohjelma ( LAUSEKE ) ö systeemikomento ( LAUSEKE ) ö tanaan ö klo ö tiedostoon ( LAUSEKE , LAUSEKE ) ö tiedostosta ( LAUSEKE ) ö tulostustiedosto ( LAUSEKE ) ö sulje_tiedosto ( LAUSEKE ) ö yhteys_avaa ( LAUSEKE ) ö yhteys_vaihda ( LAUSEKE ) ö yhteys_sulje ( LAUSEKE ) ö ymp_muuttuja ( LAUSEKE ) ö versio