# This file was automatically generated by SWIG (http://www.swig.org).
# Version 2.0.8
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.



from sys import version_info
if version_info >= (2,6,0):
    def swig_import_helper():
        from os.path import dirname
        import imp
        fp = None
        try:
            fp, pathname, description = imp.find_module('_formast', [dirname(__file__)])
        except ImportError:
            import _formast
            return _formast
        if fp is not None:
            try:
                _mod = imp.load_module('_formast', fp, pathname, description)
            finally:
                fp.close()
            return _mod
    _formast = swig_import_helper()
    del swig_import_helper
else:
    import _formast
del version_info
try:
    _swig_property = property
except NameError:
    pass # Python < 2.2 doesn't have 'property'.
def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
    if (name == "thisown"): return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name,None)
    if method: return method(self,value)
    if (not static):
        self.__dict__[name] = value
    else:
        raise AttributeError("You cannot add attributes to %s" % self)

def _swig_setattr(self,class_type,name,value):
    return _swig_setattr_nondynamic(self,class_type,name,value,0)

def _swig_getattr(self,class_type,name):
    if (name == "thisown"): return self.this.own()
    method = class_type.__swig_getmethods__.get(name,None)
    if method: return method(self)
    raise AttributeError(name)

def _swig_repr(self):
    try: strthis = "proxy of " + self.this.__repr__()
    except: strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)

try:
    _object = object
    _newclass = 1
except AttributeError:
    class _object : pass
    _newclass = 0


try:
    import weakref
    weakref_proxy = weakref.proxy
except:
    weakref_proxy = lambda x: x


class SwigPyIterator(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, SwigPyIterator, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, SwigPyIterator, name)
    def __init__(self, *args, **kwargs): raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _formast.delete_SwigPyIterator
    __del__ = lambda self : None;
    def value(self): return _formast.SwigPyIterator_value(self)
    def incr(self, n=1): return _formast.SwigPyIterator_incr(self, n)
    def decr(self, n=1): return _formast.SwigPyIterator_decr(self, n)
    def distance(self, *args): return _formast.SwigPyIterator_distance(self, *args)
    def equal(self, *args): return _formast.SwigPyIterator_equal(self, *args)
    def copy(self): return _formast.SwigPyIterator_copy(self)
    def next(self): return _formast.SwigPyIterator_next(self)
    def __next__(self): return _formast.SwigPyIterator___next__(self)
    def previous(self): return _formast.SwigPyIterator_previous(self)
    def advance(self, *args): return _formast.SwigPyIterator_advance(self, *args)
    def __eq__(self, *args): return _formast.SwigPyIterator___eq__(self, *args)
    def __ne__(self, *args): return _formast.SwigPyIterator___ne__(self, *args)
    def __iadd__(self, *args): return _formast.SwigPyIterator___iadd__(self, *args)
    def __isub__(self, *args): return _formast.SwigPyIterator___isub__(self, *args)
    def __add__(self, *args): return _formast.SwigPyIterator___add__(self, *args)
    def __sub__(self, *args): return _formast.SwigPyIterator___sub__(self, *args)
    def __iter__(self): return self
SwigPyIterator_swigregister = _formast.SwigPyIterator_swigregister
SwigPyIterator_swigregister(SwigPyIterator)

class OptionalDoc(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, OptionalDoc, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, OptionalDoc, name)
    __repr__ = _swig_repr
    def get(self): return _formast.OptionalDoc_get(self)
    def __nonzero__(self): return _formast.OptionalDoc___nonzero__(self)
    def __bool__(self): return _formast.OptionalDoc___bool__(self)
    def __init__(self): 
        this = _formast.new_OptionalDoc()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _formast.delete_OptionalDoc
    __del__ = lambda self : None;
OptionalDoc_swigregister = _formast.OptionalDoc_swigregister
OptionalDoc_swigregister(OptionalDoc)

class OptionalEnumStats(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, OptionalEnumStats, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, OptionalEnumStats, name)
    __repr__ = _swig_repr
    def get(self): return _formast.OptionalEnumStats_get(self)
    def __nonzero__(self): return _formast.OptionalEnumStats___nonzero__(self)
    def __bool__(self): return _formast.OptionalEnumStats___bool__(self)
    def __init__(self): 
        this = _formast.new_OptionalEnumStats()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _formast.delete_OptionalEnumStats
    __del__ = lambda self : None;
OptionalEnumStats_swigregister = _formast.OptionalEnumStats_swigregister
OptionalEnumStats_swigregister(OptionalEnumStats)

class OptionalExpr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, OptionalExpr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, OptionalExpr, name)
    __repr__ = _swig_repr
    def get(self): return _formast.OptionalExpr_get(self)
    def __nonzero__(self): return _formast.OptionalExpr___nonzero__(self)
    def __bool__(self): return _formast.OptionalExpr___bool__(self)
    def __init__(self): 
        this = _formast.new_OptionalExpr()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _formast.delete_OptionalExpr
    __del__ = lambda self : None;
OptionalExpr_swigregister = _formast.OptionalExpr_swigregister
OptionalExpr_swigregister(OptionalExpr)

class OptionalStats(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, OptionalStats, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, OptionalStats, name)
    __repr__ = _swig_repr
    def get(self): return _formast.OptionalStats_get(self)
    def __nonzero__(self): return _formast.OptionalStats___nonzero__(self)
    def __bool__(self): return _formast.OptionalStats___bool__(self)
    def __init__(self): 
        this = _formast.new_OptionalStats()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _formast.delete_OptionalStats
    __del__ = lambda self : None;
OptionalStats_swigregister = _formast.OptionalStats_swigregister
OptionalStats_swigregister(OptionalStats)

class OptionalString(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, OptionalString, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, OptionalString, name)
    __repr__ = _swig_repr
    def get(self): return _formast.OptionalString_get(self)
    def __nonzero__(self): return _formast.OptionalString___nonzero__(self)
    def __bool__(self): return _formast.OptionalString___bool__(self)
    def __init__(self): 
        this = _formast.new_OptionalString()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _formast.delete_OptionalString
    __del__ = lambda self : None;
OptionalString_swigregister = _formast.OptionalString_swigregister
OptionalString_swigregister(OptionalString)

class Module(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, Module, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, Module, name)
    __repr__ = _swig_repr
    def __init__(self): 
        this = _formast.new_Module()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _formast.delete_Module
    __del__ = lambda self : None;
Module_swigregister = _formast.Module_swigregister
Module_swigregister(Module)

class Stats(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, Stats, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, Stats, name)
    __repr__ = _swig_repr
    def __init__(self): 
        this = _formast.new_Stats()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _formast.delete_Stats
    __del__ = lambda self : None;
Stats_swigregister = _formast.Stats_swigregister
Stats_swigregister(Stats)

class Expr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, Expr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, Expr, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _formast.new_Expr(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _formast.delete_Expr
    __del__ = lambda self : None;
Expr_swigregister = _formast.Expr_swigregister
Expr_swigregister(Expr)

class Field(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, Field, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, Field, name)
    __repr__ = _swig_repr
    __swig_setmethods__["type_"] = _formast.Field_type__set
    __swig_getmethods__["type_"] = _formast.Field_type__get
    if _newclass:type_ = _swig_property(_formast.Field_type__get, _formast.Field_type__set)
    __swig_setmethods__["template_"] = _formast.Field_template__set
    __swig_getmethods__["template_"] = _formast.Field_template__get
    if _newclass:template_ = _swig_property(_formast.Field_template__get, _formast.Field_template__set)
    __swig_setmethods__["argument"] = _formast.Field_argument_set
    __swig_getmethods__["argument"] = _formast.Field_argument_get
    if _newclass:argument = _swig_property(_formast.Field_argument_get, _formast.Field_argument_set)
    __swig_setmethods__["name"] = _formast.Field_name_set
    __swig_getmethods__["name"] = _formast.Field_name_get
    if _newclass:name = _swig_property(_formast.Field_name_get, _formast.Field_name_set)
    __swig_setmethods__["doc"] = _formast.Field_doc_set
    __swig_getmethods__["doc"] = _formast.Field_doc_get
    if _newclass:doc = _swig_property(_formast.Field_doc_get, _formast.Field_doc_set)
    __swig_setmethods__["arr1"] = _formast.Field_arr1_set
    __swig_getmethods__["arr1"] = _formast.Field_arr1_get
    if _newclass:arr1 = _swig_property(_formast.Field_arr1_get, _formast.Field_arr1_set)
    __swig_setmethods__["arr2"] = _formast.Field_arr2_set
    __swig_getmethods__["arr2"] = _formast.Field_arr2_get
    if _newclass:arr2 = _swig_property(_formast.Field_arr2_get, _formast.Field_arr2_set)
    def __init__(self): 
        this = _formast.new_Field()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _formast.delete_Field
    __del__ = lambda self : None;
Field_swigregister = _formast.Field_swigregister
Field_swigregister(Field)

class Class(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, Class, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, Class, name)
    __repr__ = _swig_repr
    __swig_setmethods__["name"] = _formast.Class_name_set
    __swig_getmethods__["name"] = _formast.Class_name_get
    if _newclass:name = _swig_property(_formast.Class_name_get, _formast.Class_name_set)
    __swig_setmethods__["has_template"] = _formast.Class_has_template_set
    __swig_getmethods__["has_template"] = _formast.Class_has_template_get
    if _newclass:has_template = _swig_property(_formast.Class_has_template_get, _formast.Class_has_template_set)
    __swig_setmethods__["has_argument"] = _formast.Class_has_argument_set
    __swig_getmethods__["has_argument"] = _formast.Class_has_argument_get
    if _newclass:has_argument = _swig_property(_formast.Class_has_argument_get, _formast.Class_has_argument_set)
    __swig_setmethods__["base_name"] = _formast.Class_base_name_set
    __swig_getmethods__["base_name"] = _formast.Class_base_name_get
    if _newclass:base_name = _swig_property(_formast.Class_base_name_get, _formast.Class_base_name_set)
    __swig_setmethods__["doc"] = _formast.Class_doc_set
    __swig_getmethods__["doc"] = _formast.Class_doc_get
    if _newclass:doc = _swig_property(_formast.Class_doc_get, _formast.Class_doc_set)
    __swig_setmethods__["stats"] = _formast.Class_stats_set
    __swig_getmethods__["stats"] = _formast.Class_stats_get
    if _newclass:stats = _swig_property(_formast.Class_stats_get, _formast.Class_stats_set)
    def __init__(self): 
        this = _formast.new_Class()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _formast.delete_Class
    __del__ = lambda self : None;
Class_swigregister = _formast.Class_swigregister
Class_swigregister(Class)

class If(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, If, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, If, name)
    __repr__ = _swig_repr
    __swig_setmethods__["expr"] = _formast.If_expr_set
    __swig_getmethods__["expr"] = _formast.If_expr_get
    if _newclass:expr = _swig_property(_formast.If_expr_get, _formast.If_expr_set)
    __swig_setmethods__["then"] = _formast.If_then_set
    __swig_getmethods__["then"] = _formast.If_then_get
    if _newclass:then = _swig_property(_formast.If_then_get, _formast.If_then_set)
    __swig_setmethods__["else_"] = _formast.If_else__set
    __swig_getmethods__["else_"] = _formast.If_else__get
    if _newclass:else_ = _swig_property(_formast.If_else__get, _formast.If_else__set)
    def __init__(self): 
        this = _formast.new_If()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _formast.delete_If
    __del__ = lambda self : None;
If_swigregister = _formast.If_swigregister
If_swigregister(If)

class EnumConst(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, EnumConst, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, EnumConst, name)
    __repr__ = _swig_repr
    __swig_setmethods__["name"] = _formast.EnumConst_name_set
    __swig_getmethods__["name"] = _formast.EnumConst_name_get
    if _newclass:name = _swig_property(_formast.EnumConst_name_get, _formast.EnumConst_name_set)
    __swig_setmethods__["value"] = _formast.EnumConst_value_set
    __swig_getmethods__["value"] = _formast.EnumConst_value_get
    if _newclass:value = _swig_property(_formast.EnumConst_value_get, _formast.EnumConst_value_set)
    __swig_setmethods__["doc"] = _formast.EnumConst_doc_set
    __swig_getmethods__["doc"] = _formast.EnumConst_doc_get
    if _newclass:doc = _swig_property(_formast.EnumConst_doc_get, _formast.EnumConst_doc_set)
    def __init__(self): 
        this = _formast.new_EnumConst()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _formast.delete_EnumConst
    __del__ = lambda self : None;
EnumConst_swigregister = _formast.EnumConst_swigregister
EnumConst_swigregister(EnumConst)

class EnumStats(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, EnumStats, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, EnumStats, name)
    __repr__ = _swig_repr
    def __init__(self): 
        this = _formast.new_EnumStats()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _formast.delete_EnumStats
    __del__ = lambda self : None;
EnumStats_swigregister = _formast.EnumStats_swigregister
EnumStats_swigregister(EnumStats)

class Enum(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, Enum, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, Enum, name)
    __repr__ = _swig_repr
    __swig_setmethods__["name"] = _formast.Enum_name_set
    __swig_getmethods__["name"] = _formast.Enum_name_get
    if _newclass:name = _swig_property(_formast.Enum_name_get, _formast.Enum_name_set)
    __swig_setmethods__["base_name"] = _formast.Enum_base_name_set
    __swig_getmethods__["base_name"] = _formast.Enum_base_name_get
    if _newclass:base_name = _swig_property(_formast.Enum_base_name_get, _formast.Enum_base_name_set)
    __swig_setmethods__["doc"] = _formast.Enum_doc_set
    __swig_getmethods__["doc"] = _formast.Enum_doc_get
    if _newclass:doc = _swig_property(_formast.Enum_doc_get, _formast.Enum_doc_set)
    __swig_setmethods__["stats"] = _formast.Enum_stats_set
    __swig_getmethods__["stats"] = _formast.Enum_stats_get
    if _newclass:stats = _swig_property(_formast.Enum_stats_get, _formast.Enum_stats_set)
    def __init__(self): 
        this = _formast.new_Enum()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _formast.delete_Enum
    __del__ = lambda self : None;
Enum_swigregister = _formast.Enum_swigregister
Enum_swigregister(Enum)

class Parser(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, Parser, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, Parser, name)
    def __init__(self, *args, **kwargs): raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _formast.delete_Parser
    __del__ = lambda self : None;
    def parse_string(self, *args): return _formast.Parser_parse_string(self, *args)
Parser_swigregister = _formast.Parser_swigregister
Parser_swigregister(Parser)

class XmlParser(Parser):
    __swig_setmethods__ = {}
    for _s in [Parser]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, XmlParser, name, value)
    __swig_getmethods__ = {}
    for _s in [Parser]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, XmlParser, name)
    __repr__ = _swig_repr
    def __init__(self): 
        this = _formast.new_XmlParser()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _formast.delete_XmlParser
    __del__ = lambda self : None;
XmlParser_swigregister = _formast.XmlParser_swigregister
XmlParser_swigregister(XmlParser)

class Visitor(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, Visitor, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, Visitor, name)
    __repr__ = _swig_repr
    def __init__(self): 
        if self.__class__ == Visitor:
            _self = None
        else:
            _self = self
        this = _formast.new_Visitor(_self, )
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _formast.delete_Visitor
    __del__ = lambda self : None;
    def module(self, *args): return _formast.Visitor_module(self, *args)
    def module_class(self, *args): return _formast.Visitor_module_class(self, *args)
    def module_enum(self, *args): return _formast.Visitor_module_enum(self, *args)
    def stats(self, *args): return _formast.Visitor_stats(self, *args)
    def stats_field(self, *args): return _formast.Visitor_stats_field(self, *args)
    def stats_if(self, *args): return _formast.Visitor_stats_if(self, *args)
    def enum_stats(self, *args): return _formast.Visitor_enum_stats(self, *args)
    def enum_stats_const(self, *args): return _formast.Visitor_enum_stats_const(self, *args)
    def expr(self, *args): return _formast.Visitor_expr(self, *args)
    def expr_uint(self, *args): return _formast.Visitor_expr_uint(self, *args)
    def expr_id(self, *args): return _formast.Visitor_expr_id(self, *args)
    def expr_pos(self, *args): return _formast.Visitor_expr_pos(self, *args)
    def expr_neg(self, *args): return _formast.Visitor_expr_neg(self, *args)
    def expr_add(self, *args): return _formast.Visitor_expr_add(self, *args)
    def expr_sub(self, *args): return _formast.Visitor_expr_sub(self, *args)
    def expr_mul(self, *args): return _formast.Visitor_expr_mul(self, *args)
    def expr_div(self, *args): return _formast.Visitor_expr_div(self, *args)
    def expr_mod(self, *args): return _formast.Visitor_expr_mod(self, *args)
    def expr_pow(self, *args): return _formast.Visitor_expr_pow(self, *args)
    def expr_logical_and(self, *args): return _formast.Visitor_expr_logical_and(self, *args)
    def expr_logical_or(self, *args): return _formast.Visitor_expr_logical_or(self, *args)
    def expr_logical_not(self, *args): return _formast.Visitor_expr_logical_not(self, *args)
    def expr_bitwise_and(self, *args): return _formast.Visitor_expr_bitwise_and(self, *args)
    def expr_bitwise_or(self, *args): return _formast.Visitor_expr_bitwise_or(self, *args)
    def expr_bitwise_xor(self, *args): return _formast.Visitor_expr_bitwise_xor(self, *args)
    def expr_compare_eq(self, *args): return _formast.Visitor_expr_compare_eq(self, *args)
    def expr_compare_ne(self, *args): return _formast.Visitor_expr_compare_ne(self, *args)
    def expr_compare_gt(self, *args): return _formast.Visitor_expr_compare_gt(self, *args)
    def expr_compare_lt(self, *args): return _formast.Visitor_expr_compare_lt(self, *args)
    def expr_compare_ge(self, *args): return _formast.Visitor_expr_compare_ge(self, *args)
    def expr_compare_le(self, *args): return _formast.Visitor_expr_compare_le(self, *args)
    def expr_shift_left(self, *args): return _formast.Visitor_expr_shift_left(self, *args)
    def expr_shift_right(self, *args): return _formast.Visitor_expr_shift_right(self, *args)
    def __disown__(self):
        self.this.disown()
        _formast.disown_Visitor(self)
        return weakref_proxy(self)
Visitor_swigregister = _formast.Visitor_swigregister
Visitor_swigregister(Visitor)

# This file is compatible with both classic and new-style classes.


