Permalink
Switch branches/tags
stable-20161113-115302 stable-20151214-102407 stable-20150506-095613 stable-20150401-084749 stable-20150126-161805 stable-20150120-095010 stable-20150120-091856 stable-20141219-150702 stable-20141029-170046 stable-20140715-165046 stable-20140530-090013 stable-20140521-143929 stable-20140509-113028 stable-20140509-110423 stable-20140415-165131 stable-20140414-164252 stable-20140414-144950 stable-20140414-131645 stable-20140408-135559 stable-20140408-132007 stable-20140408-115925 stable-20140408-093224 stable-20140401-201237 stable-20140121-151530 stable-20131109-100904 stable-20131029-195331 stable-20131029-122855 stable-20131029-112113 stable-20131017-152801 stable-20131011-075152 stable-20131011-063031 stable-20130921-135958 stable-20130916-144056 stable-20130913-105858 stable-20130910-194700 stable-20130829-132728 stable-20130715-164340 stable-20130704-153848 stable-20130704-142212 stable-20130619-100454 stable-20130613-130244 stable-20130611-165054 stable-20130610-140141 stable-20130610-132636 stable-20130503-165927 stable-20130502-102630 stable-20130416-220145 stable-20130413-115331 stable-20130411-234003 stable-20130410-214334 stable-20130402-171749 stable-20130320-170602 stable-20130314-105529 stable-20130308-184852 stable-20130227-171949 stable-20130225-155835 jenkins-Sireum-Update-Site-Stable-8 jenkins-Sireum-Update-Site-Stable-4 jenkins-Sireum-Update-Site-Stable-3 jenkins-Sireum-Update-Site-Stable-2 jenkins-Sireum-Update-Site-Stable-1 jenkins-Sireum-Update-Site-Dev-28 jenkins-Sireum-Update-Site-Dev-27 jenkins-Sireum-Update-Site-Dev-26 jenkins-Sireum-Update-Site-Dev-25 jenkins-Sireum-Update-Site-Dev-22 jenkins-Sireum-Update-Site-Dev-21 jenkins-Sireum-Update-Site-Dev-20 jenkins-Sireum-Update-Site-Dev-19 jenkins-Sireum-Update-Site-Dev-9 jenkins-Sireum-Update-Site-Dev-8 jenkins-Sireum-Update-Site-Dev-7 jenkins-Sireum-Update-Site-Dev-6 jenkins-Sireum-Update-Site-Dev-5 jenkins-Sireum-Update-Site-Dev-4 jenkins-Sireum-Update-Site-Dev-3 jenkins-Sireum-Update-Site-Dev-2 jenkins-Sireum-Dev-Update-Site-4 dev-20170105-002220 dev-20170104-002209 dev-20170103-002224 dev-20170102-002232 dev-20170101-002323 dev-20161231-002215 dev-20161230-002128 dev-20161229-002120 dev-20161228-002120 dev-20161227-002152 dev-20161226-002112 dev-20161225-002134 dev-20161224-002237 dev-20161223-002038 dev-20161222-002119 dev-20161221-002125 dev-20161220-002005 dev-20161219-002121 dev-20161218-002028 dev-20161217-002158 dev-20161216-002152 dev-20161215-002033
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
116 lines (94 sloc) 2.67 KB
type astnum = int
type idnum = int
type procnum = int
type typenum = int
type typedeclnum = astnum
type aspectnum = int
type typeuri = string
type type_table = {
tt_exptype_table: (astnum * typenum) list;
tt_typename_table: (typenum * (typeuri * typedeclnum option)) list
}
type literal =
| Integer_Literal of int
| Boolean_Literal of bool
type unary_operator =
| Not
| Unary_Minus
| Unary_Plus
type binary_operator =
| And
| Divide
| Equal
| Greater_Than
| Greater_Than_Or_Equal
| Less_Than
| Less_Than_Or_Equal
| Minus
| Multiply
| Not_Equal
| Or
| Plus
type type =
| Boolean
| Integer
type expression =
| E_Literal of astnum * literal
| E_Identifier of astnum * idnum
| E_Binary_Operation of astnum * binary_operator * expression * expression
| E_Unary_Operation of astnum * unary_operator * expression
type statement =
| S_Assignment of astnum * idnum * expression
| S_If of astnum * expression * statement
| S_While_Loop of astnum * expression * statement
| S_Sequence of astnum * statement * statement
| S_Return of astnum * (expression) option
| S_Assert of astnum * expression
| S_Loop_Invariant of astnum * expression
type mode =
| In
| Out
| In_Out
(* variables declarations in procedure/function *)
type object_declaration = {
declaration_astnum: astnum;
object_name: idnum;
object_nominal_subtype: typenum;
initialization_expression: (expression) option
}
type parameter_specification = {
parameter_astnum: astnum;
parameter_name: idnum;
parameter_subtype_mark: typenum;
parameter_mode: mode;
parameter_default_expression: (expression) option
}
type aspect_specification = {
aspect_astnum: astnum;
aspect_mark: aspectnum;
aspect_definition: expression
}
type procedure_body = {
procedure_astnum: astnum;
procedure_name: procnum;
procedure_contracts: aspect_specification list;
procedure_parameter_profile: parameter_specification list;
procedure_declarative_part: object_declaration list;
procedure_statements: statement
}
type function_body = {
function_astnum: astnum;
function_name: procnum;
function_result_subtype: type;
function_contracts: aspect_specification list;
function_parameter_profile: parameter_specification list;
function_declarative_part: object_declaration list;
function_statements: statement
}
type subprogram =
| Procedure of astnum * procedure_body
| Function of astnum * function_body
type library_unit_declaration =
| Library_Subprogram of astnum * subprogram
type compilation_unit =
| Library_Unit of astnum * library_unit_declaration * type_table