17.1.3 Queries on AST Objects
Keywords: lib

##
17.1.3 Queries on AST Objects

Two functions are provided which allow an application to determine if an AST was created as an expression or a suite. Neither of these functions can be used to determine if an AST was created from source code via `expr()` or `suite()` or from a parse tree via `sequence2ast()`.

`isexpr` (ast)
  When ast represents an `'eval'` form, this function returns true, otherwise it returns false. This is useful, since code objects normally cannot be queried for this information using existing built-in functions. Note that the code objects created by `compileast()` cannot be queried like this either, and are identical to those created by the built-in `compile()` function.

`issuite` (ast)
  This function mirrors `isexpr()` in that it reports whether an AST object represents an `'exec'` form, commonly known as a ``suite.'' It is not safe to assume that this function is equivalent to "`not isexpr(ast)`", as additional syntactic fragments may be supported in the future.