Index: src/Tests/Expect-v/Abstype.txt
===================================================================
--- src/Tests/Expect-v/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,138 @@
+T: type
+  with assertions
+    x: function
+        with parameters
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T (not function type) 
+      _src: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+y: function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of t_instance: instance of type T (not function type) 
+                  Return Statement, returning: Applying untyped: 
+    Name: x
+...to: 
+    Name: t
+
+
+
+*?: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+?++: function
+    with parameters
+      pointer to signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+U: type for pointer to signed int 
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type U (not function type) 
+      _src: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type U (not function type) 
+
+    to:
+      pointer to pointer to signed int 
+    Cast of:
+      Variable Expression: _src: instance of type U (not function type) 
+
+    to:
+      pointer to signed int 
+
+
+
+x: function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of u_instance: instance of type U (not function type) with initializer 
+          Simple Initializer:             Name: u
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: u_instance
+                Name: u
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?++
+            ...to: 
+                Address of:
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Name: u
+
+                  Return Statement, returning: Name: u
+
+
+
+break_abstraction: function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Name: u
+
+
+
Index: src/Tests/Expect-v/Array.txt
===================================================================
--- src/Tests/Expect-v/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,50 @@
+a1: open array of signed int 
+a2: variable length array of signed int 
+a4: array of double with dimension of constant expression 3.0 double 
+m1: open array of array of signed int with dimension of constant expression 3 signed int 
+m2: variable length array of variable length array of signed int 
+m4: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of a1: open array of signed int 
+        Declaration of a2: variable length array of signed int 
+        Declaration of a4: array of signed int with dimension of constant expression 3 signed int 
+        Declaration of T: array of signed int with dimension of constant expression 3 signed int 
+
+mary: function
+    with parameters
+      T: pointer to array of constant expression 3 signed int signed int 
+      p1: const pointer to array of constant expression 3 signed int signed int 
+      p2: pointer to static array of constant expression 3 signed int signed int 
+      p3: const pointer to static array of constant expression 3 signed int signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+tom: function
+      accepting unspecified arguments
+    returning 
+      pointer to array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+jane: function
+      accepting unspecified arguments
+    returning 
+      pointer to function
+          with parameters
+            T: pointer to array of constant expression 3 signed int signed int 
+            p1: const pointer to array of constant expression 3 signed int signed int 
+            p2: pointer to static array of constant expression 3 signed int signed int 
+            p3: const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
Index: src/Tests/Expect-v/AsmName.txt
===================================================================
--- src/Tests/Expect-v/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,11 @@
+x: auto signed int 
+fred: function
+    with parameters
+      x: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of y: static signed int 
+        Declaration of z: static pointer to signed int 
+
Index: src/Tests/Expect-v/Attributes.txt
===================================================================
--- src/Tests/Expect-v/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Error at line 8 reading token "*"
Index: src/Tests/Expect-v/Cast.txt
===================================================================
--- src/Tests/Expect-v/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,55 @@
+f: char 
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: char 
+        Declaration of f: double 
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              signed int 
+
+        Declaration of f: short signed int 
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              signed int 
+
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    nothing 
+
+
+                  Expression Statement:
+            Cast of:
+              Tuple:
+                                  Name: f
+
+                                  Name: f
+
+                                  Name: f
+
+
+            to:
+              long signed int 
+              long double 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    nothing 
+
+
+
Index: src/Tests/Expect-v/CastError.txt
===================================================================
--- src/Tests/Expect-v/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,28 @@
+f: signed int 
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: signed int 
+        Declaration of f: double 
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              char 
+
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
Index: src/Tests/Expect-v/CharStringConstants.txt
===================================================================
--- src/Tests/Expect-v/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,131 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+constant expression ' ' char 
+                  Expression Statement:
+constant expression 'a' char 
+                  Expression Statement:
+constant expression '"' char 
+                  Expression Statement:
+constant expression '_' char 
+                  Expression Statement:
+constant expression '\a' char 
+                  Expression Statement:
+constant expression '\b' char 
+                  Expression Statement:
+constant expression '\e' char 
+                  Expression Statement:
+constant expression '\f' char 
+                  Expression Statement:
+constant expression '\n' char 
+                  Expression Statement:
+constant expression '\r' char 
+                  Expression Statement:
+constant expression '\t' char 
+                  Expression Statement:
+constant expression '\v' char 
+                  Expression Statement:
+constant expression '\'' char 
+                  Expression Statement:
+constant expression '\"' char 
+                  Expression Statement:
+constant expression '\?' char 
+                  Expression Statement:
+constant expression '\\' char 
+                  Expression Statement:
+constant expression '\0' char 
+                  Expression Statement:
+constant expression '\377' char 
+                  Expression Statement:
+constant expression '\xf' char 
+                  Expression Statement:
+constant expression '\xff' char 
+                  Expression Statement:
+constant expression '' char 
+                  Expression Statement:
+constant expression 'aa' char 
+                  Expression Statement:
+constant expression 'a\na' char 
+                  Expression Statement:
+constant expression 'a\0a' char 
+                  Expression Statement:
+constant expression '\xfff' char 
+                  Expression Statement:
+constant expression '_\377_' char 
+                  Expression Statement:
+constant expression '_\xff_' char 
+                  Expression Statement:
+constant expression '\xffff' char 
+                  Expression Statement:
+constant expression 'a\xff34w' char 
+                  Expression Statement:
+constant expression '\xff' char 
+                  Expression Statement:
+constant expression '\xffff' char 
+                  Expression Statement:
+constant expression " " array of char with dimension of constant expression 4 unsigned int 
+                  Expression Statement:
+constant expression "a" array of char with dimension of constant expression 4 unsigned int 
+                  Expression Statement:
+constant expression "'" array of char with dimension of constant expression 4 unsigned int 
+                  Expression Statement:
+constant expression '_' char 
+                  Expression Statement:
+constant expression "\a" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\b" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\e" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\f" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\n" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\r" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\t" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\v" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\'" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\"" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\?" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\\" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\0" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\377" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "\xf" array of char with dimension of constant expression 6 unsigned int 
+                  Expression Statement:
+constant expression "\xff" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "" array of char with dimension of constant expression 3 unsigned int 
+                  Expression Statement:
+constant expression "aa" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "a\na" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "a\0a" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "_\377_" array of char with dimension of constant expression 9 unsigned int 
+                  Expression Statement:
+constant expression "_\xff_" array of char with dimension of constant expression 9 unsigned int 
+                  Expression Statement:
+constant expression "\xff" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int 
+                  Expression Statement:
+constant expression "\xfff" array of char with dimension of constant expression 8 unsigned int 
+                  Expression Statement:
+constant expression "a\xff34w" array of char with dimension of constant expression 11 unsigned int 
+                  Expression Statement:
+constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int 
+
Index: src/Tests/Expect-v/CommentMisc.txt
===================================================================
--- src/Tests/Expect-v/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+i: signed int 
+i: signed int 
+i: signed int 
+i: signed int 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of x: array of signed int with dimension of constant expression 10 signed int 
+
Index: src/Tests/Expect-v/Constant0-1.txt
===================================================================
--- src/Tests/Expect-v/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,291 @@
+0: signed int 
+0: const signed int 
+0: static const signed int 
+1: signed int 
+1: const signed int 
+1: static const signed int 
+0: signed int 
+1: signed int 
+0: const signed int 
+1: const signed int 
+0: signed int 
+1: signed int 
+0: signed int 
+1: signed int 
+0: static const signed int 
+1: static const signed int 
+struct __anonymous0
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+0: instance of struct __anonymous0 
+struct __anonymous1
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous1 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+1: const instance of struct __anonymous1 
+struct __anonymous2
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous2 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+1: static const instance of struct __anonymous2 
+0: pointer to signed int 
+1: pointer to signed int 
+0: pointer to signed int 
+1: pointer to signed int 
+0: pointer to signed int 
+1: pointer to signed int 
+0: pointer to signed int 
+1: pointer to signed int 
+0: const pointer to signed int 
+1: const pointer to signed int 
+0: const pointer to signed int 
+1: const pointer to signed int 
+0: const pointer to signed int 
+1: const pointer to signed int 
+struct __anonymous3
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous3 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+0: pointer to instance of struct __anonymous3 
+x: pointer to signed int 
+0: pointer to signed int 
+x: const pointer to signed int 
+0: const pointer to signed int 
+x: static const pointer to signed int 
+0: static const pointer to signed int 
+struct __anonymous4
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous4 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+0: pointer to instance of struct __anonymous4 
+struct __anonymous5
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous5 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous5 
+
+
+
+0: const pointer to instance of struct __anonymous5 
+struct __anonymous6
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous6 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous6 
+
+
+
+0: static const pointer to instance of struct __anonymous6 
+x: static pointer to signed int 
+0: static pointer to signed int 
+x: static const pointer to signed int 
+0: static const pointer to signed int 
+x: const pointer to pointer to signed int 
+0: const pointer to pointer to signed int 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of 1: signed int 
+        Declaration of 0: pointer to signed int 
+        Declaration of x: pointer to signed int 
+        Declaration of 0: pointer to signed int 
+
Index: src/Tests/Expect-v/Context.txt
===================================================================
--- src/Tests/Expect-v/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,79 @@
+context has_q
+    with parameters
+      T: type
+
+    with members
+      q: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+
+f: forall
+      z: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type z (not function type) 
+                instance of type z (not function type) 
+              returning 
+                instance of type z (not function type) 
+
+          q: pointer to function
+              with parameters
+                instance of type z (not function type) 
+              returning 
+                instance of type z (not function type) 
+
+
+    function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of context has_r
+            with parameters
+              T: type
+              U: type
+
+            with members
+              r: function
+                  with parameters
+                    instance of type T (not function type) 
+                    pointer to function
+                        with parameters
+                          instance of type T (not function type) 
+                          instance of type U (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+                  returning 
+                    instance of type T (not function type) 
+
+
+        Declaration of x: auto type
+        Declaration of ?=?: automatically generated function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+        Declaration of y: auto type
+          with assertions
+            instance of context has_r 
+              with parameters
+                instance of type x (not function type) 
+                instance of type y (not function type) 
+
+
+        Declaration of ?=?: automatically generated function
+            with parameters
+              _dst: pointer to instance of type y (not function type) 
+              _src: instance of type y (not function type) 
+            returning 
+              instance of type y (not function type) 
+
+
Index: src/Tests/Expect-v/DeclarationErrors.txt
===================================================================
--- src/Tests/Expect-v/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous0
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous1
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Expect-v/DeclarationSpecifier.txt
===================================================================
--- src/Tests/Expect-v/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous8
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous9
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Expect-v/Enum.txt
===================================================================
--- src/Tests/Expect-v/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,26 @@
+enum Colors
+    with members
+      Red: const instance of enum Colors 
+      Yellow: const instance of enum Colors 
+      Pink: const instance of enum Colors 
+      Blue: const instance of enum Colors 
+      Purple: const instance of enum Colors 
+      Orange: const instance of enum Colors 
+      Green: const instance of enum Colors 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of enum Fruits
+            with members
+              Apple: const instance of enum Fruits 
+              Banana: const instance of enum Fruits 
+              Pear: const instance of enum Fruits 
+              Mango: const instance of enum Fruits 
+
+        Declaration of fruit: instance of enum Fruits with initializer 
+          Simple Initializer:             Name: Mango
+
+
Index: src/Tests/Expect-v/Exception.txt
===================================================================
--- src/Tests/Expect-v/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,60 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of x: signed int 
+                  Throw Statement, returning: constant expression 3 signed int 
+
+                  Throw Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: x
+constant expression 5 signed int 
+
+                  Try Statement
+            with block: 
+              CompoundStmt
+            and handlers: 
+              Catch Statement
+              ... catching
+i: signed int 
+
+                  Try Statement
+            with block: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?/?
+                    ...to: 
+                        Name: x
+constant expression 4 signed int 
+            and handlers: 
+              Catch Statement
+              ... catching
+signed int 
+              Catch Statement
+              ... catching
+x: signed int 
+              Catch Statement
+              ... catching
+struct __anonymous0
+              Catch Statement
+              ... catching
+x: instance of struct __anonymous1 
+              Catch Statement
+              ... catching
+x: pointer to instance of struct __anonymous2 
+              Catch Statement
+              ... catching
+pointer to instance of struct __anonymous3 
+              Catch Statement
+              ... catching
+x: pointer to instance of struct __anonymous4 
+              Catch Statement
+              ... catching
+                  the rest
+
+
Index: src/Tests/Expect-v/Expression.txt
===================================================================
--- src/Tests/Expect-v/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,365 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of struct s
+            with members
+              i: signed int 
+
+        Declaration of ?=?: automatically generated inline function
+            with parameters
+              _dst: pointer to instance of struct s 
+              _src: instance of struct s 
+            returning 
+              instance of struct s 
+            with body 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Member Expression, with field: 
+                            i: signed int 
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct s 
+                        Member Expression, with field: 
+                          i: signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct s 
+
+                                  Return Statement, returning: Variable Expression: _src: instance of struct s 
+
+
+
+        Declaration of p: pointer to instance of struct s 
+        Declaration of i: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: !?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ~?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: +?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: -?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: --?
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?++
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?--
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?-?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?*?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?/?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?%?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?^?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?&?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?|?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?==?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?!=?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<<?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>>?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<=?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>=?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+
+
+                  Expression Statement:
+            Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+
+
+                  Expression Statement:
+            Member Expression, with field: i            from aggregate:               Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?-=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?*=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?/=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?%=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?&=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?|=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?^=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<<=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>>=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Conditional expression on: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Name: i
+                    Name: 0
+
+              to:
+                signed int 
+            First alternative:
+              Name: i
+            Second alternative:
+              Name: i
+
+
+
Index: src/Tests/Expect-v/Forall.txt
===================================================================
--- src/Tests/Expect-v/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,731 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+g1: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        Declaration of f: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+        Declaration of h: function
+            with parameters
+              p: pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              nothing 
+
+        Declaration of x: signed int 
+        Declaration of y: pointer to function
+            returning 
+              nothing 
+
+        Declaration of z: char 
+        Declaration of w: float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: z
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: w
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: h
+            ...to: 
+                Applying untyped: 
+                    Name: f
+                ...to: 
+                    Name: y
+
+
+g2: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              nothing 
+
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type U (not function type) 
+            returning 
+              nothing 
+
+        Declaration of x: signed int 
+        Declaration of y: float 
+        Declaration of z: pointer to signed int 
+        Declaration of w: pointer to float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: x
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: z
+                Name: w
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: x
+                Name: z
+
+
+swap: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      left: instance of type T (not function type) 
+      right: instance of type T (not function type) 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of temp: instance of type T (not function type) with initializer 
+          Simple Initializer:             Name: left
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: temp
+                Name: left
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: left
+                Name: right
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: right
+                Name: temp
+
+
+context sumable
+    with parameters
+      T: type
+
+    with members
+      0: const instance of type T (not function type) 
+      ?+?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+      ?++: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+      ?+=?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+
+T1: type
+  with assertions
+    0: const instance of type T1 (not function type) 
+    ?+?: function
+        with parameters
+          instance of type T1 (not function type) 
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+    ?++: function
+        with parameters
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+    ?+=?: function
+        with parameters
+          instance of type T1 (not function type) 
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+T2: type
+  with parameters
+    P1: type
+    P2: type
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+T3: type
+  with assertions
+    instance of context sumable 
+      with parameters
+        instance of type T3 (not function type) 
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+struct __anonymous0
+    with members
+      i: instance of type P1 (not function type) 
+      j: instance of type P2 (not function type) 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: instance of type P1 (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    j: instance of type P2 (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+T2: type for instance of struct __anonymous0 
+  with parameters
+    P1: type
+    P2: type
+
+  with assertions
+    instance of context sumable 
+      with parameters
+        instance of type T2 (not function type) 
+          with parameters
+            instance of type P1 (not function type) 
+            instance of type P2 (not function type) 
+
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type T2 (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+w1: instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+g2: instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+w3: type for instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+
+    to:
+      pointer to instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+    Cast of:
+      Variable Expression: _src: instance of type w3 (not function type) 
+
+    to:
+      instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+
+
+
+g3: instance of type w3 (not function type) 
+sum: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      n: signed int 
+      a: pointer to instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of total: instance of type T (not function type) with initializer 
+          Simple Initializer:             Name: 0
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: total
+                Name: 0
+
+        Declaration of i: signed int 
+                  Labels: {}
+          For Statement
+            initialization: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: i
+                    Name: 0
+
+            condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: i
+                        Name: n
+                    Name: 0
+
+              to:
+                signed int 
+
+            increment: 
+              Applying untyped: 
+                  Name: ?+=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 1
+
+            statement block: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: total
+                    Applying untyped: 
+                        Name: ?+?
+                    ...to: 
+                        Name: total
+                        Applying untyped: 
+                            Name: ?[?]
+                        ...to: 
+                            Name: a
+                            Name: i
+
+
+                  Return Statement, returning: Name: total
+
+
+
+twice: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?+?
+...to: 
+    Name: t
+    Name: t
+
+
+
+min: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?!=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+          ?<?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+
+    function
+    with parameters
+      t1: instance of type T (not function type) 
+      t2: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Conditional expression on: 
+  Cast of:
+    Applying untyped: 
+        Name: ?!=?
+    ...to: 
+        Applying untyped: 
+            Name: ?<?
+        ...to: 
+            Name: t1
+            Name: t2
+        Name: 0
+
+  to:
+    signed int 
+First alternative:
+  Name: t1
+Second alternative:
+  Name: t2
+
+
+
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of x: signed int with initializer 
+          Simple Initializer:             Name: 1
+
+        Declaration of y: signed int with initializer 
+          Simple Initializer: constant expression 2 signed int 
+        Declaration of a: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f: float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: swap
+            ...to: 
+                Name: x
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: twice
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: f
+                Applying untyped: 
+                    Name: min
+                ...to: 
+constant expression 4.0 double constant expression 3.0 double 
+                  Expression Statement:
+            Applying untyped: 
+                Name: sum
+            ...to: 
+constant expression 10 signed int                 Name: a
+
+
Index: src/Tests/Expect-v/Function.txt
===================================================================
--- src/Tests/Expect-v/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,126 @@
+a: signed int 
+a: float 
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      float 
+    returning 
+      float 
+
+g: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Cast of:
+                  Name: a
+
+                to:
+                  signed int 
+
+                  Expression Statement:
+            Cast of:
+              Applying untyped: 
+                  Name: f
+              ...to: 
+                  Name: a
+
+            to:
+              signed int 
+
+
+p: tuple of types
+    signed int 
+
+p: tuple of types
+    signed int 
+    double 
+
+p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+q: tuple of types
+    char 
+
+q: tuple of types
+    signed int 
+    signed int 
+
+q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+s: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: r
+            ...to: 
+                Name: p
+                Name: q
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: r
+            ...to: 
+                Tuple:
+                                      Name: q
+
+                                      Name: p
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: r
+            ...to: 
+                Applying untyped: 
+                    Name: r
+                ...to: 
+                    Name: p
+                    Name: q
+                Applying untyped: 
+                    Name: r
+                ...to: 
+                    Name: q
+                    Name: q
+
+
Index: src/Tests/Expect-v/Functions.txt
===================================================================
--- src/Tests/Expect-v/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,681 @@
+h: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      pointer to function
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      g: pointer to function
+          returning 
+            nothing 
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Applying untyped: 
+                    Name: *?
+                ...to: 
+                    Name: g
+            ...to: 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: g
+                Name: h
+
+
+f1: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f2: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f3: function
+      accepting unspecified arguments
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
+f4: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+f5: function
+      accepting unspecified arguments
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
+f6: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+f7: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+f8: function
+      accepting unspecified arguments
+    returning 
+      pointer to pointer to signed int 
+    with body 
+      CompoundStmt
+
+f9: function
+      accepting unspecified arguments
+    returning 
+      pointer to const pointer to signed int 
+    with body 
+      CompoundStmt
+
+f10: function
+      accepting unspecified arguments
+    returning 
+      pointer to open array of signed int 
+    with body 
+      CompoundStmt
+
+f11: function
+      accepting unspecified arguments
+    returning 
+      pointer to open array of array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+f12: function
+      accepting unspecified arguments
+    returning 
+      pointer to open array of array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+fII1: function
+    with parameters
+      i: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+fII2: function
+    with parameters
+      i: signed int 
+    returning 
+      const signed int 
+    with body 
+      CompoundStmt
+
+fII3: auto function
+    with parameters
+      i: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+fII4: auto function
+    with parameters
+      i: signed int 
+    returning 
+      const signed int 
+    with body 
+      CompoundStmt
+
+fII5: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+fII6: function
+      accepting unspecified arguments
+    returning 
+      const pointer to signed int 
+    with body 
+      CompoundStmt
+
+fII7: function
+      accepting unspecified arguments
+    returning 
+      pointer to const long signed int 
+    with body 
+      CompoundStmt
+
+fII8: static function
+      accepting unspecified arguments
+    returning 
+      pointer to const long signed int 
+    with body 
+      CompoundStmt
+
+fII9: static function
+      accepting unspecified arguments
+    returning 
+      pointer to const long signed int 
+    with body 
+      CompoundStmt
+
+fO1: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO2: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO3: function
+      accepting unspecified arguments
+    returning 
+      const signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO4: auto function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO5: auto function
+      accepting unspecified arguments
+    returning 
+      const signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      nothing 
+
+f: function
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      x: signed int 
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      x: signed int 
+
+f: function
+    returning 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      signed int 
+      x: signed int 
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      signed int 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    with body 
+      CompoundStmt
+
+f11: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f12: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      pointer to function
+          with parameters
+            signed int 
+            p: signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of p: pointer to open array of array of pointer to open array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 10 signed int 
+        Declaration of p: pointer to open array of array of pointer to open array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 10 signed int 
+        Declaration of p: pointer to open array of pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+
+f1: static function
+      accepting unspecified arguments
+    returning 
+      pointer to const signed int 
+    with body 
+      CompoundStmt
+
+f2: static function
+    returning 
+      const signed int 
+    with body 
+      CompoundStmt
+
+f3: inline static function
+    returning 
+      const pointer to signed int 
+    with body 
+      CompoundStmt
+
+f4: inline static function
+    returning 
+      const tuple of types
+          pointer to signed int 
+          signed int 
+
+    with body 
+      CompoundStmt
+
+f5: static function
+    returning 
+      const tuple of types
+          pointer to signed int 
+          const signed int 
+
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            pointer to signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            pointer to pointer to signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            pointer to const pointer to signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            const pointer to const pointer to signed int 
+
+      pointer to signed int 
+      pointer to array of constant expression 10 signed int signed int 
+      pointer to pointer to signed int 
+      pointer to array of constant expression 10 signed int pointer to signed int 
+      pointer to pointer to pointer to signed int 
+      pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      pointer to pointer to const pointer to signed int 
+      pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      pointer to const pointer to const pointer to signed int 
+      pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            pointer to signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            pointer to pointer to signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            pointer to const pointer to signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            const pointer to const pointer to signed int 
+
+      pointer to signed int 
+      pointer to array of constant expression 10 signed int signed int 
+      pointer to pointer to signed int 
+      pointer to array of constant expression 10 signed int pointer to signed int 
+      pointer to pointer to pointer to signed int 
+      pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      pointer to pointer to const pointer to signed int 
+      pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      pointer to const pointer to const pointer to signed int 
+      pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      f: pointer to signed int 
+      t: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of T: signed int 
+
Index: src/Tests/Expect-v/GccExtensions.txt
===================================================================
--- src/Tests/Expect-v/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,147 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of c1: double _Complex 
+        Declaration of c2: double _Complex 
+        Declaration of i1: const signed int 
+        Declaration of i2: const signed int 
+        Declaration of i3: const signed int 
+        Declaration of ex: const signed int 
+        Declaration of f1: inline function
+              accepting unspecified arguments
+            returning 
+              signed int 
+
+        Declaration of f2: inline function
+              accepting unspecified arguments
+            returning 
+              signed int 
+
+        Declaration of s1: signed int 
+        Declaration of s2: signed int 
+        Declaration of t1: type-of expression           Name: s1
+
+        Declaration of t2: type-of expression           Name: s1
+
+        Declaration of v1: volatile signed int 
+        Declaration of v2: volatile signed int 
+        Declaration of a1: signed int 
+        Declaration of a2: const signed int 
+        Declaration of a3: static const signed int 
+        Declaration of a4: static const signed int 
+        Declaration of a5: static const signed int 
+        Declaration of a6: static const signed int 
+        Declaration of a7: static const signed int 
+        Declaration of p1: pointer to signed int 
+        Declaration of p2: pointer to signed int 
+        Declaration of struct s1
+        Declaration of struct s2
+            with members
+              i: signed int 
+
+        Declaration of ?=?: automatically generated inline function
+            with parameters
+              _dst: pointer to instance of struct s2 
+              _src: instance of struct s2 
+            returning 
+              instance of struct s2 
+            with body 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Member Expression, with field: 
+                            i: signed int 
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct s2 
+                        Member Expression, with field: 
+                          i: signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct s2 
+
+                                  Return Statement, returning: Variable Expression: _src: instance of struct s2 
+
+
+
+        Declaration of struct s3
+            with members
+              i: signed int 
+
+        Declaration of ?=?: automatically generated inline function
+            with parameters
+              _dst: pointer to instance of struct s3 
+              _src: instance of struct s3 
+            returning 
+              instance of struct s3 
+            with body 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Member Expression, with field: 
+                            i: signed int 
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct s3 
+                        Member Expression, with field: 
+                          i: signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct s3 
+
+                                  Return Statement, returning: Variable Expression: _src: instance of struct s3 
+
+
+
+        Declaration of x1: instance of struct s3 
+        Declaration of y1: instance of struct s3 
+        Declaration of struct s4
+            with members
+              i: signed int 
+
+        Declaration of ?=?: automatically generated inline function
+            with parameters
+              _dst: pointer to instance of struct s4 
+              _src: instance of struct s4 
+            returning 
+              instance of struct s4 
+            with body 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Member Expression, with field: 
+                            i: signed int 
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct s4 
+                        Member Expression, with field: 
+                          i: signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct s4 
+
+                                  Return Statement, returning: Variable Expression: _src: instance of struct s4 
+
+
+
+        Declaration of x2: instance of struct s4 
+        Declaration of y2: instance of struct s4 
+        Declaration of m1: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of m2: array of array of signed int with dimension of constant expression 10 signed int with dimension of constant expression 10 signed int 
+        Declaration of m3: array of array of signed int with dimension of constant expression 10 signed int with dimension of constant expression 10 signed int 
+
Index: src/Tests/Expect-v/IdentFuncDeclarator.txt
===================================================================
--- src/Tests/Expect-v/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,185 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of f1: signed int 
+        Declaration of f2: signed int 
+        Declaration of f3: pointer to signed int 
+        Declaration of f4: pointer to pointer to signed int 
+        Declaration of f5: pointer to const pointer to signed int 
+        Declaration of f6: const pointer to const pointer to signed int 
+        Declaration of f7: pointer to signed int 
+        Declaration of f8: pointer to pointer to signed int 
+        Declaration of f9: pointer to const pointer to signed int 
+        Declaration of f10: const pointer to const pointer to signed int 
+        Declaration of f11: pointer to signed int 
+        Declaration of f12: pointer to pointer to signed int 
+        Declaration of f13: pointer to const pointer to signed int 
+        Declaration of f14: const pointer to const pointer to signed int 
+        Declaration of f15: open array of signed int 
+        Declaration of f16: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f17: open array of signed int 
+        Declaration of f18: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f19: open array of pointer to signed int 
+        Declaration of f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f21: open array of pointer to pointer to signed int 
+        Declaration of f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f23: open array of pointer to const pointer to signed int 
+        Declaration of f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f25: open array of const pointer to const pointer to signed int 
+        Declaration of f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f27: open array of pointer to signed int 
+        Declaration of f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f29: open array of pointer to pointer to signed int 
+        Declaration of f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f31: open array of pointer to const pointer to signed int 
+        Declaration of f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f33: open array of const pointer to const pointer to signed int 
+        Declaration of f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f35: open array of pointer to signed int 
+        Declaration of f36: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f37: open array of pointer to pointer to signed int 
+        Declaration of f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f39: open array of pointer to const pointer to signed int 
+        Declaration of f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f41: open array of const pointer to const pointer to signed int 
+        Declaration of f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f65: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f66: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f67: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f68: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f69: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f70: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f71: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f72: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f73: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f74: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f75: pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f76: pointer to pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f77: pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f78: const pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f79: pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f80: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f81: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              const pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
Index: src/Tests/Expect-v/IdentFuncParamDeclarator.txt
===================================================================
--- src/Tests/Expect-v/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,221 @@
+fred: function
+    with parameters
+      f1: signed int 
+      f2: signed int 
+      f3: pointer to signed int 
+      f4: pointer to pointer to signed int 
+      f5: pointer to const pointer to signed int 
+      f6: const pointer to const pointer to signed int 
+      f7: pointer to signed int 
+      f8: pointer to pointer to signed int 
+      f9: pointer to const pointer to signed int 
+      f10: const pointer to const pointer to signed int 
+      f11: pointer to signed int 
+      f12: pointer to pointer to signed int 
+      f13: pointer to const pointer to signed int 
+      f14: const pointer to const pointer to signed int 
+      f15: pointer to signed int 
+      f16: pointer to array of constant expression 10 signed int signed int 
+      f17: pointer to signed int 
+      f18: pointer to array of constant expression 10 signed int signed int 
+      f19: pointer to pointer to signed int 
+      f20: pointer to array of constant expression 10 signed int pointer to signed int 
+      f21: pointer to pointer to pointer to signed int 
+      f22: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f23: pointer to pointer to const pointer to signed int 
+      f24: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f25: pointer to const pointer to const pointer to signed int 
+      f26: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f27: pointer to pointer to signed int 
+      f28: pointer to array of constant expression 10 signed int pointer to signed int 
+      f29: pointer to pointer to pointer to signed int 
+      f30: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f31: pointer to pointer to const pointer to signed int 
+      f32: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f33: pointer to const pointer to const pointer to signed int 
+      f34: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f35: pointer to pointer to signed int 
+      f36: pointer to array of constant expression 10 signed int pointer to signed int 
+      f37: pointer to pointer to pointer to signed int 
+      f38: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f39: pointer to pointer to const pointer to signed int 
+      f40: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f41: pointer to const pointer to const pointer to signed int 
+      f42: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f43: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f44: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f45: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f46: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f47: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f48: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f49: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f50: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f51: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f52: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f53: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f54: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f55: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f56: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f57: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f58: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f59: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f60: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f61: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f62: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f63: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f64: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f65: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f66: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f67: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f68: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f69: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f70: pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f71: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f72: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f73: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f74: pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f75: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f76: pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f77: pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f78: const pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f79: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f80: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f81: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f82: const pointer to variable length array of signed int 
+      f83: const pointer to array of constant expression 3 signed int signed int 
+      f84: pointer to static array of constant expression 3 signed int signed int 
+      f85: const pointer to static array of constant expression 3 signed int signed int 
+      f86: const pointer to variable length array of signed int 
+      f87: const pointer to array of constant expression 3 signed int signed int 
+      f88: pointer to static array of constant expression 3 signed int signed int 
+      f89: const pointer to static array of constant expression 3 signed int signed int 
+      f90: const pointer to variable length array of pointer to signed int 
+      f91: const pointer to array of constant expression 3 signed int pointer to signed int 
+      f92: pointer to static array of constant expression 3 signed int pointer to pointer to signed int 
+      f93: const pointer to static array of constant expression 3 signed int pointer to const pointer to signed int 
+      f94: const pointer to static array of constant expression 3 signed int const pointer to const pointer to signed int 
+      f95: const pointer to variable length array of pointer to signed int 
+      f96: const pointer to array of constant expression 3 signed int pointer to signed int 
+      f97: pointer to static array of constant expression 3 signed int pointer to pointer to signed int 
+      f98: const pointer to static array of constant expression 3 signed int pointer to const pointer to signed int 
+      f99: const pointer to static array of constant expression 3 signed int const pointer to const pointer to signed int 
+      f100: const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f101: const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f102: pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f103: const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f104: const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f105: const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f106: pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f107: const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f108: const pointer to variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f109: const pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f110: pointer to static array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f111: const pointer to static array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f112: const pointer to static array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f113: const pointer to variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f114: const pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f115: pointer to static array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f116: const pointer to static array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f117: const pointer to static array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
Index: src/Tests/Expect-v/InferParam.txt
===================================================================
--- src/Tests/Expect-v/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,173 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: function
+    with parameters
+      pointer to double 
+      double 
+    returning 
+      double 
+
+g: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      float 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      double 
+
+i: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+h: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: i
+            ...to: 
+                Applying untyped: 
+                    Name: g
+                ...to: 
+                    Name: a
+
+
+context has_f_and_j
+    with parameters
+      T: type
+      U: type
+
+    with members
+      f: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+      j: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type U (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+
+j: function
+    with parameters
+      signed int 
+      float 
+    returning 
+      float 
+
+k: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          j: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+l: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of b: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: i
+            ...to: 
+                Applying untyped: 
+                    Name: k
+                ...to: 
+                    Name: b
+
+
Index: src/Tests/Expect-v/Initialization.txt
===================================================================
--- src/Tests/Expect-v/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,669 @@
+x11: pointer to signed int with initializer 
+  Simple Initializer:     Name: 0
+
+x12: signed int with initializer 
+  Simple Initializer:     Name: 0
+
+x21: pointer to signed int with initializer 
+  Simple Initializer:     Name: 0
+
+x22: signed int with initializer 
+  Simple Initializer:     Name: 0
+
+y1: array of signed int with dimension of constant expression 20 signed int 
+y2: array of signed int with dimension of constant expression 20 signed int 
+struct __anonymous0
+    with members
+      w: tuple of types
+          signed int 
+
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    w: tuple of types
+                      signed int 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+a: instance of struct __anonymous0 with initializer 
+  Compound initializer:  
+    Simple Initializer:       Tuple:
+        constant expression 2 signed int 
+
+      designated by:         Name: w
+
+struct __anonymous1
+    with members
+      a: array of signed int with dimension of constant expression 3 signed int 
+      b: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+    with body 
+      CompoundStmt
+        Declaration of _index0: C signed int 
+                  Labels: {}
+          For Statement
+            initialization: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Variable Expression: _index0: signed int 
+                    Name: 0
+
+            condition: 
+              Applying untyped: 
+                  Name: ?<?
+              ...to: 
+                  Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+            increment: 
+              Applying untyped: 
+                  Name: ++?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+
+            statement block: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?+?
+                    ...to: 
+                        Member Expression, with field: 
+                          a: array of signed int with dimension of constant expression 3 signed int 
+                        from aggregate: 
+                          Applying untyped: 
+                              Name: *?
+                          ...to: 
+                              Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                        Variable Expression: _index0: signed int 
+                    Applying untyped: 
+                        Name: ?[?]
+                    ...to: 
+                        Member Expression, with field: 
+                          a: array of signed int with dimension of constant expression 3 signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct __anonymous1 
+                        Variable Expression: _index0: signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    b: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous1 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+w: open array of instance of struct __anonymous1 with initializer 
+  Compound initializer:  
+    Compound initializer:        designated by: [        Name: 0
+        Name: a
+      ]
+      Simple Initializer:         Name: 1
+
+    Simple Initializer:       Name: 1
+
+      designated by:         Name: 0
+        Name: b
+
+    Simple Initializer: constant expression 2 signed int 
+      designated by:         Name: 1
+        Name: a
+        Name: 0
+
+struct __anonymous2
+    with members
+      g1: signed int 
+      g2: signed int 
+      g3: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    g1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous2 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    g2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous2 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    g3: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous2 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+struct __anonymous3
+    with members
+      f1: signed int 
+      f2: signed int 
+      f3: signed int 
+      f4: array of instance of struct __anonymous2 with dimension of constant expression 4 signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous3 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous3 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f3: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous3 
+
+        Declaration of _index1: C signed int 
+                  Labels: {}
+          For Statement
+            initialization: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Variable Expression: _index1: signed int 
+                    Name: 0
+
+            condition: 
+              Applying untyped: 
+                  Name: ?<?
+              ...to: 
+                  Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+            increment: 
+              Applying untyped: 
+                  Name: ++?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+
+            statement block: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?+?
+                    ...to: 
+                        Member Expression, with field: 
+                          f4: array of instance of struct __anonymous2 with dimension of constant expression 4 signed int 
+                        from aggregate: 
+                          Applying untyped: 
+                              Name: *?
+                          ...to: 
+                              Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                        Variable Expression: _index1: signed int 
+                    Applying untyped: 
+                        Name: ?[?]
+                    ...to: 
+                        Member Expression, with field: 
+                          f4: array of instance of struct __anonymous2 with dimension of constant expression 4 signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct __anonymous3 
+                        Variable Expression: _index1: signed int 
+
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+v7: instance of struct __anonymous3 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 4 signed int 
+      designated by:         Name: f1
+
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: f2
+
+    Compound initializer:        designated by: [        Name: f4
+constant expression 2 signed int       ]
+      Simple Initializer: constant expression 3 signed int 
+        designated by:           Name: g1
+
+      Simple Initializer:         Name: 0
+
+        designated by:           Name: g3
+
+    Simple Initializer: constant expression 7 signed int 
+      designated by:         Name: f4
+constant expression 3 signed int         Name: g3
+
+struct __anonymous4
+    with members
+      y1: signed int 
+      y2: signed int 
+      y3: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous4 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous4 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y3: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous4 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+struct point
+    with members
+      x: signed int 
+      z: signed int 
+      y: instance of struct __anonymous4 
+      w: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct point 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct point 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    z: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct point 
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct point 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: instance of struct __anonymous4 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct point 
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct point 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    w: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct point 
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct point 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct point 
+
+
+
+struct quintet
+    with members
+      v: signed int 
+      w: signed int 
+      x: signed int 
+      y: signed int 
+      z: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    v: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct quintet 
+                Member Expression, with field: 
+                  v: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct quintet 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    w: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct quintet 
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct quintet 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct quintet 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct quintet 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct quintet 
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct quintet 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    z: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct quintet 
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct quintet 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct quintet 
+
+
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of p1: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 3 signed int 
+              designated by:                 Name: x
+
+        Declaration of p2: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 3 signed int 
+            Simple Initializer: constant expression 4 signed int 
+        Declaration of p3: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 5 signed int 
+              designated by:                 Name: x
+                Name: z
+
+            Compound initializer:                designated by: [                Name: y
+              ]
+              Simple Initializer: constant expression 6 signed int 
+                designated by:                   Name: y3
+                  Name: y1
+
+              Simple Initializer: constant expression 17 signed int 
+        Declaration of p4: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 5 signed int 
+              designated by:                 Name: w
+
+            Simple Initializer: constant expression 4 signed int 
+
Index: src/Tests/Expect-v/Initialization2.txt
===================================================================
--- src/Tests/Expect-v/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,740 @@
+a: signed int with initializer 
+  Simple Initializer: constant expression 3 signed int 
+struct __anonymous0
+    with members
+      x: signed int 
+      y: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+z: instance of struct __anonymous0 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+    Simple Initializer: constant expression 7 signed int 
+struct __anonymous1
+    with members
+      x: signed int 
+      y: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous1 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous1 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+z1: instance of struct __anonymous1 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: x
+        Name: y
+
+struct __anonymous2
+    with members
+      x: signed int 
+      y: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous2 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous2 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+z2: instance of struct __anonymous2 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: y
+
+    Simple Initializer: constant expression 4 signed int 
+      designated by:         Name: x
+
+struct __anonymous3
+    with members
+      y1: signed int 
+      y2: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous3 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous3 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+struct __anonymous4
+    with members
+      x: signed int 
+      y: instance of struct __anonymous3 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous4 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: instance of struct __anonymous3 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous4 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+z3: instance of struct __anonymous4 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: x
+
+    Compound initializer:        designated by: [        Name: y
+      ]
+      Simple Initializer: constant expression 4 signed int 
+        designated by:           Name: y1
+
+      Simple Initializer: constant expression 5 signed int 
+        designated by:           Name: y2
+
+struct __anonymous5
+    with members
+      y1: signed int 
+      y2: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous5 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous5 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous5 
+
+
+
+struct __anonymous6
+    with members
+      x: signed int 
+      y: instance of struct __anonymous5 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous6 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: instance of struct __anonymous5 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous6 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous6 
+
+
+
+z3: instance of struct __anonymous6 with initializer 
+  Compound initializer:  
+    Compound initializer:        designated by: [        Name: y
+      ]
+      Simple Initializer: constant expression 9 signed int 
+        designated by:           Name: y2
+
+      Simple Initializer: constant expression 8 signed int 
+        designated by:           Name: y1
+
+    Simple Initializer: constant expression 7 signed int 
+      designated by:         Name: x
+
+struct __anonymous7
+    with members
+      y1: signed int 
+      y2: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous7 
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous7 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous7 
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous7 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous7 
+
+
+
+struct __anonymous8
+    with members
+      x: signed int 
+      y: instance of struct __anonymous7 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous8 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous8 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: instance of struct __anonymous7 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous8 
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous8 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous8 
+
+
+
+z3: instance of struct __anonymous8 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 7 signed int 
+      designated by:         Name: x
+
+    Compound initializer:  
+      Simple Initializer: constant expression 9 signed int 
+        designated by:           Name: y2
+
+      Simple Initializer: constant expression 8 signed int 
+        designated by:           Name: y1
+
+struct __anonymous9
+    with members
+      y1: signed int 
+      y2: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous9 
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous9 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous9 
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous9 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous9 
+
+
+
+struct __anonymous10
+    with members
+      x: signed int 
+      y: instance of struct __anonymous9 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous10 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous10 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: instance of struct __anonymous9 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous10 
+                Member Expression, with field: 
+                  y: instance of struct __anonymous9 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous10 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous10 
+
+
+
+z3: instance of struct __anonymous10 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+    Compound initializer:  
+      Simple Initializer: constant expression 4 signed int 
+      Simple Initializer: constant expression 5 signed int 
+struct t
+    with members
+      a: signed int 
+      b: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    a: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct t 
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct t 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    b: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct t 
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct t 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct t 
+
+
+
+x: instance of struct t with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 4 signed int 
+      designated by:         Name: b
+
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: a
+
+struct __anonymous11
+    with members
+      x: signed int 
+      y: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous11 
+      _src: instance of struct __anonymous11 
+    returning 
+      instance of struct __anonymous11 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous11 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous11 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous11 
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous11 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous11 
+
+
+
+z6: instance of struct __anonymous11 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 5 signed int 
+    Simple Initializer: constant expression 6 signed int 
+    Simple Initializer: constant expression 4 signed int 
Index: src/Tests/Expect-v/LabelledExit.txt
===================================================================
--- src/Tests/Expect-v/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,743 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of i: signed int 
+        Declaration of x: signed int 
+        Declaration of y: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: x
+                Name: 0
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: y
+                Name: 0
+
+                  CompoundStmt
+                          If on condition: 
+                  Cast of:
+                    Applying untyped: 
+                        Name: ?!=?
+                    ...to: 
+                        Applying untyped: 
+                            Name: ?==?
+                        ...to: 
+                            Name: x
+                            Name: y
+                        Name: 0
+
+                  to:
+                    signed int 
+              .... and branches: 
+                  CompoundStmt
+                                          Labels: {}
+                      For Statement
+                        initialization: 
+
+                        condition: 
+                          Cast of:
+                            Applying untyped: 
+                                Name: ?!=?
+                            ...to: 
+                                Applying untyped: 
+                                    Name: ?<?
+                                ...to: 
+                                    Name: i
+                                    Name: y
+                                Name: 0
+
+                          to:
+                            signed int 
+
+                        increment: 
+
+                        statement block: 
+                          CompoundStmt
+                                                          Expression Statement:
+                                Applying untyped: 
+                                    Name: ?+=?
+                                ...to: 
+                                    Address of:
+                                      Name: y
+                                    Name: 1
+
+                                                          If on condition: 
+                                  Cast of:
+                                    Applying untyped: 
+                                        Name: ?!=?
+                                    ...to: 
+                                        Applying untyped: 
+                                            Name: ?<?
+                                        ...to: 
+                                            Name: y
+constant expression 10 signed int                                         Name: 0
+
+                                  to:
+                                    signed int 
+                              .... and branches: 
+                                  Branch (Break)
+
+
+
+
+
+                  While on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?==?
+                    ...to: 
+                        Name: y
+constant expression 10 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... with body: 
+              Null Statement
+
+                  While on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: x
+constant expression 10 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... with body: 
+              CompoundStmt
+                                  While on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: y
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... with body: 
+                      CompoundStmt
+                                                  If on condition: 
+                              Cast of:
+                                Applying untyped: 
+                                    Name: ?!=?
+                                ...to: 
+                                    Applying untyped: 
+                                        Name: ?==?
+                                    ...to: 
+                                        Name: y
+constant expression 3 signed int                                     Name: 0
+
+                              to:
+                                signed int 
+                          .... and branches: 
+                              Branch (Break)
+
+
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: x
+                        Name: 1
+
+
+                  Labels: {A,}
+          For Statement
+            initialization: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: i
+                    Name: 0
+
+            condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: i
+constant expression 10 signed int                     Name: 0
+
+              to:
+                signed int 
+
+            increment: 
+              Applying untyped: 
+                  Name: ?+=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 1
+
+            statement block: 
+              CompoundStmt
+                                  Labels: {B,}
+                  For Statement
+                    initialization: 
+                      Expression Statement:
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: i
+                            Name: 0
+
+                    condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: i
+constant expression 10 signed int                             Name: 0
+
+                      to:
+                        signed int 
+
+                    increment: 
+                      Applying untyped: 
+                          Name: ?+=?
+                      ...to: 
+                          Address of:
+                            Name: i
+                          Name: 1
+
+                    statement block: 
+                      CompoundStmt
+                                                  Labels: {C,}
+                          For Statement
+                            initialization: 
+                              Expression Statement:
+                                Applying untyped: 
+                                    Name: ?=?
+                                ...to: 
+                                    Address of:
+                                      Name: i
+                                    Name: 0
+
+                            condition: 
+                              Cast of:
+                                Applying untyped: 
+                                    Name: ?!=?
+                                ...to: 
+                                    Applying untyped: 
+                                        Name: ?<?
+                                    ...to: 
+                                        Name: i
+constant expression 10 signed int                                     Name: 0
+
+                              to:
+                                signed int 
+
+                            increment: 
+                              Applying untyped: 
+                                  Name: ?+=?
+                              ...to: 
+                                  Address of:
+                                    Name: i
+                                  Name: 1
+
+                            statement block: 
+                              CompoundStmt
+                                                                  Branch (Goto)
+
+                                                                  Branch (Goto)
+
+                                                                  Branch (Goto)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Break)
+
+                                                                  Branch (Break)
+
+                                                                  Branch (Break)
+
+                                                                  Branch (Break)
+
+
+
+
+
+
+
+                  Labels: {D,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Branch (Break)
+
+                                  Branch (Continue)
+
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: 1
+
+                  Branch (Goto)
+
+                  Labels: {X,Y,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                                  If on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?>?
+                            ...to: 
+                                Name: i
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... and branches: 
+                      Branch (Continue)
+
+                                  If on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: i
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... and branches: 
+                      Branch (Break)
+
+                                  If on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: i
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... and branches: 
+                      Branch (Break)
+
+                                  Branch (Break)
+
+
+
+                  Labels: {XX,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Labels: {YY,}
+                  For Statement
+                    initialization: 
+
+                    condition: 
+
+                    increment: 
+
+                    statement block: 
+                      CompoundStmt
+                                                  Labels: {ZZ,}
+                          For Statement
+                            initialization: 
+
+                            condition: 
+
+                            increment: 
+
+                            statement block: 
+                              CompoundStmt
+                                                                  Expression Statement:
+                                    Applying untyped: 
+                                        Name: ?+=?
+                                    ...to: 
+                                        Address of:
+                                          Name: i
+                                        Name: 1
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?>?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Continue)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Continue)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Continue)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?>?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Break)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Break)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Break)
+
+                                                                  Branch (Break)
+
+
+
+
+
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+Declaration of i: signed int with initializer 
+              Simple Initializer:                 Name: 0
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+
+            condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: i
+                        Name: 0
+                    Name: 0
+
+              to:
+                signed int 
+
+            increment: 
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+              Applying untyped: 
+                  Name: ?+=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 1
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {L0,L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16,L17,L18,L19,L20,L21,L22,L23,L24,L25,L26,L27,L28,L29,L31,L32,L33,L34,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Branch (Break)
+
+
+
+                  Switch on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+              Case Name: 0
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+                  Branch (Break)
+              Case Name: 1
+
+                  Switch on condition: Name: i
+
+                      Case Name: 0
+
+                          Branch (Break)
+                      Default 
+                          Branch (Break)
+
+                  Choose on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+              Case Name: 0
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+                  Branch (Break)
+              Case Name: 1
+
+                  Choose on condition: Name: i
+
+                      Case Name: 0
+
+                          Branch (Break)
+                      Default 
+                          Branch (Break)
+                  Fall-through statement
+              Case constant expression 2 signed int 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  CompoundStmt
+            Declaration of array: static open array of pointer to void with initializer 
+              Compound initializer:  
+                Simple Initializer:                   Applying untyped: 
+                      Name: LabAddress
+                  ...to: 
+                      Name: foo
+
+                Simple Initializer:                   Applying untyped: 
+                      Name: LabAddress
+                  ...to: 
+                      Name: bar
+
+                Simple Initializer:                   Applying untyped: 
+                      Name: LabAddress
+                  ...to: 
+                      Name: hack
+
+                          Branch (Goto)
+
+
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?>?
+                    ...to: 
+                        Name: i
+constant expression 5 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                                  Branch (Break)
+
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?+=?
+                ...to: 
+                    Address of:
+                      Name: i
+                    Name: 1
+
+
Index: src/Tests/Expect-v/Members.txt
===================================================================
--- src/Tests/Expect-v/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,383 @@
+?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+*?: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+__builtin_memcpy: function
+      accepting unspecified arguments
+    returning 
+      pointer to char 
+
+a: function
+    with parameters
+      char 
+    returning 
+      nothing 
+
+b: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+c: function
+    with parameters
+      pointer to signed int 
+    returning 
+      nothing 
+
+d: function
+    with parameters
+      pointer to float 
+    returning 
+      nothing 
+
+struct a_struct
+    with members
+      a: signed int 
+      a: char 
+      a: float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    a: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct a_struct 
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct a_struct 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    a: char 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct a_struct 
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct a_struct 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    a: float 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct a_struct 
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct a_struct 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct a_struct 
+
+
+
+union b_struct
+    with members
+      a: pointer to signed int 
+      a: pointer to char 
+      a: pointer to float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: __builtin_memcpy
+            ...to: 
+                Variable Expression: _dst: pointer to instance of union b_struct 
+                Address of:
+                  Variable Expression: _src: instance of union b_struct 
+                Sizeof Expression on: instance of union b_struct 
+
+                  Return Statement, returning: Variable Expression: _src: instance of union b_struct 
+
+
+
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of the_struct: instance of struct a_struct 
+        Declaration of the_struct: instance of union b_struct 
+                  Expression Statement:
+            Applying untyped: 
+                Name: a
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: b
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: c
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: d
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+
+struct c_struct
+    with members
+      signed int 
+      char 
+      float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct c_struct 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct c_struct 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    char 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct c_struct 
+                Member Expression, with field: 
+                  char 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct c_struct 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    float 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct c_struct 
+                Member Expression, with field: 
+                  float 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct c_struct 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct c_struct 
+
+
+
+union d_struct
+    with members
+      pointer to signed int 
+      pointer to char 
+      pointer to float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of union d_struct 
+      _src: instance of union d_struct 
+    returning 
+      instance of union d_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: __builtin_memcpy
+            ...to: 
+                Variable Expression: _dst: pointer to instance of union d_struct 
+                Address of:
+                  Variable Expression: _src: instance of union d_struct 
+                Sizeof Expression on: instance of union d_struct 
+
+                  Return Statement, returning: Variable Expression: _src: instance of union d_struct 
+
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of x: short unsigned int 
+        Declaration of x: instance of struct c_struct 
+        Declaration of x: instance of union d_struct 
+                  Expression Statement:
+            Applying untyped: 
+                Name: a
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: b
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: c
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: d
+            ...to: 
+                Name: x
+
+
+struct forward
+q: pointer to instance of struct forward 
+struct forward
+    with members
+      y: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct forward 
+      _src: instance of struct forward 
+    returning 
+      instance of struct forward 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct forward 
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct forward 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct forward 
+
+
+
+h: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Member Expression, with field: y            from aggregate:               Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Name: q
+
+
Index: src/Tests/Expect-v/Misc.txt
===================================================================
--- src/Tests/Expect-v/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,55 @@
+a: signed int 
+b: signed int 
+b: float 
+g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Name: a
+
+                  Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Comma Expression:
+                    Name: a
+
+                    Name: a
+
+                  Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Sizeof Expression on:                   Name: a
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Sizeof Expression on: signed int 
+
+
Index: src/Tests/Expect-v/MiscError.txt
===================================================================
--- src/Tests/Expect-v/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,52 @@
+a: signed int 
+b: signed int 
+b: float 
+g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Name: b
+
+                  Name: a
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Comma Expression:
+                    Name: b
+
+                    Name: a
+
+                  Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Comma Expression:
+                    Name: a
+
+                    Name: b
+
+                  Name: b
+
+                  Expression Statement:
+            Sizeof Expression on:               Name: b
+
+
+
Index: src/Tests/Expect-v/NamedParmArg.txt
===================================================================
--- src/Tests/Expect-v/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,94 @@
+f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer: constant expression 3 signed int 
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f2: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer: constant expression 3 signed int 
+      j: pointer to signed int 
+    returning 
+      signed int 
+      signed int 
+    with body 
+      CompoundStmt
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int                 Name: 0
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int                 Name: 0
+                with designator:                  Name: j
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+                Name: 0
+                with designator:                  Name: j
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int                 with designator:                  Name: i
+                Name: 0
+                with designator:                  Name: j
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+                Name: 0
+                with designator:                  Name: j
+constant expression 3 signed int                 with designator:                  Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+                Applying untyped: 
+                    Name: f2
+                ...to: 
+                with designator:                  Tuple:
+                                          Name: j
+
+                                          Name: i
+
+
+
Index: src/Tests/Expect-v/NumericConstants.txt
===================================================================
--- src/Tests/Expect-v/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,88 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Name: 1
+
+                  Expression Statement:
+constant expression 21 signed int 
+                  Expression Statement:
+constant expression 2147483647 signed int 
+                  Expression Statement:
+constant expression 37LL long long signed int 
+                  Expression Statement:
+constant expression 45ull long long unsigned int 
+                  Expression Statement:
+constant expression 89llu long long unsigned int 
+                  Expression Statement:
+constant expression 99LLu long long unsigned int 
+                  Expression Statement:
+constant expression 56lu long unsigned int 
+                  Expression Statement:
+constant expression 88LLu long long unsigned int 
+                  Expression Statement:
+constant expression 0u unsigned int 
+                  Expression Statement:
+constant expression 0377 signed int 
+                  Expression Statement:
+constant expression 0377ul long unsigned int 
+                  Expression Statement:
+constant expression 0x1 signed int 
+                  Expression Statement:
+constant expression 0x1u unsigned int 
+                  Expression Statement:
+constant expression 0xabL long signed int 
+                  Expression Statement:
+constant expression 0x80000000 unsigned int 
+                  Expression Statement:
+constant expression 0xfff signed int 
+                  Expression Statement:
+constant expression 0xef3daa5c unsigned int 
+                  Expression Statement:
+constant expression 0x3LL long long signed int 
+                  Expression Statement:
+constant expression 3. double 
+                  Expression Statement:
+constant expression 3100. double 
+                  Expression Statement:
+constant expression 1000000. double 
+                  Expression Statement:
+constant expression 3.1 double 
+                  Expression Statement:
+constant expression 3.141592654L long double 
+                  Expression Statement:
+constant expression 123456.123456 double 
+                  Expression Statement:
+constant expression 3E1 double 
+                  Expression Statement:
+constant expression 3e1f float 
+                  Expression Statement:
+constant expression 3E11F float 
+                  Expression Statement:
+constant expression 3E11 double 
+                  Expression Statement:
+constant expression 3e+11 double 
+                  Expression Statement:
+constant expression 3E-11 double 
+                  Expression Statement:
+constant expression 3.0E1 double 
+                  Expression Statement:
+constant expression 3.0E1L long double 
+                  Expression Statement:
+constant expression 3.0e11 double 
+                  Expression Statement:
+constant expression 3.0E11l long double 
+                  Expression Statement:
+constant expression 3.0e+11l long double 
+                  Expression Statement:
+constant expression 3.0E-11 double 
+                  Expression Statement:
+constant expression 123456.123456E-16 double 
+                  Expression Statement:
+constant expression 0xff.ffp0 double 
+                  Expression Statement:
+constant expression 0x1.ffffffffp128l long double 
+
Index: src/Tests/Expect-v/OccursError.txt
===================================================================
--- src/Tests/Expect-v/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,54 @@
+f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to function
+          with parameters
+            instance of type T (not function type) 
+            pointer to instance of type T (not function type) 
+          returning 
+            nothing 
+
+    returning 
+      nothing 
+
+g: forall
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type U (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+test: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: g
+
+
Index: src/Tests/Expect-v/Operators.txt
===================================================================
--- src/Tests/Expect-v/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,114 @@
+?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?*?
+...to: 
+    Name: number1
+    Name: number2
+
+
+
+?+?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+struct accumulator
+    with members
+      total: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct accumulator 
+      _src: instance of struct accumulator 
+    returning 
+      instance of struct accumulator 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    total: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct accumulator 
+                Member Expression, with field: 
+                  total: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct accumulator 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct accumulator 
+
+
+
+?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of a: char 
+        Declaration of b: char 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?()
+            ...to: 
+                Name: a
+                Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: a
+            ...to: 
+                Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+?
+            ...to: 
+                Name: a
+                Name: b
+
+        Declaration of ?+?: instance of struct accumulator 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+?
+            ...to: 
+                Name: a
+                Name: b
+
+
Index: src/Tests/Expect-v/Quad.txt
===================================================================
--- src/Tests/Expect-v/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,93 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+square: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?*?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?*?
+...to: 
+    Name: t
+    Name: t
+
+
+
+quad: forall
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          square: pointer to function
+              with parameters
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: square
+...to: 
+    Applying untyped: 
+        Name: square
+    ...to: 
+        Name: u
+
+
+
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: quad
+            ...to: 
+constant expression 7 signed int 
+
Index: src/Tests/Expect-v/Rank2.txt
===================================================================
--- src/Tests/Expect-v/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,117 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+a: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              nothing 
+
+        Declaration of g: function
+            with parameters
+              p: pointer to forall
+                    U: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type U (not function type) 
+                              instance of type U (not function type) 
+                            returning 
+                              instance of type U (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type U (not function type) 
+                  returning 
+                    nothing 
+
+            returning 
+              nothing 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Name: f
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of h: function
+            with parameters
+              null: pointer to signed int 
+            returning 
+              nothing 
+
+        Declaration of id: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        Declaration of 0: forall
+              T: incomplete type
+            pointer to instance of type T (not function type) 
+        Declaration of 0: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: h
+            ...to: 
+                Applying untyped: 
+                    Name: id
+                ...to: 
+                    Applying untyped: 
+                        Name: id
+                    ...to: 
+                        Applying untyped: 
+                            Name: id
+                        ...to: 
+                            Name: 0
+
+
Index: src/Tests/Expect-v/Scope.txt
===================================================================
--- src/Tests/Expect-v/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,282 @@
+x: signed int 
+z: double 
+struct __anonymous0
+    with members
+      a: signed int 
+      b: double 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    a: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    b: double 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+u: type for instance of struct __anonymous0 
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+f: function
+    with parameters
+      y: signed int 
+    returning 
+      signed int 
+
+q: double 
+w: function
+    with parameters
+      y: double 
+      v: instance of type u (not function type) 
+    returning 
+      double 
+    with body 
+      CompoundStmt
+        Declaration of x: type
+          with assertions
+            t: function
+                with parameters
+                  instance of type u (not function type) 
+                returning 
+                  instance of type x (not function type) 
+
+
+        Declaration of ?=?: automatically generated function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+        Declaration of u: instance of type u (not function type) with initializer 
+          Simple Initializer:             Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: u
+                Name: y
+
+        Declaration of z: instance of type x (not function type) with initializer 
+          Simple Initializer:             Applying untyped: 
+                Name: t
+            ...to: 
+                Name: u
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: z
+                Applying untyped: 
+                    Name: t
+                ...to: 
+                    Name: u
+
+
+p: double 
+context has_u
+    with parameters
+      z: type
+
+    with members
+      u: function
+          with parameters
+            instance of type z (not function type) 
+          returning 
+            instance of type z (not function type) 
+
+
+q: forall
+      t: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type t (not function type) 
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+          u: pointer to function
+              with parameters
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+
+    function
+    with parameters
+      the_t: instance of type t (not function type) 
+    returning 
+      double 
+    with body 
+      CompoundStmt
+        Declaration of y: instance of type t (not function type) with initializer 
+          Simple Initializer:             Applying untyped: 
+                Name: u
+            ...to: 
+                Name: the_t
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: y
+                Applying untyped: 
+                    Name: u
+                ...to: 
+                    Name: the_t
+
+
+f: function
+    with parameters
+      p: double 
+    returning 
+      float 
+    with body 
+      CompoundStmt
+        Declaration of y: signed int 
+                  CompoundStmt
+            Declaration of y: char 
+                          CompoundStmt
+                Declaration of x: char 
+                Declaration of z: char with initializer 
+                  Simple Initializer:                     Name: x
+
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: z
+                        Name: x
+
+
+            Declaration of x: char with initializer 
+              Simple Initializer:                 Name: y
+
+                          Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: x
+                    Name: y
+
+
+        Declaration of q: char with initializer 
+          Simple Initializer:             Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: q
+                Name: y
+
+
+g: function
+    returning 
+      float 
+    with body 
+      CompoundStmt
+                  Try Statement
+            with block: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: some_func
+                    ...to: 
+
+            and handlers: 
+              Catch Statement
+              ... catching
+x: char 
+
+        Declaration of z: char 
+
+q: function
+      accepting unspecified arguments
+    returning 
+      double 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+                  Switch on condition: Name: i
+
+              Case Name: 0
+
+                  Return Statement, returning: Name: q
+
+              Default 
+                  Return Statement, returning: Name: i
+
+
+
Index: src/Tests/Expect-v/ScopeErrors.txt
===================================================================
--- src/Tests/Expect-v/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+Error: duplicate function definition for butThisIsAnError: function
+  with parameters
+    double 
+  returning 
+    double 
+  with body 
+    CompoundStmt
+
Index: src/Tests/Expect-v/ShortCircuit.txt
===================================================================
--- src/Tests/Expect-v/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,105 @@
+?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+0: signed int 
+g: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      a: signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of b: signed int 
+        Declaration of c: float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Conditional expression on: 
+                  Cast of:
+                    Applying untyped: 
+                        Name: ?!=?
+                    ...to: 
+                        Name: a
+                        Name: 0
+
+                  to:
+                    signed int 
+                First alternative:
+                  Name: b
+                Second alternative:
+                  Name: c
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: a
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: c
+      Name: 0
+
+to:
+  signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: a
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: b
+      Name: 0
+
+to:
+  signed int 
+
+
+
Index: src/Tests/Expect-v/Statement.txt
===================================================================
--- src/Tests/Expect-v/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,108 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+0: signed int 
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+        Declaration of struct __anonymous0
+            with members
+              b: signed int 
+
+        Declaration of ?=?: automatically generated inline function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+            with body 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Member Expression, with field: 
+                            b: signed int 
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                        Member Expression, with field: 
+                          b: signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct __anonymous0 
+
+                                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+        Declaration of a: instance of struct __anonymous0 
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Name: a
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              CompoundStmt
+                                  While on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Name: a
+                            Name: 0
+
+                      to:
+                        signed int 
+                  .... with body: 
+                      CompoundStmt
+                        Declaration of b: pointer to signed int 
+                                                  Labels: {}
+                          For Statement
+                            initialization: 
+                              Expression Statement:
+                                Name: b
+
+                            condition: 
+                              Cast of:
+                                Applying untyped: 
+                                    Name: ?!=?
+                                ...to: 
+                                    Name: a
+                                    Name: 0
+
+                              to:
+                                signed int 
+
+                            increment: 
+                              Name: b
+
+                            statement block: 
+                              CompoundStmt
+
+
+
+
+
Index: src/Tests/Expect-v/StructMember.txt
===================================================================
--- src/Tests/Expect-v/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,693 @@
+struct S
+    with members
+      m1: signed int with bitfield width constant expression 3 signed int 
+      m2: signed int with bitfield width constant expression 4 signed int 
+      signed int with bitfield width constant expression 2 signed int 
+      signed int with bitfield width constant expression 3 signed int 
+      signed int with bitfield width constant expression 4 signed int 
+      m3: signed int 
+      m4: signed int 
+      m5: signed int 
+      m6: signed int 
+      m7: pointer to signed int 
+      m8: pointer to signed int 
+      m9: pointer to signed int 
+      m10: pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      m11: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      T: signed int 
+      T: signed int 
+      m12: pointer to signed int 
+      m13: pointer to signed int 
+      m14: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+      pointer to signed int 
+      signed int 
+      signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m1: signed int with bitfield width constant expression 3 signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m2: signed int with bitfield width constant expression 4 signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m3: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m4: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m5: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m6: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m7: pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m8: pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m9: pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m10: pointer to function
+                        accepting unspecified arguments
+                      returning 
+                        signed int 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m11: pointer to function
+                      with parameters
+                        signed int 
+                      returning 
+                        pointer to signed int 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    T: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    T: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m12: pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m13: pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m14: pointer to function
+                      with parameters
+                        signed int 
+                      returning 
+                        pointer to signed int 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to function
+                        accepting unspecified arguments
+                      returning 
+                        signed int 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to pointer to function
+                      with parameters
+                        signed int 
+                      returning 
+                        signed int 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+s: instance of struct S 
+union U
+    with members
+      m1: array of signed int with dimension of constant expression 5 signed int 
+      m2: array of signed int with dimension of constant expression 5 signed int 
+      m3: pointer to signed int 
+      m4: pointer to signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of union U 
+      _src: instance of union U 
+    returning 
+      instance of union U 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: __builtin_memcpy
+            ...to: 
+                Variable Expression: _dst: pointer to instance of union U 
+                Address of:
+                  Variable Expression: _src: instance of union U 
+                Sizeof Expression on: instance of union U 
+
+                  Return Statement, returning: Variable Expression: _src: instance of union U 
+
+
+
+u: instance of union U 
Index: src/Tests/Expect-v/Subrange.txt
===================================================================
--- src/Tests/Expect-v/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,409 @@
+context ordered
+    with parameters
+      T: type
+
+    with members
+      ?<?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            signed int 
+
+      ?<=?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            signed int 
+
+
+subrange: type for instance of type base_t (not function type) 
+  with parameters
+    base_t: type
+      with assertions
+        instance of context ordered 
+          with parameters
+            instance of type base_t (not function type) 
+
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type subrange (not function type) 
+      _src: instance of type subrange (not function type) 
+    returning 
+      instance of type subrange (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type subrange (not function type) 
+
+    to:
+      pointer to instance of type base_t (not function type) 
+    Cast of:
+      Variable Expression: _src: instance of type subrange (not function type) 
+
+    to:
+      instance of type base_t (not function type) 
+
+
+
+day_of_month: instance of type subrange (not function type) 
+  with parameters
+    unsigned int 
+          Name: 1
+
+    constant expression 31 signed int 
+
+lcase: instance of type subrange (not function type) 
+  with parameters
+    char 
+    constant expression 'a' char 
+    constant expression 'z' char 
+
+foo: instance of type subrange (not function type) 
+  with parameters
+    signed int 
+          Name: 0
+
+          Applying untyped: 
+          Name: ?&?
+      ...to: 
+          Applying untyped: 
+              Name: rand
+          ...to: 
+constant expression 0xF signed int 
+
+lbound: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      v: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Name: low
+
+
+
+hbound: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      v: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Name: high
+
+
+
+lday: unsigned int with initializer 
+  Simple Initializer:     Applying untyped: 
+        Name: lbound
+    ...to: 
+        Name: day_of_month
+
+?=?: inline forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?<?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+          ?<=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+
+    function
+    with parameters
+      target: pointer to instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+      source: instance of type T (not function type) 
+    returning 
+      instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    with body 
+      CompoundStmt
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: low
+          Name: source
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: source
+          Name: high
+      Name: 0
+
+to:
+  signed int 
+
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Applying untyped: 
+                          Name: *?
+                      ...to: 
+                          Cast of:
+                            Name: target
+
+                          to:
+                            pointer to instance of type T (not function type) 
+                    Name: source
+              Expression Statement:
+                Applying untyped: 
+                    Name: abort
+                ...to: 
+
+                  Return Statement, returning: Name: target
+
+
+
+?=?: inline forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?<?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+          ?<=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+
+    function
+    with parameters
+      target: pointer to instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: t_low
+
+                      Name: t_high
+
+
+      source: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: s_low
+
+                      Name: s_high
+
+
+    returning 
+      instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: t_low
+
+                      Name: t_high
+
+
+    with body 
+      CompoundStmt
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: t_low
+          Name: s_low
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: t_low
+          Name: source
+      Name: 0
+
+to:
+  signed int 
+
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: s_high
+          Name: t_high
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: source
+          Name: t_high
+      Name: 0
+
+to:
+  signed int 
+
+      Name: 0
+
+to:
+  signed int 
+
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Applying untyped: 
+                          Name: *?
+                      ...to: 
+                          Cast of:
+                            Name: target
+
+                          to:
+                            pointer to instance of type T (not function type) 
+                    Name: source
+              Expression Statement:
+                Applying untyped: 
+                    Name: abort
+                ...to: 
+
+                  Return Statement, returning: Name: target
+
+
+
Index: src/Tests/Expect-v/Switch.txt
===================================================================
--- src/Tests/Expect-v/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,131 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of i: signed int 
+                  Switch on condition: Name: i
+
+              Case constant expression 3 signed int 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Switch on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Switch on condition: constant expression 3 signed int 
+              Default 
+              Case constant expression 2 signed int 
+              Case constant expression 3 signed int 
+                  Expression Statement:
+constant expression 3 signed int 
+                  Switch on condition: Name: i
+
+
+                  Switch on condition: Name: i
+
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 8 signed int constant expression 10 signed int 
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int               Case constant expression 3 signed int 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 'A' char constant expression 'Z' char 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 5 signed int constant expression 6 signed int 
+              Case Tuple:
+  constant expression 2 signed int 
+  constant expression 4 signed int 
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int                   Branch (Break)
+
+                  Choose on condition: Name: i
+
+              Case constant expression 3 signed int 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Choose on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Choose on condition: Name: i
+
+              Case constant expression 3 signed int 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 'A' char constant expression 'Z' char 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 5 signed int constant expression 6 signed int 
+              Case Tuple:
+  constant expression 2 signed int 
+  constant expression 4 signed int 
+  constant expression 7 signed int 
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int                   Fall-through statement
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int               Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 8 signed int constant expression 10 signed int 
+                  Fall-through statement
+
+
Index: src/Tests/Expect-v/Tuple.txt
===================================================================
--- src/Tests/Expect-v/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,670 @@
+f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+g: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+h: static function
+    with parameters
+      a: signed int 
+      b: signed int 
+      c: pointer to signed int 
+      d: pointer to char 
+    returning 
+      signed int 
+      pointer to signed int 
+      pointer to signed int 
+      signed int 
+
+struct inner
+    with members
+      f2: signed int 
+      f3: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct inner 
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct inner 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f3: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct inner 
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct inner 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct inner 
+
+
+
+struct outer
+    with members
+      f1: signed int 
+      i: instance of struct inner 
+      f4: double 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct outer 
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct outer 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: instance of struct inner 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct outer 
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct outer 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f4: double 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct outer 
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct outer 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct outer 
+
+
+
+s: instance of struct outer 
+sp: pointer to instance of struct outer 
+t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+t2: static const tuple of types
+    signed int 
+    const signed int 
+
+t3: static const tuple of types
+    signed int 
+    const signed int 
+
+printf: function
+    with parameters
+      fmt: pointer to char 
+      and a variable number of other arguments
+    returning 
+      rc: signed int 
+
+printf: function
+    with parameters
+      fmt: pointer to char 
+      and a variable number of other arguments
+    returning 
+      signed int 
+
+f1: function
+    with parameters
+      w: signed int 
+    returning 
+      x: short signed int 
+      y: unsigned int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: y
+
+                                          Name: x
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: x
+
+                                                  Name: y
+
+                    Tuple:
+                                              Name: w
+
+                      constant expression 23 signed int 
+
+
+g1: function
+    returning 
+      r: tuple of types
+          signed int 
+          char 
+          long signed int 
+          signed int 
+
+    with body 
+      CompoundStmt
+        Declaration of x: short signed int 
+        Declaration of p: short signed int 
+        Declaration of y: unsigned int 
+        Declaration of z: tuple of types
+            signed int 
+            signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: x
+
+                                          Name: y
+
+                                          Name: z
+
+                Tuple:
+                                      Name: p
+
+                                      Applying untyped: 
+                        Name: f
+                    ...to: 
+constant expression 17 signed int 
+                  constant expression 3 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: x
+
+                                          Name: y
+
+                                          Name: z
+
+                Cast of:
+                  Tuple:
+                                          Name: p
+
+                                          Applying untyped: 
+                          Name: f
+                      ...to: 
+constant expression 17 signed int 
+                    constant expression 3 signed int 
+
+                to:
+                  short signed int 
+                  unsigned int 
+                  tuple of types
+                      signed int 
+                      signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: r
+                Tuple:
+                                      Name: x
+
+                                      Name: y
+
+                                      Name: z
+
+
+
+main: C function
+    with parameters
+      argc: signed int 
+      argv: pointer to pointer to char 
+    returning 
+      rc: signed int 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+        Declaration of b: signed int 
+        Declaration of c: signed int 
+        Declaration of d: signed int 
+        Declaration of t: instance of struct outer with initializer 
+          Compound initializer:  
+            Simple Initializer:               Tuple:
+                                  Name: 1
+
+                constant expression 7.0 double 
+
+              designated by:                 Name: f1
+                Name: f4
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Tuple:
+                  constant expression 3 signed int 
+                  constant expression 5 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Tuple:
+                  constant expression 3 signed int 
+                  constant expression 5 signed int 
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: t1
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Name: t1
+constant expression 3 signed int 
+                  Expression Statement:
+            Tuple:
+
+                  Expression Statement:
+            Tuple:
+              constant expression 3 signed int 
+              constant expression 5 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Tuple:
+                  constant expression 4.6 double 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: c
+
+                                                  Name: d
+
+                    Tuple:
+                      constant expression 3 signed int 
+                      constant expression 5 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                                          Tuple:
+                                                  Name: c
+
+
+                Tuple:
+                  constant expression 2 signed int 
+                                      Tuple:
+                                              Name: a
+
+                                              Name: b
+
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Conditional expression on: 
+                  Cast of:
+                    Applying untyped: 
+                        Name: ?!=?
+                    ...to: 
+                        Applying untyped: 
+                            Name: ?>?
+                        ...to: 
+constant expression 3 signed int constant expression 4 signed int                         Name: 0
+
+                  to:
+                    signed int 
+                First alternative:
+                  Tuple:
+                                          Name: b
+
+                    constant expression 6 signed int 
+                Second alternative:
+                  Tuple:
+                    constant expression 7 signed int 
+                    constant expression 8 signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: t1
+                Tuple:
+                                      Name: a
+
+                                      Name: b
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: t1
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: t2
+                    Tuple:
+                                              Name: a
+
+                                              Name: b
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: c
+
+                                                  Name: d
+
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: d
+                        Applying untyped: 
+                            Name: ?+=?
+                        ...to: 
+                            Address of:
+                              Name: c
+                            Name: 1
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: c
+
+                                                  Name: d
+
+                    Name: t1
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: t1
+                    Tuple:
+                                              Name: c
+
+                                              Name: d
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: t1
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: t2
+                        Tuple:
+                                                      Name: c
+
+                                                      Name: d
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: t1
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                        constant expression 3 signed int 
+                        constant expression 4 signed int 
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Tuple:
+                            constant expression 3 signed int 
+                            constant expression 4 signed int 
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: t1
+                            Tuple:
+                              constant expression 3 signed int 
+                              constant expression 4 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: s
+                Tuple:
+                  constant expression 11 signed int 
+                  constant expression 12 signed int 
+                  constant expression 13 signed int 
+                  constant expression 3.14159 double 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: s
+                Applying untyped: 
+                    Name: h
+                ...to: 
+constant expression 3 signed int constant expression 3 signed int                     Name: 0
+constant expression "abc" array of char with dimension of constant expression 6 unsigned int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: h
+                ...to: 
+constant expression 3 signed int constant expression 3 signed int                     Name: 0
+constant expression "abc" array of char with dimension of constant expression 6 unsigned int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: sp
+                Name: sp
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: printf
+            ...to: 
+constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int                 Name: s
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: rc
+                Name: 0
+
+
Index: src/Tests/Expect-v/TypeGenerator.txt
===================================================================
--- src/Tests/Expect-v/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,409 @@
+context addable
+    with parameters
+      T: type
+
+    with members
+      ?+?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+
+struct __anonymous0
+    with members
+      data: instance of type T (not function type) 
+      next: pointer to instance of type List1 (not function type) 
+        with parameters
+          instance of type T (not function type) 
+
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    data: instance of type T (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    next: pointer to instance of type List1 (not function type) 
+                    with parameters
+                      instance of type T (not function type) 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+List1: type for pointer to instance of struct __anonymous0 
+  with parameters
+    T: type
+      with assertions
+        instance of context addable 
+          with parameters
+            instance of type T (not function type) 
+
+
+
+  with assertions
+    instance of context addable 
+      with parameters
+        instance of type T (not function type) 
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+    to:
+      pointer to pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type List1 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+
+
+
+li: instance of type List1 (not function type) 
+  with parameters
+    signed int 
+
+f: function
+    with parameters
+      g: pointer to function
+          with parameters
+            signed int 
+          returning 
+            instance of type List1 (not function type) 
+              with parameters
+                signed int 
+
+
+    returning 
+      signed int 
+
+h: function
+    with parameters
+      p: pointer to instance of type List1 (not function type) 
+        with parameters
+          signed int 
+
+    returning 
+      signed int 
+
+struct S1
+    with parameters
+      T: type
+
+struct S1
+    with parameters
+      T: type
+
+    with members
+      i: instance of type T (not function type) 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: instance of type T (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S1 
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S1 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct S1 
+
+
+
+v1: instance of struct S1 
+  with parameters
+    signed int 
+
+p: pointer to instance of struct S1 
+  with parameters
+    signed int 
+
+struct S2
+    with parameters
+      T: type
+
+    with members
+      i: instance of type T (not function type) 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: instance of type T (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S2 
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S2 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct S2 
+
+
+
+v2: instance of struct S2 
+  with parameters
+    signed int 
+
+struct __anonymous1
+    with parameters
+      T: type
+
+    with members
+      i: instance of type T (not function type) 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: instance of type T (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous1 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+v2: instance of struct __anonymous1 
+  with parameters
+    signed int 
+
+struct node
+    with parameters
+      T: type
+        with assertions
+          instance of context addable 
+            with parameters
+              instance of type T (not function type) 
+
+
+
+    with members
+      data: instance of type T (not function type) 
+      next: pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct node 
+      _src: instance of struct node 
+    returning 
+      instance of struct node 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    data: instance of type T (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct node 
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct node 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    next: pointer to instance of struct node 
+                    with parameters
+                      instance of type T (not function type) 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct node 
+                Member Expression, with field: 
+                  next: pointer to instance of struct node 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct node 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct node 
+
+
+
+List: type for pointer to instance of struct node 
+  with parameters
+    instance of type T (not function type) 
+
+  with parameters
+    T: type
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type List (not function type) 
+      _src: instance of type List (not function type) 
+    returning 
+      instance of type List (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List (not function type) 
+
+    to:
+      pointer to pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+    Cast of:
+      Variable Expression: _src: instance of type List (not function type) 
+
+    to:
+      pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+
+
+
+my_list: instance of type List (not function type) 
+  with parameters
+    signed int 
+
+Complex: type
+  with assertions
+    instance of context addable 
+      with parameters
+        instance of type Complex (not function type) 
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type Complex (not function type) 
+      _src: instance of type Complex (not function type) 
+    returning 
+      instance of type Complex (not function type) 
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Cast of:
+              Name: my_list
+
+            to:
+              instance of struct node 
+                with parameters
+                  signed int 
+
+
+
Index: src/Tests/Expect-v/Typedef.txt
===================================================================
--- src/Tests/Expect-v/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,86 @@
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of T: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: T
+            ...to: 
+constant expression 3 signed int 
+
+struct __anonymous0
+    with members
+      T: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    T: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+fred: instance of struct __anonymous0 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+b: pointer to function
+    with parameters
+      signed int 
+      char 
+    returning 
+      signed int 
+
+g: function
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of a: double 
+
+c: pointer to function
+    with parameters
+      signed int 
+      char 
+    returning 
+      signed int 
+
+p: type-of expression constant expression 3 signed int 
+q: type-of expression constant expression 3 signed int 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of w: type-of expression constant expression 3 signed int 
+        Declaration of x: type-of expression constant expression 3 signed int 
+
+array: array of pointer to signed int with dimension of constant expression 10 signed int 
Index: src/Tests/Expect-v/TypedefDeclarator.txt
===================================================================
--- src/Tests/Expect-v/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,185 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of f1: signed int 
+        Declaration of f2: signed int 
+        Declaration of f3: pointer to signed int 
+        Declaration of f4: pointer to pointer to signed int 
+        Declaration of f5: pointer to const pointer to signed int 
+        Declaration of f6: const pointer to const pointer to signed int 
+        Declaration of f7: pointer to signed int 
+        Declaration of f8: pointer to pointer to signed int 
+        Declaration of f9: pointer to const pointer to signed int 
+        Declaration of f10: const pointer to const pointer to signed int 
+        Declaration of f11: pointer to signed int 
+        Declaration of f12: pointer to pointer to signed int 
+        Declaration of f13: pointer to const pointer to signed int 
+        Declaration of f14: const pointer to const pointer to signed int 
+        Declaration of f15: open array of signed int 
+        Declaration of f16: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f17: open array of signed int 
+        Declaration of f18: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f19: open array of pointer to signed int 
+        Declaration of f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f21: open array of pointer to pointer to signed int 
+        Declaration of f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f23: open array of pointer to const pointer to signed int 
+        Declaration of f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f25: open array of const pointer to const pointer to signed int 
+        Declaration of f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f27: open array of pointer to signed int 
+        Declaration of f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f29: open array of pointer to pointer to signed int 
+        Declaration of f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f31: open array of pointer to const pointer to signed int 
+        Declaration of f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f33: open array of const pointer to const pointer to signed int 
+        Declaration of f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f35: open array of pointer to signed int 
+        Declaration of f36: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f37: open array of pointer to pointer to signed int 
+        Declaration of f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f39: open array of pointer to const pointer to signed int 
+        Declaration of f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f41: open array of const pointer to const pointer to signed int 
+        Declaration of f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f65: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f66: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f67: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f68: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f69: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f70: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f71: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f72: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f73: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f74: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f75: pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f76: pointer to pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f77: pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f78: const pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f79: pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f80: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f81: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              const pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
Index: src/Tests/Expect-v/TypedefParamDeclarator.txt
===================================================================
--- src/Tests/Expect-v/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,262 @@
+fred: function
+    with parameters
+      f1: signed int 
+      f3: pointer to signed int 
+      f4: pointer to pointer to signed int 
+      f5: pointer to const pointer to signed int 
+      f6: const pointer to const pointer to signed int 
+      f11: pointer to signed int 
+      f12: pointer to pointer to signed int 
+      f13: pointer to const pointer to signed int 
+      f14: const pointer to const pointer to signed int 
+      f15: pointer to signed int 
+      f16: pointer to array of constant expression 10 signed int signed int 
+      f19: pointer to pointer to signed int 
+      f20: pointer to array of constant expression 10 signed int pointer to signed int 
+      f21: pointer to pointer to pointer to signed int 
+      f22: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f23: pointer to pointer to const pointer to signed int 
+      f24: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f25: pointer to const pointer to const pointer to signed int 
+      f26: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f35: pointer to pointer to signed int 
+      f36: pointer to array of constant expression 10 signed int pointer to signed int 
+      f37: pointer to pointer to pointer to signed int 
+      f38: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f39: pointer to pointer to const pointer to signed int 
+      f40: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f41: pointer to const pointer to const pointer to signed int 
+      f42: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f43: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f44: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f49: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f50: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f51: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f52: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f53: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f54: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f55: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f56: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f57: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f58: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f59: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f60: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f61: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f62: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f63: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f64: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f65: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f67: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f68: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f69: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f70: pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f75: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f76: pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f77: pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f78: const pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f79: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f80: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f81: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f82: const pointer to variable length array of signed int 
+      f83: const pointer to array of constant expression 3 signed int signed int 
+      f84: pointer to static array of constant expression 3 signed int signed int 
+      f85: const pointer to static array of constant expression 3 signed int signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+      f90: const pointer to variable length array of pointer to signed int 
+      f91: const pointer to array of constant expression 3 signed int pointer to signed int 
+      f92: pointer to static array of constant expression 3 signed int pointer to pointer to signed int 
+      f93: const pointer to static array of constant expression 3 signed int pointer to const pointer to signed int 
+      f94: const pointer to static array of constant expression 3 signed int const pointer to const pointer to signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f100: const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f101: const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f102: pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f103: const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      f108: const pointer to variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f109: const pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f110: pointer to static array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f111: const pointer to static array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f112: const pointer to static array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
Index: src/Tests/Expect-v/Typeof.txt
===================================================================
--- src/Tests/Expect-v/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,32 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of v1: pointer to signed int 
+        Declaration of v2: type-of expression           Name: v1
+
+        Declaration of v3: array of type-of expression           Applying untyped: 
+              Name: *?
+          ...to: 
+              Name: v1
+with dimension of constant expression 4 signed int 
+        Declaration of v4: array of pointer to char with dimension of constant expression 4 signed int 
+        Declaration of v5: array of pointer to char with dimension of constant expression 4 signed int 
+        Declaration of v6: pointer to signed int 
+        Declaration of v7: pointer to function
+            with parameters
+              signed int 
+              p: signed int 
+            returning 
+              signed int 
+
+        Declaration of v8: pointer to function
+            with parameters
+              signed int 
+              p: signed int 
+            returning 
+              signed int 
+
+
Index: src/Tests/Expect-v/VariableDeclarator.txt
===================================================================
--- src/Tests/Expect-v/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,253 @@
+f1: signed int 
+f2: signed int 
+f3: pointer to signed int 
+f4: pointer to pointer to signed int 
+f5: pointer to const pointer to signed int 
+f6: const pointer to const pointer to signed int 
+f7: pointer to signed int 
+f8: pointer to pointer to signed int 
+f9: pointer to const pointer to signed int 
+f10: const pointer to const pointer to signed int 
+f11: pointer to signed int 
+f12: pointer to pointer to signed int 
+f13: pointer to const pointer to signed int 
+f14: const pointer to const pointer to signed int 
+f15: open array of signed int 
+f16: array of signed int with dimension of constant expression 10 signed int 
+f17: open array of signed int 
+f18: array of signed int with dimension of constant expression 10 signed int 
+f19: open array of pointer to signed int 
+f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+f21: open array of pointer to pointer to signed int 
+f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+f23: open array of pointer to const pointer to signed int 
+f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f25: open array of const pointer to const pointer to signed int 
+f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f27: open array of pointer to signed int 
+f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+f29: open array of pointer to pointer to signed int 
+f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+f31: open array of pointer to const pointer to signed int 
+f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f33: open array of const pointer to const pointer to signed int 
+f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f35: pointer to open array of signed int 
+f36: pointer to array of signed int with dimension of constant expression 10 signed int 
+f37: pointer to pointer to open array of signed int 
+f38: pointer to pointer to array of signed int with dimension of constant expression 10 signed int 
+f39: pointer to const pointer to open array of signed int 
+f40: pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+f41: const pointer to const pointer to open array of signed int 
+f42: const pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+f43: open array of array of signed int with dimension of constant expression 3 signed int 
+f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f45: open array of array of signed int with dimension of constant expression 3 signed int 
+f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f47: open array of array of signed int with dimension of constant expression 3 signed int 
+f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f65: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f66: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f67: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+f68: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+f69: function
+    with parameters
+      signed int 
+    returning 
+      pointer to const pointer to signed int 
+
+f70: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+f71: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+f72: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+f73: function
+    with parameters
+      signed int 
+    returning 
+      pointer to const pointer to signed int 
+
+f74: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+f75: pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f76: pointer to pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f77: pointer to const pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f78: const pointer to const pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f79: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+f80: const pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+f81: const pointer to function
+    with parameters
+      signed int 
+    returning 
+      const pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+cf3: pointer to signed int 
+cf4: pointer to pointer to signed int 
+cf5: pointer to const pointer to signed int 
+cf6: const pointer to const pointer to signed int 
+cf15: open array of signed int 
+cf16: array of signed int with dimension of constant expression 10 signed int 
+cf19: open array of pointer to signed int 
+cf20: array of pointer to signed int with dimension of constant expression 10 signed int 
+cf21: open array of pointer to pointer to signed int 
+cf22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+cf23: open array of pointer to const pointer to signed int 
+cf24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+cf25: open array of const pointer to const pointer to signed int 
+cf26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+cf35: pointer to open array of signed int 
+cf36: pointer to array of signed int with dimension of constant expression 10 signed int 
+cf37: pointer to pointer to open array of signed int 
+cf38: pointer to pointer to array of signed int with dimension of constant expression 10 signed int 
+cf39: pointer to const pointer to open array of signed int 
+cf40: pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+cf41: const pointer to const pointer to open array of signed int 
+cf42: const pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+cf43: open array of array of signed int with dimension of constant expression 3 signed int 
+cf44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+cf50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+cf52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf53: open array of array of const pointer to signed int with dimension of constant expression 3 signed int 
+cf54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+cf56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf65: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+cf66: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+cf67: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+cf68: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+cf69: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to pointer to signed int 
+
+cf70: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+v3: pointer to open array of pointer to open array of pointer to function
+    with parameters
+      pointer to open array of pointer to open array of signed int 
+      pointer to open array of pointer to open array of signed int 
+    returning 
+      pointer to open array of pointer to open array of signed int 
+
Index: src/Tests/Expect-v/gcc900407-1.txt
===================================================================
--- src/Tests/Expect-v/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,71 @@
+foo: function
+    with parameters
+      a: signed int 
+      b: signed int 
+      p: pointer to signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of c: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Applying untyped: 
+                      Name: ?[?]
+                  ...to: 
+                      Name: p
+constant expression 2 signed int                 Applying untyped: 
+                    Name: ?+?
+                ...to: 
+                    Name: a
+constant expression 0x1000 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: c
+                Applying untyped: 
+                    Name: ?+?
+                ...to: 
+                    Name: b
+constant expression 0xffff0000 unsigned int 
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?==?
+                    ...to: 
+                        Applying untyped: 
+                            Name: ?+?
+                        ...to: 
+                            Name: b
+constant expression 0xffff0000 unsigned int constant expression 2 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?++
+                ...to: 
+                    Address of:
+                      Name: c
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Applying untyped: 
+                      Name: ?[?]
+                  ...to: 
+                      Name: p
+constant expression 2 signed int                 Name: c
+
+
Index: src/Tests/Expect-v/gcc900516-1.txt
===================================================================
--- src/Tests/Expect-v/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,26 @@
+f: function
+    with parameters
+      c: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: !?
+...to: 
+    Conditional expression on: 
+      Cast of:
+        Applying untyped: 
+            Name: ?!=?
+        ...to: 
+            Name: c
+            Name: 0
+
+      to:
+        signed int 
+    First alternative:
+constant expression 2.0 double     Second alternative:
+constant expression 1.0 double 
+
+
+
Index: src/Tests/Expect-v/gcc920301-1.txt
===================================================================
--- src/Tests/Expect-v/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,18 @@
+f: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of t: static open array of pointer to void 
+                  Null Statement
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of p: static array of unsigned int with dimension of constant expression 5 signed int 
+
Index: src/Tests/Expect-v/gcc920409-1.txt
===================================================================
--- src/Tests/Expect-v/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,32 @@
+x: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of y: signed int 
+                  Expression Statement:
+            Conditional expression on: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?>?
+                    ...to: 
+                        Name: y
+constant expression 0.0 double                     Name: 0
+
+              to:
+                signed int 
+            First alternative:
+              Name: y
+            Second alternative:
+              Applying untyped: 
+                  Name: ?-?
+              ...to: 
+                  Name: y
+                  Name: 1
+
+
+
Index: src/Tests/Expect-v/gcc920409-2.txt
===================================================================
--- src/Tests/Expect-v/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,90 @@
+x: function
+      accepting unspecified arguments
+    returning 
+      double 
+    with body 
+      CompoundStmt
+        Declaration of x1: signed int 
+        Declaration of x2: signed int 
+        Declaration of v: double 
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Cast of:
+                          Applying untyped: 
+                              Name: ?-?
+                          ...to: 
+                              Name: x1
+                              Name: x2
+
+                        to:
+                          long signed int 
+                        Name: 1
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Return Statement, returning: Applying untyped: 
+    Name: -?
+...to: 
+constant expression 1.0 double 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: v
+                Applying untyped: 
+                    Name: t
+                ...to: 
+                    Name: v
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: v
+                Applying untyped: 
+                    Name: y
+                ...to: 
+                    Name: 1
+                    Conditional expression on: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?>?
+                            ...to: 
+                                Name: v
+constant expression 0.0 double                             Name: 0
+
+                      to:
+                        signed int 
+                    First alternative:
+                      Cast of:
+                        Name: v
+
+                      to:
+                        signed int 
+                    Second alternative:
+                      Applying untyped: 
+                          Name: ?-?
+                      ...to: 
+                          Cast of:
+                            Name: v
+
+                          to:
+                            signed int 
+                          Name: 1
+
+
+
Index: src/Tests/Expect-v/gcc920410-2.txt
===================================================================
--- src/Tests/Expect-v/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,93 @@
+joe: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of j: signed int 
+                  While on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Name: 1
+                    Name: 0
+
+              to:
+                signed int 
+          .... with body: 
+              CompoundStmt
+                                  Labels: {}
+                  For Statement
+                    initialization: 
+                      Expression Statement:
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: j
+                            Name: 0
+
+                    condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: j
+constant expression 4 signed int                             Name: 0
+
+                      to:
+                        signed int 
+
+                    increment: 
+                      Applying untyped: 
+                          Name: ?++
+                      ...to: 
+                          Address of:
+                            Name: j
+
+                    statement block: 
+                      Null Statement
+
+
+                                  Labels: {}
+                  For Statement
+                    initialization: 
+                      Expression Statement:
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: j
+                            Name: 0
+
+                    condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: j
+constant expression 4 signed int                             Name: 0
+
+                      to:
+                        signed int 
+
+                    increment: 
+                      Applying untyped: 
+                          Name: ?++
+                      ...to: 
+                          Address of:
+                            Name: j
+
+                    statement block: 
+                      Null Statement
+
+
+
+
Index: src/Tests/Expect-v/gcc920501-1.txt
===================================================================
--- src/Tests/Expect-v/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,16 @@
+a: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of b: open array of pointer to pointer to signed int with initializer 
+          Compound initializer:  
+            Simple Initializer:               Applying untyped: 
+                  Name: LabAddress
+              ...to: 
+                  Name: c
+
+                  Null Statement
+
+
Index: src/Tests/Expect-v/gcc920501-11.txt
===================================================================
--- src/Tests/Expect-v/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+cfa-cpp: Parser/ExpressionNode.cc:456: virtual Expression* CompositeExprNode::build() const: Assertion `args.size() == 1' failed.
+Aborted (core dumped)
Index: src/Tests/Expect-v/gcc920501-19.txt
===================================================================
--- src/Tests/Expect-v/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,18 @@
+x: long long signed int with initializer 
+  Simple Initializer:     Name: 0
+
+y: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: x
+                Name: 0
+
+
