A++ mit Erweiterungen (EBNF)


$\displaystyle \flq expression\frq\ $ $\textstyle ::=$ $\displaystyle \flq abstraction\frq\ \vert$  
    $\displaystyle \flq reference\frq\ \vert$  
    $\displaystyle \flq synthesis\frq\ \vert$  
    $\displaystyle \flq predefined\: abstraction\frq\ $  
$\displaystyle \flq abstraction\frq\ $ $\textstyle ::=$ $\displaystyle '(' \: define \: \flq variable\frq\ \: \flq expression\frq\ \: ')' \: \vert$  
    $\displaystyle '(lambda (' \: \{ \flq variable \frq\ \} \: ')'$  
    $\displaystyle \flq expression\frq\ \: \{ \: \flq expression\frq\ \} \: ')'$  
$\displaystyle \flq reference\frq\ $ $\textstyle ::=$ $\displaystyle \flq variable\frq\ $  
$\displaystyle \flq synthesis\frq\ $ $\textstyle ::=$ $\displaystyle '(' \: \flq operator \: expression\frq\ \: \{ \flq expression\frq\ \} \: ')'$  
$\displaystyle \flq variable\frq\ $ $\textstyle ::=$ $\displaystyle \flq symbol\frq\ $  
$\displaystyle \flq operator \: expression\frq\ $ $\textstyle ::=$ $\displaystyle \flq abstraction\frq\ \: \vert \: \flq reference\frq\ \: \vert \: \flq synthesis\frq\ \vert$  
    $\displaystyle \flq predefined \: operation\frq\ $  
$\displaystyle \flq predefined\: abstraction\frq\ $ $\textstyle ::=$ $\displaystyle \flq predefined \: value\frq\ \vert$  
    $\displaystyle \flq predefined \: operation\frq\ $  
$\displaystyle \flq predefined \: value\frq\ $ $\textstyle ::=$ $\displaystyle \flq vmzero\frq\ \vert \flq vmtrue\frq\ \vert \flq vmfalse\frq\ \vert$  
    $\displaystyle \flq double \: quoted \: string\frq\ \vert \flq single \: quoted \: string\frq\ $  
$\displaystyle \flq double \: quoted \: string\frq\ $ $\textstyle ::=$ $\displaystyle '\dq' \flq string\frq\ '\dq'$  
$\displaystyle \flq single \: quoted \: string\frq\ $ $\textstyle ::=$ $\displaystyle ''' \flq string\frq\ $  
$\displaystyle \flq predefined \: operation\frq\ $ $\textstyle ::=$ $\displaystyle \flq incr\frq\ \vert \flq print\frq\ \vert \flq load\frq\ \vert \flq equalx\frq\ \vert \flq quit\frq\ $  

Abbildung 3: A++ mit vorgegebenen Primitiv-Operationen
\includegraphics[scale=0.75]{../../images/arsx.eps}


Georg Loczewski 2003-08-07