Kontextfreie Grammatik definieren

Neue Frage »

Auf diesen Beitrag antworten »
InformaTiger Kontextfreie Grammatik definieren

Guten Tag,

ich arbeite derzeit an einer Grammatik für eine neue Sprache "JLLF", welche den Zweck haben soll Funktionssignaturen darzustellen. Ich habe allerdings keine Erfahrung mit EBNF welche ich zum Definieren meiner Sprache verwendet habe. Mein Lösungsansatz sieht derzeit so aus:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
digit := "0" | "1" | "2" | "3" | "4" | "5" | "6"
       | "7" | "8" | "9" ;
letter := "a" | "b" | "c" | "d" | "e" | "f" | "g"
       | "h" | "i" | "j" | "k" | "l" | "m" | "n"
       | "o" | "p" | "q" | "r" | "s" | "t" | "u"
       | "v" | "w" | "x" | "y" | "z" | "A" | "B"
       | "C" | "D" | "E" | "F" | "G" | "H" | "I"
       | "J" | "K" | "L" | "M" | "N" | "O" | "P"
       | "Q" | "R" | "S" | "T" | "U" | "V" | "W"
       | "X" | "Y" | "Z" ;
under_score := "_" ;
ident := under_score | letter, { ( digit | letter ) } ;
visibility := "public" | "protected" | "private"
           | "internal" ;
variability := "static" | "const" | "final" ;
behaviour := "synchronized" | "volatile" | "native" ;
modifier := visibility | variability | behaviour
         | "abstract" | "weak" | "unowned"
         | "owned" ;
primitive := "byte" | "int" | "int8"
          | "int16" | "int32" | "int64"
          | "uint" | "uint8" | "uint16"
          | "uint32" | "uint64" | "float"
          | "double" | "short" | "long"
          | "char" | "string" | "bool"
          | "boolean" | "size_t" | "ssize_t"
          | "time_t" ;
param := primitive | ident, ident ;
stmt := visibility, [ variability ], primitive | "void" | ident, ident, "(", { param, "," }, ")" ;


Was mir noch fehlt ist eine Definition von "derived data types" und mein Beispiel berücksichtigt auch nicht den Fall dass eine Funktion/Methode abstract sein kann oder bestimmte Modifizierer mehrfach vorkommen können. unglücklich

Wie könnte ich das korrekt formulieren?

Edit: im Anhang ein Beispiel, wie ich mir die fertige Sprache konkret vorstelle.

Mit freundlichen Grüßen
InformaTiger
 
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »