Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /pgraph/releases/release-110.64/scan.sml
ViewVC logotype

Diff of /pgraph/releases/release-110.64/scan.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 975, Wed Oct 31 20:22:44 2001 UTC revision 977, Wed Nov 14 16:53:16 2001 UTC
# Line 126  Line 126 
126          fun def s =          fun def s =
127              case maybeident s of              case maybeident s of
128                  SOME ("val", s) =>                  SOME ("val", s) =>
129                  let val s = allof [expect #"(", expectId "C", expect #","] s                  let val s = allof [expect #"(", expectId "c", expect #","] s
130                      val (lhs, s) = ident s                      val (lhs, s) = ident s
131                      val s = allof [expect #")", expect #"="] s                      val s = allof [expect #")", expect #"="] s
132                      val (f, s) = ident s                      val (f, s) = ident s
133                      val s = expectId "C" s                      val s = expectId "c" s
134                      fun def (rhs, s) =                      fun def (rhs, s) =
135                          SOME (P.DEF { lhs = lhs, rhs = rhs }, s)                          SOME (P.DEF { lhs = lhs, rhs = rhs }, s)
136                      fun comp native = let                      fun comp native = let
# Line 138  Line 138 
138                          val (e, s) = ident s                          val (e, s) = ident s
139                          val (ss, s) = ident s                          val (ss, s) = ident s
140                      in                      in
141                          def (P.COMPILE { src = r, env = e,                          def (P.COMPILE { src = (r, native),
142                                           syms = ss, native = native }, s)                                           env = e, syms = ss },
143                                 s)
144                      end                      end
145                  in                  in
146                      case f of                      case f of
147                          "SYMS" => let                          "syms" => let
148                              val (l, s) = varlist s                              val (l, s) = varlist s
149                          in                          in
150                              def (P.SYMS l, s)                              def (P.SYMS l, s)
151                          end                          end
152                        | "IMPORT" => let                        | "import" => let
153                              val (l, s) = ident s                              val (l, s) = ident s
154                              val (ss, s) = ident s                              val (ss, s) = ident s
155                          in                          in
156                              def (P.IMPORT { lib = l, syms = ss }, s)                              def (P.IMPORT { lib = l, syms = ss }, s)
157                          end                          end
158                        | "COMPILE" =>  comp false                        | "compile" =>  comp false
159                        | "NCOMPILE" => comp true                        | "ncompile" => comp true
160                        | "MERGE" => let                        | "merge" => let
161                              val (l, s) = varlist s                              val (l, s) = varlist s
162                          in                          in
163                              def (P.MERGE l, s)                              def (P.MERGE l, s)
164                          end                          end
165                        | "FILTER" => let                        | "filter" => let
166                              val (e, s) = ident s                              val (e, s) = ident s
167                              val (ss, s) = ident s                              val (ss, s) = ident s
168                          in                          in
169                              def (P.FILTER { env = e, syms = ss }, s)                              def (P.FILTER { env = e, syms = ss }, s)
170                          end                          end
171                        | "SYM" => let                        | "sym" => let
172                              val (ns, s) = string s                              val (ns, s) = string s
173                              val (n, s) = string s                              val (n, s) = string s
174                          in                          in
# Line 191  Line 192 
192              val (imports, s) = varlist s              val (imports, s) = varlist s
193              val s = allof [expect #"=", expect #">", expectId "let"] s              val s = allof [expect #"=", expect #">", expectId "let"] s
194              val (defs, s) = deflist s              val (defs, s) = deflist s
195              val s = allof [expectId "in", expectId "EXPORT", expectId "C"] s              val s = allof [expectId "in", expectId "export", expectId "c"] s
196              val (export, s) = ident s              val (export, s) = ident s
197              (* gobble up remaining boilerplate... *)              (* gobble up remaining boilerplate... *)
198              val s = allof [expectId "end", expect #"|", expect #"_",              val s = allof [expectId "end", expect #"|", expect #"_",

Legend:
Removed from v.975  
changed lines
  Added in v.977

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0