A beadandóhoz használandó programozási nyelv leírása (Basic, 2016 tavasz)

A félév során az alábbi programozási nyelvhez kell fordítóprogramot írni flex és bisonc++ segítségével.

A nyelv a Basic egyszerűsített változata. Az alábbi példaprogram a bemeneten kapott nemnegatív egész szám legkisebb valódi osztóját számolja ki.

Tesztfájlok letölthetőek!

REM Legkisebb valódi osztó meghatározása
INPUT a&
LET i& = 2
WHILE i& < a&
 IF a& MOD i& = 0 THEN
  PRINT i&
  END
 ENDIF
 LET i& = i& + 1
WEND

A nyelv definíciója

Karakterek

A forrásfájlok a következő ASCII karaktereket tartalmazhatják:

Minden más karakter esetén hibajelzést kell adnia a fordítónak, kivéve megjegyzések belsejében, mert ott tetszőleges karakter megengedett. A nyelv case-sensitive, azaz számít a kis és nagybetűk közötti különbség.

Kulcsszavak

A nyelv kulcsszavai a következők: INPUT, PRINT, LET, IF, THEN, ELSE, ENDIF, WHILE, WEND, REM, END, NOT

Változók

A változók nevei betűvel kezdődnek, betűkkel és számjegyekkel folytatódhatnak és a & karakterrel kell végződniük.

Valamennyi változó egész szám típusú, és nem kell deklarálni őket.

Típusok

Megjegyzések

A REM kulcsszótól kezdve a sor végéig. Megjegyzések a program tetszőleges pontján előfordulhatnak, a fordítást és a keletkező programkódot nem befolyásolják.

A program felépítése

A program utasítások sorozatából áll, és lehet üres is.

Kifejezések
Utasítások