Nyelvi specifikáció
<mondat> ::= <kifejezés 1200> <záró-pont>
<kifejezés N> ::= <op N fx> <köz> <kifejezés N-1> |
<op N fy> <köz> <kifejezés N> |
<kifejezés N-1> <op N xfx> <kifejezés N-1> |
<kifejezés N-1> <op N xfy> <kifejezés N> |
<kifejezés N> <op N yfx> <kifejezés N-1> |
<kifejezés N-1> <op N xf> |
<kifejezés N> <op N yf> |
<kifejezés N-1>
<kifejezés 1000> ::= <kifejezés 999>, <kifejezés 1000>
<kifejezés 0> ::= <név>(<argumentumok>) |
{A <név> és a nyitó zárójel közvetlenül egymás után kell álljon}
(<kifejezés 1200>) |
{<kifejezés 1200>} |
<lista> |
<név> |
<szám> |
<füzér> |
<változó>
<op N T> ::= <név>
{ha <név> N prioritású, T típusú operátorként lett deklarlva}
<argumentumok> ::= <kifejezés 999> |
<kifejezés 999>, <argumentumok>
<lista> ::= [] |
[<listakif>]
<listakif> ::= <kifejezés 999> |
<kifejezés 999>,<listakif> |
<kifejezés 999> |
<kifejezés 999>
<szám> ::= <előjeltelen szám> |
+ <előjeltelen szám> |
- <előjeltelen szám>
<előjeltelen szám> ::= <természetes szám> |
<lebegőpontos szám>
- Az N-t tartalmazó szabályt minden 1 és 1200 közötti számra fel kell írni.
- A <záró-pont> egy olyan pont jel, amit legalább egy nem látható karakter (szóköz, újsor,
tabulátor) követ.
- A <kifejezés N> szabályában szereplő <köz> legalább egy nem látható karaktert
jelöl, de csak abban az esetben, ha az őt követő kifejezés nyitó zárójellel kezdődik.
- A {<kifejezés>} szerkezet azonos a {}(<kifejezés>) struktúrával
- Egy <füzér> idézőjelek (") közé zárt karaktersorozat, általában a karakterek
kódjainak listájával azonos
- <név>-ként a következő jelsorozatok megengedettek
- kisbetűvel kezdődő alfanumerikus jelsorozat (ebben megengedve kis- és nagybetűt, számjegyeket és
aláhúzásjelet);
- egy vagy több ún. speciális jelből (+-*/\^<>=`~:.?@#$&) álló jelsorozat;
- az önmagában álló ! vagy ; jel;
- a [], {} jelpárok;
- aposztrófok (') közé zárt tetszőleges jelsorozat, amelyben \ jellel kezdődő
escape-szekvenciákat is elhelyezhetünk.
- Egy <változó> nagybetűvel vagy aláhúzással kezdődő alfanumerikus jelsorozat lehet.
- <természetes szám> lehet
- (decimális) számjegysorozat;
- 2, 8 és 16 alapú számrendszerben felírt szám, ilyenkor a számjegyeket rendre a 0b, 0o,
0x karakterekkel kell prefixálni;
- karakterkód-konstans 0'c alakban, ahol c egyetlen karakter, esetleg escape szekvencia
formájában megadva (az escape szekvenciák formája megegyezik a C nyelvben találhatókéval).
- A <lebegőpontos szám> mindenképpen tartalmaz tizedespontot, ennek mindkét oldalán legalább
egy számjeggyel. Az e vagy E betűvel jelzett exponens nem kötelező.
- Az egyes lexikai elemek között szabadon előfordulhatnak nem látható karakterek és megjegyzések. Kivétel:
a struktúrakifejezés neve és az azt követő nyitó zárójel között nem lehet más jel.
- A megjegyzések két alakja megengedett:
- A százalékjeltől (%) a sor végéig
- A /* jelpártól a legközelebbi */ jelpárig.
Linkek
- A Prolog nyelvről:
- A logikai programozásról és a mesterséges intelligenciáról:
- Érdemes még a következő oldalakra is ellátogatni: