A C-- programozási nyelv

Nyelvi elemek

Jelkészlet

Egy C-- program forráskódja kizárólag ASCII karakterekből állhat.

Azonosítók

Minden karaktersorozat, amely betűket, számokat, _ jeleket, pontokat, $ jeleket és @ jeleket tartalmaz érvényes azonosító, kivéve a nyelv számára lefoglalt szavakat és a számmal kezdődő karaktersorozatokat. A kis- és nagybetűket megkülönböztetjük.

Literálok

Egész literálok

A következő EBNF nyelvtan definiálja az egész literálok szintakszisát:

int => (signed-int | unsigned-int) [:: type] signed-int => [-]dec unsigned-int => hex | oct | dec (u | U) | 0 (u | U) decdigit => 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 hexdigit => decdigit | a | b | c | d | e | f | A | B | C | D | E | F octdigit => 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 dec => (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9) {decdigit{ hex => 0 (x | X) hexdigit {hexdigit} oct => 0 {octdigit}

Példák szintaktikailag helyes egész literálokra:

Lebegőpontos literálok

A következő EBNF nyelvtan definiálja a lebegőpontos literálok szintakszisát:

float => {decdigit} . {decdigit} [exp] [:: type] | {decdigit} exp [:: type] exp => (e | E) [+ | -] {decdigit}

Példák szintaktikailag helyes lebegőpontos literálokra:

Karakter literálok

character => ' char ' [:: type] char => printable character | \escape

Sztring literálok

string => " {printable character} "

Lefoglalt szavak

A következő azonosítók a nyelv számára lefoglaltak és nem használhatók C-- azonosítóként:

aborts align aligned also as big bits byteorder case const continuation cut cuts else equal export foreign goto if import in invariant invisible jump little memsize pragma reads register return returns section semi span stackdata switch target targets to typedef unicode unwinds writes

Megjegyzések

Megjegyzések létrehozására kétféle lehetőségünk van:

// Egysoros komment /* Többsoros komment */