Benutzer-Werkzeuge

Webseiten-Werkzeuge


Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
daedalus:ebnf [2015/08/18 22:15]
127.0.0.1 Externe Bearbeitung
daedalus:ebnf [2016/12/31 10:11] (aktuell)
milky-way update formatierung
Zeile 1: Zeile 1:
-== Syntaxnotation ==+====== Syntaxnotation ​======
 Die im folgenden verwendete Notation zur Beschreibung der Syntax nennt sich EBNF-Notation (Erweiterte Backus-Naur-Form). Es wurden die Regeln verwendet, wie sie im unten genannten Wikipedia-Artikel aufgeführt werden. Die im folgenden verwendete Notation zur Beschreibung der Syntax nennt sich EBNF-Notation (Erweiterte Backus-Naur-Form). Es wurden die Regeln verwendet, wie sie im unten genannten Wikipedia-Artikel aufgeführt werden.
  
 Weitergehende Informationen zu EBNF findet man hier: Weitergehende Informationen zu EBNF findet man hier:
-*http://​de.wikipedia.org/​wiki/​EBNF +[[http://​de.wikipedia.org/​wiki/​EBNF]] 
-*http://​www.cl.cam.ac.uk/​~mgk25/​iso-14977.pdf+[[http://​www.cl.cam.ac.uk/​~mgk25/​iso-14977.pdf]]
  
 Die folgende Grammatik ist höchstwahrscheinlich nicht vollständig. Die folgende Grammatik ist höchstwahrscheinlich nicht vollständig.
-Edit: Ich (Lehona), habe eine neue Version hochgeladen,​ die zu großen Teilen völlig neu geschrieben wurde und Daedalus wesentlich passender beschreibt, in der alten Version gab es schrecklick ​viele Unstimmigkeiten. Die Notation ist damit formal nicht ganz korrekt, ich habe mich eher an der boost::​spirit-Notation orientiert(der Stern für Wiederholung ist z.B. vor dem Ausdruck anstatt nach dem Ausdruck), aber eigentlich kompatibel. +Edit: Ich (Lehona), habe eine neue Version hochgeladen,​ die zu großen Teilen völlig neu geschrieben wurde und Daedalus wesentlich passender beschreibt, in der alten Version gab es schrecklich ​viele Unstimmigkeiten. Die Notation ist damit formal nicht ganz korrekt, ich habe mich eher an der boost::​spirit-Notation orientiert(der Stern für Wiederholung ist z.B. vor dem Ausdruck anstatt nach dem Ausdruck), aber eigentlich kompatibel.
- +
-== Schlüsselwörter ==+
  
 +===== Schlüsselwörter =====
 +<​code>​
 class       ​const ​      ​else ​       float      func         if class       ​const ​      ​else ​       float      func         if
  
Zeile 16: Zeile 16:
  
 string ​     this        var         ​void ​       string ​     this        var         ​void ​      
 +</​code>​
  
  
- +===== Lexikalik ​===== 
-== Lexikalik == +<​code>​
  ​identifier = (letter|"​_"​) ​ *( nondigit | digit );  ​identifier = (letter|"​_"​) ​ *( nondigit | digit );
  
Zeile 41: Zeile 41:
  
  float =  ["​+"​ | "​-"​] (+digit '​.'​ *digit | *digit '​.'​ +digit | +digit);  float =  ["​+"​ | "​-"​] (+digit '​.'​ *digit | *digit '​.'​ +digit | +digit);
-  +</​code>​
- +
-== [[Anchoer q4]]Ausdrücke ==+
  
 +===== Ausdrücke =====
 +<​code>​
  ​bool_op = "​||"​ | "&&"​ ;  ​bool_op = "​||"​ | "&&"​ ;
  
Zeile 72: Zeile 72:
  
  ​prim_expr =  *un_op (identifier["​."​identifier] | integer | call_statement) ;  ​prim_expr =  *un_op (identifier["​."​identifier] | integer | call_statement) ;
-  ​ +</​code>​ 
-==  Anweisungen == +=====  Anweisungen ​===== 
 +<​code>​
  ​statement_list = *(statement ";"​) ;  ​statement_list = *(statement ";"​) ;
  
Zeile 90: Zeile 90:
  
  ​call_statement = call_exp ";"​ ;  ​call_statement = call_exp ";"​ ;
 +</​code>​
  
- +=====  Deklarationen ​===== 
-==  Deklarationen == +<​code>​
  ​declaration_list = declaration *(","​ declaration) ;  ​declaration_list = declaration *(","​ declaration) ;
  
Zeile 115: Zeile 115:
  
  ​function_decl = "​func"​ identifier "​("​ [declaration_list] "​)"​ statement_block ;  ​function_decl = "​func"​ identifier "​("​ [declaration_list] "​)"​ statement_block ;
 +</​code>​
daedalus/ebnf.1439928935.txt.gz · Zuletzt geändert: 2016/12/31 10:11 (Externe Bearbeitung)