Page 1 of 2
EBNF : De oplossing
Posted: Tue Oct 11, 2005 4:59 pm
by Arawn
EBNF Visualizer
Intro
This program visualizes EBNF (Extended Backus Naur Form) grammar rules as syntax diagrams. A text file with the suffix .ebnf is required, which contains grammar rules written in EBNF. The program parses the rules, visualizes them in form of syntax diagrams and is able to generate .gif files for further use (e.g. in Word or on Web pages). Furthermore the program allows users to manipulate the look and the layout of the generated syntax diagrams.
Screenshot
Download
Code: Select all
http://dotnet.jku.at/applications/Visualizer/EBNF-Visualizer.exe
ENJOY!
*Note:
Ik zou persoonlijk alle oplossingen op de pc maken met de visualizer maar daarna overtekenen op papier, zodat het niet zou opvallen
ALL HAIL ME!

(en de kerel die het mij verteld heeft, maar waarvan ik de naam niet weet)
Re: EBNF : De oplossing
Posted: Tue Oct 11, 2005 5:15 pm
by j0lle
Arawn wrote:EBNF Visualizer
(en de kerel die het mij verteld heeft, maar waarvan ik de naam niet weet)
sammy (of sam?)
jaja pwnij

Posted: Tue Oct 11, 2005 5:22 pm
by Arawn
Kem wa liggen kloten dermee en tis dus best simpel om te gebruiken
zij die het niet lukt even snel een tutorial:
Maak een txt file aan
Hernoemen naar .ebnf
schrijf in de ebnf file de EBNF code
Code: Select all
vb: Module = MODULE ident ";" [ImportList] DeclSeq [BEGIN StatementSeq] END ident ".".
=> Opgepast: altijd endigen met een punt! (zodat program weet wanneer het gedaan is)
Open EBNF Visualizer
File -> Load Grammar
Selecteer uw .ebnf filetje
Rules -> Selecteer de naam van het ding da ge hebt ingegeven in de .ebnf file
Posted: Tue Oct 11, 2005 5:40 pm
by Arawn
En voor de echte lamzakken:
Kheb die code's ingescand en in tekst omgezet zoda ge enkel moet copy pasten!
Code: Select all
Module = MODULE ident ";" [ImportList] DeclSeq [BEGIN
StatementSeq] END ident ".".
ImportList = IMPORT [ident ":_"] ident {"," [ident ":_"]
ident} ";".
DeclSeq = {CONST -[ConstDecl ";" } I TYPE {TypeDecl ";"}
I VAR {VarDecl ";"}} {ProcDecl ";" I ForwardDecl ";"}. ConstDecl = IdentDef ConstExpr.
TypeDecl = IdentDef Type.
VarDecl = IdentList Type.
ProcDecl = PROCEDURE [Receiver] IdentDef [FormalPars]
";" DeclSeq [BEGIN StatementSeq] END ident.
ForwardDecl = PROCEDURE "-" [Receiver] IdentDef
[FormalPars].
FormalPars = "(" [FPSection {";" FPSection}] ")"
[":" Qualident].
FPSection = [VAR] ident {"," ident} ":" Type. Receiver = "(" [VAR] ident ":" ident ")". Type = Qualident
I ARRAY [ConstExpr {"," ConstExpr}] OF Type
I RECORD ["("Qualident")"] FieldList {";" FieldList} END
I POINTER TO Type
I PROCEDURE [FormalPars].
FieldList = [IdentList ":" Type]. StatementSeq = Statement {";" Statement}. Statement = [ Designator Expr
I Designator ["(" [ExprList] ")"]
I IF Expr THEN StatementSeq {ELSIF Expr THEN StatementSeq}
[ELSE StatementSeq] END
I CASE Expr OF Case {"I" Case} [ELSE StatementSeq] END
I WHILE Expr DO StatementSeq END
I REPEAT StatementSeq UNTIL Expr
I FOR ident ":=" Expr TO Expr [BY ConstExpr] DO
StatementSeq END
I LOOP StatementSeq END
I WITH Guard DO StatementSeq {"I" Guard DO StatementSeq}
[ELSE StatementSeq] END I EXIT
I RETURN [Expr] ].
Case = [CaseLabels {"," CaseLabels} ":" StatementSeq]. CaseLabels = ConstExpr [".." ConstExpr]. Guard = Qualident ":" Qualident. ConstExpr = Expr.
Expr = SimpleExpr [Relation SimpleExpr]. SimpleExpr = ["+" I "-"] Term {AddDp Term}. Term = Factor {MulOp Factor}.
Factor = Designator ["(" [ExprList] ")"] I number
I character) string I NIL I Set I "(" Expr ")"
I "'" Factor.
Set = "{" [Element {"," Element}] "}".
Element = Expr [".." Expr].
Relation I "<" I "<_" I ">" I ">_" I IN I IS. AddOp = OR.
MulOp = DIV I MOD "&".
Designator = Qualident {"." ident I "[" ExprList "I"
I "'"I "(" Qualident ")"}.
ExprList = Expr {"," Expr}. IdentList = IdentDef {"," IdentDef}. Qualident = [ident "."] ident. IdentDef = ident [" * I "-"]ident = letter {letter I digit}.
letter = "a" I "b" I "c" I "d" "e" I "f" I "g" I "Y
I "illI "j" I ..k.. I ..1.. I ..m.. I ..n.. I ..o.. I ..p.. I "q"
I ..r.. I ,.S..I ..t.. I ..u.. I ..V.. I "W" I ,.x.. I ..y.. I "z"
"A" I "B" I "C" I "D" I "E" I 'Fl' "Gil "Hip
I ..I.. I "J" I ..K.. I ..L.. I ..M.. I "N" I ..D.. I ..p.. I ..Q"
I "R" I ..S..I "T" I ..U.. I "V" I ..W.. I ..X.. I ..y.. I "z"
digit = "Oil 1 11111 11211 11311 114" 11511 "611 "711
I "s" I "9"
number = integer I real.
integer = digit {digit} I digit {hexDigit} "H". real = digit {digit} "." {digit} [ScaleFactor]. ScaleFactor = ("E" I "D") ["+" I "-"] digit {digit}. hexDigit = digit I "A" "B" I "C" I "D" I "E" I "F". character = digit {hexDigit} "X".
string = ' ' {char} {char} "
Posted: Tue Oct 11, 2005 5:41 pm
by WiDeCr0w
hmm.. beetje heel handig?
Posted: Tue Oct 11, 2005 5:46 pm
by Arawn
Wel opletten af en toe pakt een een character verkeerd dus ik zou eens dubbel checken me uw cursus erbij!
Posted: Sat Oct 15, 2005 4:31 pm
by Nickman
Lol, heel da stuk van letter is fout

.
Met welk prog hebde da laten scannen?
En voor een of andere reden wilt die EBNF visualizer ni openen

Posted: Thu Nov 03, 2005 10:36 pm
by Krikke
niemand te laat?

Posted: Thu Nov 03, 2005 10:49 pm
by Norfolk
Moest da al binnen zijn?
Nene, heb ingediend

Posted: Thu Nov 03, 2005 11:01 pm
by j0lle
rofl :p
gisterenacht e

eeft er al iemand punte? :p
Posted: Thu Nov 03, 2005 11:50 pm
by EagleEye812
ik heb ! out of 0.0

:p
Posted: Fri Nov 04, 2005 5:46 pm
by Shinta
EagleEye812 wrote:ik heb ! out of 0.0

:p
ik ok tot nu toe

Posted: Fri Nov 04, 2005 6:00 pm
by Norfolk
zou hij die nu al verbeterd hebben?

Posted: Sat Nov 05, 2005 5:46 pm
by Yo_rik
Norfolk wrote:zou hij die nu al verbeterd hebben?


Ik denk van niet:
F. Arickx wrote:Portfolio evaluatie
– Uit de portfolio wordt een opdracht geselecteerd ter evaluatie
– Draagt ±2.5/20 bij voor de globale evaluatie van het vak

er wordt dus maar een opdracht verbeterd en waarschijnlijk besproken op het mondeling examen
Posted: Sat Nov 05, 2005 6:33 pm
by Arawn
das heel de clue van da ding, waarschijnlijk heeft da geen nut...
Enkel voor uzelf om te controleren of ge "proper" programmeert
En wa is de kans da ge geëvalueerd wordt op een stel tekeningeskes?
