SCM Repository
View of /trunk/src/compiler/parser/parse-tree.sml
Parent Directory
|
Revision Log
Revision 381 -
(download)
(annotate)
Tue Oct 5 21:42:17 2010 UTC (11 years, 9 months ago) by jhr
File size: 2315 byte(s)
Tue Oct 5 21:42:17 2010 UTC (11 years, 9 months ago) by jhr
File size: 2315 byte(s)
Working on adding slice notation and fixed precedence of differentiation
(* parse-tree.sml * * COPYRIGHT (c) 2010 The Diderot Project (http://diderot.cs.uchicago.edu) * All rights reserved. * * Diderot parse-tree representation. *) structure ParseTree = struct type 'a mark = 'a Error.mark type var = Atom.atom type dim = IntInf.int datatype program = Program of decl list mark and decl = D_Mark of decl mark | D_Input of ty * var * expr option (* input variable decl with optional default *) | D_Var of var_decl (* global variable decl *) | D_Actor of { (* actor decl *) name : var, params : param list, state : (bool * var_decl) list, (* state variables; true means output *) methods : method list } | D_InitialArray of create * iter list | D_InitialCollection of create * iter list and param = P_Mark of param mark | P_Param of ty * var and ty = T_Mark of ty mark | T_Bool | T_Int | T_Real | T_String | T_Vec of dim | T_Kernel of dim | T_Field of {diff : dim, dim : dim, shape : dim list} | T_Tensor of dim list | T_Image of {dim : dim, shape : dim list} | T_Array of ty * dim list and var_decl = VD_Mark of var_decl mark | VD_Decl of ty * var * expr and method = M_Mark of method mark | M_Method of var * stmt and create = C_Mark of create mark | C_Create of (var * expr list) and iter = I_Mark of iter mark | I_Range of var * expr * expr and stmt = S_Mark of stmt mark | S_Block of stmt list | S_Decl of var_decl | S_IfThen of expr * stmt | S_IfThenElse of expr * stmt * stmt | S_Assign of var * expr | S_New of var * expr list | S_Die | S_Stabilize and expr = E_Mark of expr mark | E_Var of var | E_Lit of Literal.literal | E_OrElse of expr * expr | E_AndAlso of expr * expr | E_Cond of expr * expr * expr (* e1 'if' e2 'else' e3 *) | E_BinOp of expr * var * expr | E_UnaryOp of var * expr | E_Slice of expr * expr option list | E_Tuple of expr list | E_Apply of var * expr list | E_Cons of expr list (* tensor construction *) | E_Real of expr (* int to real conversion *) end
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |