SCM Repository
View of /branches/lamont/src/compiler/parser/keywords.sml
Parent Directory
|
Revision Log
Revision 2468 -
(download)
(annotate)
Fri Oct 11 18:46:28 2013 UTC (8 years, 7 months ago) by lamonts
File size: 2624 byte(s)
Fri Oct 11 18:46:28 2013 UTC (8 years, 7 months ago) by lamonts
File size: 2624 byte(s)
Committing updated global reduction code, removed spatial grid code (no variance)
(* keywords.sml * * COPYRIGHT (c) 2010 The Diderot Project (http://diderot-language.cs.uchicago.edu) * All rights reserved. * * Diderot keywords. *) structure Keywords : sig val idToken : string -> DiderotTokens.token end = struct structure T = DiderotTokens val keywords = [ ("bool", T.KW_bool), ("dead", T.KW_dead), ("die", T.KW_die), ("else", T.KW_else), ("false", T.KW_false), ("field", T.KW_field), ("foreach", T.KW_foreach), ("function", T.KW_function), ("global", T.KW_global), ("identity", T.KW_identity), ("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), ("load", T.KW_load), ("nan", T.FLOAT FloatLit.nan), ("new", T.KW_new), ("output", T.KW_output), ("print", T.KW_print), ("real", T.KW_real), ("return", T.KW_return), ("stabilize", T.KW_stabilize), ("strand", T.KW_strand), ("string", T.KW_string), ("tensor", T.KW_tensor), ("true", T.KW_true), ("update", T.KW_update), ("vec2", T.KW_vec2), ("vec3", T.KW_vec3), ("vec4", T.KW_vec4), ("zeros", T.KW_zeros) ] (* 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 |