blob: 1b0606a66a0e06c1c5b7397f1e3f1de31f3a0651 (
plain)
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
// ----------------------------------------------------------------------------
// Boogie-PL
//
// Readme
// ws 5/9/03
// ----------------------------------------------------------------------------
This directory cointains the Boogie Procedural Language (BoogiePL)
implementataion and "1" sample program.
Scanner and parser are generated with Coco (ann LL1 parser generator for EBNFs)
(see http://www.ssw.uni-linz.ac.at/Research/Projects/Coco/CSharp/)
The input file is
BoogiePL.atg
then simply call
..\Coco\bin\Debug\Coco.exe BoogiePL.atg
it then uses (as input)
Scanner.frame
Parser.frame
as templates to generate an LL1 parser into
Scanner.cs
Parser.cs
as output
The Csharp excutable then contains
BoogiePL.cs -- main program
Absy -- abstract syntax for BoogiePL
Error.cs -- error handling (contains still some oldstuff)
Parser.cs -- generated parser
Scanner.cs -- generated scanner
PureCollections.cs -- sets/maps/tuples/ (contains still some oldstuff)
The directory Samples contains one parsing example
Parsing1.pl
Please check it for the syntax, alternatively consult BoogiePL.atg
Here is its output:
C:\Boogie> bin\debug\Boogiepl.exe samples\Parsing1.pl
Boogie Procedural Language Version 0.1 Copyright (c) Microsoft 2003
Parsing samples\Parsing1.pl <<<=== here is what is does
0 errors detected
Things left to do:
BoogiePL needs a tiny context analysis
checking names, updates, arities, OLD, etc.
(ws will do until 5/8)
BoogiePL Absy might be too flexible
simplify (if one things so..) (Mike/Rustan will do)
BoogiePL needs more examples/experiences
(all of us..)
|