function name: decodeObject
   0.case
     *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit 	 [CHAR ' ' CHAR '\n' CHAR '\t' CHAR '\r' CHAR ',']
   1.case
     *ast.BasicLit -> *ast.AssignStmt -> *ast.SelectorExpr 	 [CHAR '{' = dec cursor]
     *ast.BinaryExpr -> *ast.SelectorExpr 	 [+ dec cursor]
     *ast.BasicLit 	 [INT 1]
     *ast.IfStmt -> *ast.BinaryExpr -> *ast.BasicLit 	 [== keys INT 0]
     *ast.BlockStmt -> *ast.ForStmt -> *ast.BinaryExpr -> *ast.BinaryExpr -> *ast.SelectorExpr 	 [|| < dec cursor]
     *ast.SelectorExpr 	 [dec length]
     *ast.CallExpr -> *ast.SelectorExpr 	 [dec read]
     *ast.BlockStmt -> *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= k done err dec nextKey]
     *ast.IfStmt -> *ast.BinaryExpr 	 [!= err nil]
     *ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit 	 [INT 0 err]
     *ast.IfStmt -> *ast.BlockStmt -> *ast.ReturnStmt -> *ast.SelectorExpr 	 [done dec cursor]
      	 [nil]
     *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [= err j UnmarshalJSONObject]
      	 [dec k]
     *ast.IfStmt -> *ast.BinaryExpr 	 [!= err nil]
     *ast.BlockStmt -> *ast.AssignStmt -> *ast.SelectorExpr 	 [= dec err]
      	 [err]
     *ast.ReturnStmt -> *ast.BasicLit 	 [INT 0 err]
     *ast.IfStmt -> *ast.BinaryExpr -> *ast.BinaryExpr -> *ast.SelectorExpr 	 [== & dec called]
     *ast.BasicLit 	 [INT 1]
     *ast.BasicLit 	 [INT 0]
     *ast.BlockStmt -> *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= err dec skipData]
     *ast.IfStmt -> *ast.BinaryExpr 	 [!= err nil]
     *ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit 	 [INT 0 err]
     *ast.BlockStmt -> *ast.IncDecStmt -> *ast.SelectorExpr 	 [dec keysDone]
     *ast.AssignStmt -> *ast.SelectorExpr 	 [&= dec called]
     *ast.BasicLit 	 [INT 0]
     *ast.BlockStmt -> *ast.ForStmt -> *ast.BinaryExpr -> *ast.ParenExpr -> *ast.BinaryExpr -> *ast.BinaryExpr -> *ast.SelectorExpr 	 [&& || < dec cursor]
     *ast.SelectorExpr 	 [dec length]
     *ast.CallExpr -> *ast.SelectorExpr 	 [dec read]
     *ast.BinaryExpr -> *ast.SelectorExpr 	 [< dec keysDone]
      	 [keys]
     *ast.BlockStmt -> *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= k done err dec nextKey]
     *ast.IfStmt -> *ast.BinaryExpr 	 [!= err nil]
     *ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit 	 [INT 0 err]
     *ast.IfStmt -> *ast.BlockStmt -> *ast.ReturnStmt -> *ast.SelectorExpr 	 [done dec cursor]
      	 [nil]
     *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [= err j UnmarshalJSONObject]
      	 [dec k]
     *ast.IfStmt -> *ast.BinaryExpr 	 [!= err nil]
     *ast.BlockStmt -> *ast.AssignStmt -> *ast.SelectorExpr 	 [= dec err]
      	 [err]
     *ast.ReturnStmt -> *ast.BasicLit 	 [INT 0 err]
     *ast.IfStmt -> *ast.BinaryExpr -> *ast.BinaryExpr -> *ast.SelectorExpr 	 [== & dec called]
     *ast.BasicLit 	 [INT 1]
     *ast.BasicLit 	 [INT 0]
     *ast.BlockStmt -> *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= err dec skipData]
     *ast.IfStmt -> *ast.BinaryExpr 	 [!= err nil]
     *ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit 	 [INT 0 err]
     *ast.BlockStmt -> *ast.IncDecStmt -> *ast.SelectorExpr 	 [dec keysDone]
     *ast.AssignStmt -> *ast.SelectorExpr 	 [&= dec called]
     *ast.BasicLit 	 [INT 0]
     *ast.IfStmt -> *ast.BinaryExpr -> *ast.BinaryExpr -> *ast.SelectorExpr 	 [!= & dec child]
     *ast.BasicLit 	 [INT 1]
     *ast.BasicLit 	 [INT 0]
     *ast.BlockStmt -> *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= end err dec skipObject]
     *ast.AssignStmt -> *ast.SelectorExpr 	 [= dec cursor]
      	 [end]
     *ast.ReturnStmt -> *ast.SelectorExpr 	 [dec cursor]
      	 [err]
     *ast.ReturnStmt -> *ast.SelectorExpr 	 [dec cursor]
      	 [nil]
   2.case
     *ast.BasicLit -> *ast.IncDecStmt -> *ast.SelectorExpr 	 [CHAR 'n' dec cursor]
     *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= err dec assertNull]
     *ast.IfStmt -> *ast.BinaryExpr 	 [!= err nil]
     *ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit 	 [INT 0 err]
     *ast.ReturnStmt -> *ast.SelectorExpr 	 [dec cursor]
      	 [nil]

function name: decodeObjectNull
   0.case
     *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit 	 [CHAR ' ' CHAR '\n' CHAR '\t' CHAR '\r' CHAR ',']
   1.case
     *ast.BasicLit -> *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [CHAR '{' := elt vv Elem]
     *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= n reflect New]
     *ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr 	 [elt Type]
      	 [Elem]
     *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [elt Set]
      	 [n]
     *ast.DeclStmt -> *ast.GenDecl -> *ast.ValueSpec 	 [j UnmarshalerJSONObject]
     *ast.DeclStmt -> *ast.GenDecl -> *ast.ValueSpec 	 [ok bool]
     *ast.IfStmt -> *ast.AssignStmt -> *ast.TypeAssertExpr -> *ast.CallExpr -> *ast.SelectorExpr 	 [= j ok n Interface]
      	 [UnmarshalerJSONObject]
     *ast.UnaryExpr 	 [! ok]
     *ast.BlockStmt -> *ast.AssignStmt -> *ast.SelectorExpr 	 [= dec err]
     *ast.CallExpr -> *ast.SelectorExpr 	 [dec makeInvalidUnmarshalErr]
     *ast.CallExpr -> *ast.ParenExpr 	 [UnmarshalerJSONObject]
      	 [nil]
     *ast.ReturnStmt -> *ast.BasicLit -> *ast.SelectorExpr 	 [INT 0 dec err]
     *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= keys j NKeys]
     *ast.AssignStmt -> *ast.SelectorExpr 	 [= dec cursor]
     *ast.BinaryExpr -> *ast.SelectorExpr 	 [+ dec cursor]
     *ast.BasicLit 	 [INT 1]
     *ast.IfStmt -> *ast.BinaryExpr -> *ast.BasicLit 	 [== keys INT 0]
     *ast.BlockStmt -> *ast.ForStmt -> *ast.BinaryExpr -> *ast.BinaryExpr -> *ast.SelectorExpr 	 [|| < dec cursor]
     *ast.SelectorExpr 	 [dec length]
     *ast.CallExpr -> *ast.SelectorExpr 	 [dec read]
     *ast.BlockStmt -> *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= k done err dec nextKey]
     *ast.IfStmt -> *ast.BinaryExpr 	 [!= err nil]
     *ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit 	 [INT 0 err]
     *ast.IfStmt -> *ast.BlockStmt -> *ast.ReturnStmt -> *ast.SelectorExpr 	 [done dec cursor]
      	 [nil]
     *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [= err j UnmarshalJSONObject]
      	 [dec k]
     *ast.IfStmt -> *ast.BinaryExpr 	 [!= err nil]
     *ast.BlockStmt -> *ast.AssignStmt -> *ast.SelectorExpr 	 [= dec err]
      	 [err]
     *ast.ReturnStmt -> *ast.BasicLit 	 [INT 0 err]
     *ast.IfStmt -> *ast.BinaryExpr -> *ast.BinaryExpr -> *ast.SelectorExpr 	 [== & dec called]
     *ast.BasicLit 	 [INT 1]
     *ast.BasicLit 	 [INT 0]
     *ast.BlockStmt -> *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= err dec skipData]
     *ast.IfStmt -> *ast.BinaryExpr 	 [!= err nil]
     *ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit 	 [INT 0 err]
     *ast.BlockStmt -> *ast.IncDecStmt -> *ast.SelectorExpr 	 [dec keysDone]
     *ast.AssignStmt -> *ast.SelectorExpr 	 [&= dec called]
     *ast.BasicLit 	 [INT 0]
     *ast.BlockStmt -> *ast.ForStmt -> *ast.BinaryExpr -> *ast.ParenExpr -> *ast.BinaryExpr -> *ast.BinaryExpr -> *ast.SelectorExpr 	 [&& || < dec cursor]
     *ast.SelectorExpr 	 [dec length]
     *ast.CallExpr -> *ast.SelectorExpr 	 [dec read]
     *ast.BinaryExpr -> *ast.SelectorExpr 	 [< dec keysDone]
      	 [keys]
     *ast.BlockStmt -> *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= k done err dec nextKey]
     *ast.IfStmt -> *ast.BinaryExpr 	 [!= err nil]
     *ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit 	 [INT 0 err]
     *ast.IfStmt -> *ast.BlockStmt -> *ast.ReturnStmt -> *ast.SelectorExpr 	 [done dec cursor]
      	 [nil]
     *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [= err j UnmarshalJSONObject]
      	 [dec k]
     *ast.IfStmt -> *ast.BinaryExpr 	 [!= err nil]
     *ast.BlockStmt -> *ast.AssignStmt -> *ast.SelectorExpr 	 [= dec err]
      	 [err]
     *ast.ReturnStmt -> *ast.BasicLit 	 [INT 0 err]
     *ast.IfStmt -> *ast.BinaryExpr -> *ast.BinaryExpr -> *ast.SelectorExpr 	 [== & dec called]
     *ast.BasicLit 	 [INT 1]
     *ast.BasicLit 	 [INT 0]
     *ast.BlockStmt -> *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= err dec skipData]
     *ast.IfStmt -> *ast.BinaryExpr 	 [!= err nil]
     *ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit 	 [INT 0 err]
     *ast.BlockStmt -> *ast.IncDecStmt -> *ast.SelectorExpr 	 [dec keysDone]
     *ast.AssignStmt -> *ast.SelectorExpr 	 [&= dec called]
     *ast.BasicLit 	 [INT 0]
     *ast.IfStmt -> *ast.BinaryExpr -> *ast.BinaryExpr -> *ast.SelectorExpr 	 [!= & dec child]
     *ast.BasicLit 	 [INT 1]
     *ast.BasicLit 	 [INT 0]
     *ast.BlockStmt -> *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= end err dec skipObject]
     *ast.AssignStmt -> *ast.SelectorExpr 	 [= dec cursor]
      	 [end]
     *ast.ReturnStmt -> *ast.SelectorExpr 	 [dec cursor]
      	 [err]
     *ast.ReturnStmt -> *ast.SelectorExpr 	 [dec cursor]
      	 [nil]
   2.case
     *ast.BasicLit -> *ast.IncDecStmt -> *ast.SelectorExpr 	 [CHAR 'n' dec cursor]
     *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= err dec assertNull]
     *ast.IfStmt -> *ast.BinaryExpr 	 [!= err nil]
     *ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit 	 [INT 0 err]
     *ast.ReturnStmt -> *ast.SelectorExpr 	 [dec cursor]
      	 [nil]

function name: skipObject
   0.case
     *ast.BasicLit -> *ast.IncDecStmt 	 [CHAR '}' objectsClosed]
     *ast.IfStmt -> *ast.BinaryExpr 	 [== objectsOpen objectsClosed]
     *ast.BlockStmt -> *ast.ReturnStmt -> *ast.BinaryExpr -> *ast.BasicLit 	 [+ j INT 1]
      	 [nil]
   1.case
     *ast.BasicLit -> *ast.IncDecStmt 	 [CHAR '{' objectsOpen]
   2.case
     *ast.BasicLit -> *ast.IncDecStmt 	 [CHAR '"' j]
     *ast.DeclStmt -> *ast.GenDecl -> *ast.ValueSpec 	 [isInEscapeSeq bool]
     *ast.DeclStmt -> *ast.GenDecl -> *ast.ValueSpec 	 [isFirstQuote true]
     *ast.ForStmt -> *ast.BinaryExpr -> *ast.BinaryExpr -> *ast.SelectorExpr 	 [|| < j dec length]
     *ast.CallExpr -> *ast.SelectorExpr 	 [dec read]
     *ast.IncDecStmt 	 [j]
     *ast.BlockStmt -> *ast.IfStmt -> *ast.BinaryExpr -> *ast.IndexExpr -> *ast.SelectorExpr 	 [!= dec data]
      	 [j]
     *ast.BasicLit 	 [CHAR '"']
     *ast.BlockStmt -> *ast.BranchStmt 	 []
     *ast.IfStmt -> *ast.BinaryExpr -> *ast.BinaryExpr -> *ast.IndexExpr -> *ast.SelectorExpr 	 [|| != dec data]
     *ast.BinaryExpr -> *ast.BasicLit 	 [- j INT 1]
     *ast.BasicLit 	 [CHAR '\\']
     *ast.ParenExpr -> *ast.BinaryExpr -> *ast.UnaryExpr 	 [&& ! isInEscapeSeq]
     *ast.UnaryExpr 	 [! isFirstQuote]
     *ast.BlockStmt -> *ast.BranchStmt 	 []
     *ast.BlockStmt -> *ast.AssignStmt 	 [= isInEscapeSeq false]
     *ast.IfStmt -> *ast.BlockStmt -> *ast.AssignStmt 	 [isFirstQuote = isFirstQuote false]
     *ast.AssignStmt -> *ast.BasicLit 	 [:= ct INT 0]
     *ast.ForStmt -> *ast.AssignStmt -> *ast.BinaryExpr -> *ast.BasicLit 	 [:= i - j INT 1]
     *ast.BinaryExpr -> *ast.BasicLit 	 [> i INT 0]
     *ast.IncDecStmt 	 [i]
     *ast.BlockStmt -> *ast.IfStmt -> *ast.BinaryExpr -> *ast.IndexExpr -> *ast.SelectorExpr 	 [!= dec data]
      	 [i]
     *ast.BasicLit 	 [CHAR '\\']
     *ast.BlockStmt -> *ast.BranchStmt 	 []
     *ast.IncDecStmt 	 [ct]
     *ast.IfStmt -> *ast.BinaryExpr -> *ast.BinaryExpr -> *ast.BasicLit 	 [== & ct INT 1]
     *ast.BasicLit 	 [INT 0]
     *ast.BlockStmt -> *ast.BranchStmt 	 []
     *ast.AssignStmt 	 [= isInEscapeSeq true]

function name: nextKey
   0.case
     *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.BranchStmt 	 [CHAR ' ' CHAR '\n' CHAR '\t' CHAR '\r' CHAR ',']
   1.case
     *ast.BasicLit -> *ast.AssignStmt -> *ast.SelectorExpr 	 [CHAR '"' = dec cursor]
     *ast.BinaryExpr -> *ast.SelectorExpr 	 [+ dec cursor]
     *ast.BasicLit 	 [INT 1]
     *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= start end err dec getString]
     *ast.IfStmt -> *ast.BinaryExpr 	 [!= err nil]
     *ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit 	 [STRING "" false err]
     *ast.DeclStmt -> *ast.GenDecl -> *ast.ValueSpec 	 [found byte]
     *ast.ForStmt -> *ast.BinaryExpr -> *ast.BinaryExpr -> *ast.SelectorExpr 	 [|| < dec cursor]
     *ast.SelectorExpr 	 [dec length]
     *ast.CallExpr -> *ast.SelectorExpr 	 [dec read]
     *ast.IncDecStmt -> *ast.SelectorExpr 	 [dec cursor]
     *ast.BlockStmt -> *ast.IfStmt -> *ast.BinaryExpr -> *ast.IndexExpr -> *ast.SelectorExpr 	 [== dec data]
     *ast.SelectorExpr 	 [dec cursor]
     *ast.BasicLit 	 [CHAR ':']
     *ast.BlockStmt -> *ast.AssignStmt -> *ast.BasicLit 	 [|= found INT 1]
     *ast.BranchStmt 	 []
     *ast.IfStmt -> *ast.BinaryExpr -> *ast.BinaryExpr -> *ast.BasicLit 	 [!= & found INT 1]
     *ast.BasicLit 	 [INT 0]
     *ast.BlockStmt -> *ast.IncDecStmt -> *ast.SelectorExpr 	 [dec cursor]
     *ast.AssignStmt -> *ast.SliceExpr -> *ast.SelectorExpr 	 [:= d dec data]
     *ast.BinaryExpr -> *ast.BasicLit 	 [start - end INT 1]
     *ast.ReturnStmt -> *ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr 	 [string]
     *ast.CallExpr -> *ast.SelectorExpr 	 [unsafe Pointer]
     *ast.UnaryExpr 	 [& d]
      	 [false nil]
     *ast.ReturnStmt -> *ast.BasicLit -> *ast.CallExpr -> *ast.SelectorExpr 	 [STRING "" false dec raiseInvalidJSONErr]
     *ast.SelectorExpr 	 [dec cursor]
   2.case
     *ast.BasicLit -> *ast.AssignStmt -> *ast.SelectorExpr 	 [CHAR '}' = dec cursor]
     *ast.BinaryExpr -> *ast.SelectorExpr 	 [+ dec cursor]
     *ast.BasicLit 	 [INT 1]
     *ast.ReturnStmt -> *ast.BasicLit 	 [STRING "" true nil]

function name: skipData
   0.case
     *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.BranchStmt 	 [CHAR ' ' CHAR '\n' CHAR '\t' CHAR '\r' CHAR ',']
   1.case
     *ast.BasicLit -> *ast.IncDecStmt -> *ast.SelectorExpr 	 [CHAR 'n' dec cursor]
     *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= err dec assertNull]
     *ast.IfStmt -> *ast.BinaryExpr 	 [!= err nil]
     *ast.BlockStmt -> *ast.ReturnStmt 	 [err]
     *ast.ReturnStmt 	 [nil]
   2.case
     *ast.BasicLit -> *ast.IncDecStmt -> *ast.SelectorExpr 	 [CHAR 't' dec cursor]
     *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= err dec assertTrue]
     *ast.IfStmt -> *ast.BinaryExpr 	 [!= err nil]
     *ast.BlockStmt -> *ast.ReturnStmt 	 [err]
     *ast.ReturnStmt 	 [nil]
   3.case
     *ast.BasicLit -> *ast.IncDecStmt -> *ast.SelectorExpr 	 [CHAR 'f' dec cursor]
     *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= err dec assertFalse]
     *ast.IfStmt -> *ast.BinaryExpr 	 [!= err nil]
     *ast.BlockStmt -> *ast.ReturnStmt 	 [err]
     *ast.ReturnStmt 	 [nil]
   4.case
     *ast.BasicLit -> *ast.AssignStmt -> *ast.SelectorExpr 	 [CHAR '{' = dec cursor]
     *ast.BinaryExpr -> *ast.SelectorExpr 	 [+ dec cursor]
     *ast.BasicLit 	 [INT 1]
     *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= end err dec skipObject]
     *ast.AssignStmt -> *ast.SelectorExpr 	 [= dec cursor]
      	 [end]
     *ast.ReturnStmt 	 [err]
   5.case
     *ast.BasicLit -> *ast.AssignStmt -> *ast.SelectorExpr 	 [CHAR '"' = dec cursor]
     *ast.BinaryExpr -> *ast.SelectorExpr 	 [+ dec cursor]
     *ast.BasicLit 	 [INT 1]
     *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= err dec skipString]
     *ast.ReturnStmt 	 [err]
   6.case
     *ast.BasicLit -> *ast.AssignStmt -> *ast.SelectorExpr 	 [CHAR '[' = dec cursor]
     *ast.BinaryExpr -> *ast.SelectorExpr 	 [+ dec cursor]
     *ast.BasicLit 	 [INT 1]
     *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [:= end err dec skipArray]
     *ast.AssignStmt -> *ast.SelectorExpr 	 [= dec cursor]
      	 [end]
     *ast.ReturnStmt 	 [err]
   7.case
     *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.BasicLit -> *ast.AssignStmt -> *ast.CallExpr -> *ast.SelectorExpr 	 [CHAR '0' CHAR '1' CHAR '2' CHAR '3' CHAR '4' CHAR '5' CHAR '6' CHAR '7' CHAR '8' CHAR '9' CHAR '-' := end err dec skipNumber]
     *ast.AssignStmt -> *ast.SelectorExpr 	 [= dec cursor]
      	 [end]
     *ast.ReturnStmt 	 [err]

