Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /trunk/src/compiler/gen/opt/keywords.sml
ViewVC logotype

Diff of /trunk/src/compiler/gen/opt/keywords.sml

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

revision 1484, Sun Sep 4 14:35:20 2011 UTC revision 1485, Sun Sep 4 14:37:21 2011 UTC
# Line 38  Line 38 
38    
39    (*create a keyword lookup table*)    (*create a keyword lookup table*)
40      fun mkFind kws = let      fun mkFind kws = let
41          (*creates empty hastable*)          (* creates empty hashtable *)
42            val tbl = AtomTable.mkTable (17, Fail "keywords")            val tbl = AtomTable.mkTable (17, Fail "keywords")
43            fun ins (id) =let            fun ins id =let
44                val id=Atom.atom id                val id=Atom.atom id
45                                 in                                 in
46                AtomTable.insert tbl(id,T.OPER id)                AtomTable.insert tbl(id,T.OPER id)
               (*inserts into the table the operators and id*)  
47                end                end
48            val find = AtomTable.find tbl            val find = AtomTable.find tbl
49            fun idToken id = let            fun idToken id = let
50                  val id = Atom.atom id                  val id = Atom.atom id
51                  in                  in
52                    case find id                    case find id
53                     of NONE => T.ID id                     of NONE => T.ID id (* does not find the kw *)
54                                (* does not find the kw*)                      | SOME kw => kw (* finds the keywords*)
55                      | SOME kw => kw                    (* end case *)
                                  (*finds the keywords*)  
                   (* end case  
                    *)  
56                  end                  end
57            in            in
58              List.app ins kws; (*renames keywords to kws*)              List.app ins kws; (* seed hash table with keywords *)
59              idToken              idToken
60            end            end
61    

Legend:
Removed from v.1484  
changed lines
  Added in v.1485

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