SCM Repository
View of /trunk/src/compiler/parser/keywords.sml
Parent Directory
|
Revision Log
Revision 164 -
(download)
(annotate)
Tue Jul 20 18:56:04 2010 UTC (10 years, 7 months ago) by jhr
File size: 1577 byte(s)
Tue Jul 20 18:56:04 2010 UTC (10 years, 7 months ago) by jhr
File size: 1577 byte(s)
Added output state variables and stabilize methods
(* keywords.sml * * COPYRIGHT (c) 2010 The Diderot Project (http://diderot.cs.uchicago.edu) * All rights reserved. * * Diderot keywords. *) structure Keywords : sig val idToken : string -> DiderotTokens.token end = struct structure T = DiderotTokens val keywords = [ ("actor", T.KW_actor), ("bool", T.KW_bool), ("D", T.KW_D), ("die", T.KW_die), ("else", T.KW_else), ("field", T.KW_field), ("if", T.KW_if), ("image", T.KW_image), ("in", T.KW_in), ("inf", T.FLOAT FloatLit.posInf), ("initially", T.KW_initially), ("input", T.KW_input), ("int", T.KW_int), ("kernel", T.KW_kernel), ("nan", T.FLOAT FloatLit.nan), ("new", T.KW_new), ("output", T.KW_output), ("real", T.KW_real), ("stabilize", T.KW_stabilize), ("string", T.KW_string), ("tensor", T.KW_tensor), ("update", T.KW_update), ("vec2", T.KW_vec2), ("vec3", T.KW_vec3), ("vec4", T.KW_vec4) ] (* create a keyword lookup table *) local fun mkFind kws = let val tbl = AtomTable.mkTable (17, Fail "keywords") fun ins (id, tok) = AtomTable.insert tbl (Atom.atom id, tok) val find = AtomTable.find tbl fun idToken id = let val id = Atom.atom id in case find id of NONE => T.ID id | SOME kw => kw (* end case *) end in List.app ins kws; idToken end in (* return either a keyword token or an ID token *) val idToken = mkFind keywords end end
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |