From f0198ebf9430d286ce7c9a53b703e967ce86481c Mon Sep 17 00:00:00 2001 From: lrg Date: Fri, 20 Oct 2006 10:38:22 +0000 Subject: interpreter for "little" git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@119 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- test/littlesemantics/little.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 test/littlesemantics/little.h (limited to 'test/littlesemantics/little.h') diff --git a/test/littlesemantics/little.h b/test/littlesemantics/little.h new file mode 100644 index 00000000..cbbd5185 --- /dev/null +++ b/test/littlesemantics/little.h @@ -0,0 +1,32 @@ +#include +#include + +typedef struct term { + short select; + union { + struct term **children; + int int_val; + char *string_val; + } term_body; +} term; + +term *true(); +term *false(); +term *numeral(int i); +term *variable(char *s); +char *variable_name(term *t); +int numeral_value(term *t); +term *variable_list(term *i1, term *i2); +term *greater(term *i1, term *i2); +term *addition(term *i1, term *i2); +term *skip(); +term *assignment(term *i1, term *i2); +term *sequence(term *i1, term *i2); +term *term_while(term *i1, term *i2); +term *variable_value(term *i1, term *i2); + +term *child(term *t, int rank); +term *lookup(term *env, char *var); +term *update(term *env, char *var_name, term *val); +term *evaluate(term *env, term *exp); +term *execute(term *env, term *inst); -- cgit