import _clast
from _clast import *

## REPRESENTATIVE CLASSES ONLY

def cxxRecordDecl(*args):
    return _clast._cxxRecordDecl(list(args))

def decl(*args):
    return _clast._decl(list(args))

def stmt(*args):
    return _clast._stmt(list(args))

def forStmt(*args):
    return _clast._forStmt(list(args))

def hasLoopInit(arg):
    return _clast._hasLoopInit(arg)

def ifStmt(*args):
    return _clast._ifStmt(list(args))

def hasCondition(expr):
    return _clast._hasCondition(expr)

import _clast
from _clast import *

def __get(self, kind):
    return getattr(self, '_get_' + kind.__name__)()

# Monkey patch an extra method on that we can't do in C++
_clast.DynTypedNode.get = __get

tidy up of DynTypedNode in python