equal
deleted
inserted
replaced
6 *) |
6 *) |
7 |
7 |
8 signature MARKUP = |
8 signature MARKUP = |
9 sig |
9 sig |
10 type property = string * string |
10 type property = string * string |
|
11 type T = string * property list |
11 val nameN: string |
12 val nameN: string |
|
13 val kindN: string |
12 val pos_lineN: string |
14 val pos_lineN: string |
13 val pos_nameN: string |
15 val pos_nameN: string |
14 type T = string * property list |
|
15 val none: T |
16 val none: T |
16 val indentN: string |
17 val indentN: string |
17 val blockN: string val block: int -> T |
18 val blockN: string val block: int -> T |
18 val breakN: string val break: int -> T |
19 val breakN: string val break: int -> T |
19 val fbreakN: string val fbreak: T |
20 val fbreakN: string val fbreak: T |
33 end; |
34 end; |
34 |
35 |
35 structure Markup: MARKUP = |
36 structure Markup: MARKUP = |
36 struct |
37 struct |
37 |
38 |
38 (* properties *) |
39 (* basic markup *) |
39 |
40 |
40 type property = string * string; |
41 type property = string * string; |
41 |
|
42 val nameN = "name"; |
|
43 val pos_lineN = "pos_line"; |
|
44 val pos_nameN = "pos_name"; |
|
45 |
|
46 |
|
47 (* markup *) |
|
48 |
|
49 type T = string * property list; |
42 type T = string * property list; |
50 |
43 |
51 val none = ("", []); |
44 val none = ("", []); |
52 |
45 |
|
46 val nameN = "name"; |
|
47 val kindN = "kind"; |
|
48 val pos_lineN = "pos_line"; |
|
49 val pos_nameN = "pos_name"; |
|
50 |
53 fun markup kind = (kind, (kind, []): T); |
51 fun markup kind = (kind, (kind, []): T); |
54 fun markup_name kind = (kind, fn name => (kind, [(nameN, name)]): T); |
52 fun markup_string kind prop = (kind, fn s => (kind, [(prop, s)]): T); |
55 fun markup_int kind prop = (kind, fn i => (kind, [(prop, string_of_int i)]): T); |
53 fun markup_int kind prop = (kind, fn i => (kind, [(prop, string_of_int i)]): T); |
56 |
54 |
57 |
55 |
58 (* pretty printing *) |
56 (* pretty printing *) |
59 |
57 |
66 val (fbreakN, fbreak) = markup "fbreak"; |
64 val (fbreakN, fbreak) = markup "fbreak"; |
67 |
65 |
68 |
66 |
69 (* logical entities *) |
67 (* logical entities *) |
70 |
68 |
71 val (classN, class) = markup_name "class"; |
69 val (classN, class) = markup_string "class" nameN; |
72 val (tyconN, tycon) = markup_name "tycon"; |
70 val (tyconN, tycon) = markup_string "tycon" nameN; |
73 val (constN, const) = markup_name "const"; |
71 val (constN, const) = markup_string "const" nameN; |
74 val (axiomN, axiom) = markup_name "axiom"; |
72 val (axiomN, axiom) = markup_string "axiom" nameN; |
75 |
73 |
76 |
74 |
77 (* inner syntax *) |
75 (* inner syntax *) |
78 |
76 |
79 val (sortN, sort) = markup "sort"; |
77 val (sortN, sort) = markup "sort"; |
81 val (termN, term) = markup "term"; |
79 val (termN, term) = markup "term"; |
82 |
80 |
83 |
81 |
84 (* outer syntax *) |
82 (* outer syntax *) |
85 |
83 |
86 val (keywordN, keyword) = markup_name "keyword"; |
84 val (keywordN, keyword) = markup_string "keyword" nameN; |
87 val (commandN, command) = markup_name "command"; |
85 val (commandN, command) = markup_string "command" nameN; |
88 |
86 |
89 |
87 |
90 (* toplevel *) |
88 (* toplevel *) |
91 |
89 |
92 val (promptN, prompt) = markup "prompt"; |
90 val (promptN, prompt) = markup "prompt"; |