/
parser.py
140 lines (118 loc) · 4.52 KB
/
parser.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# This file was automatically generated by SWIG (http://www.swig.org).
# Version 3.0.12
#
# 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 as _swig_python_version_info
if _swig_python_version_info >= (2, 7, 0):
def swig_import_helper():
import importlib
pkg = __name__.rpartition('.')[0]
mname = '.'.join((pkg, '_parser')).lstrip('.')
try:
return importlib.import_module(mname)
except ImportError:
return importlib.import_module('_parser')
_parser = swig_import_helper()
del swig_import_helper
elif _swig_python_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('_parser', [dirname(__file__)])
except ImportError:
import _parser
return _parser
try:
_mod = imp.load_module('_parser', fp, pathname, description)
finally:
if fp is not None:
fp.close()
return _mod
_parser = swig_import_helper()
del swig_import_helper
else:
import _parser
del _swig_python_version_info
try:
_swig_property = property
except NameError:
pass # Python < 2.2 doesn't have 'property'.
try:
import builtins as __builtin__
except ImportError:
import __builtin__
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):
object.__setattr__(self, 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("'%s' object has no attribute '%s'" % (class_type.__name__, name))
def _swig_repr(self):
try:
strthis = "proxy of " + self.this.__repr__()
except __builtin__.Exception:
strthis = ""
return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
def _swig_setattr_nondynamic_method(set):
def set_attr(self, name, value):
if (name == "thisown"):
return self.this.own(value)
if hasattr(self, name) or (name == "this"):
set(self, name, value)
else:
raise AttributeError("You cannot add attributes to %s" % self)
return set_attr
class Token(object):
thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
__repr__ = _swig_repr
Type_Unknown = _parser.Token_Type_Unknown
Type_Number = _parser.Token_Type_Number
Type_Operator = _parser.Token_Type_Operator
Type_LeftParen = _parser.Token_Type_LeftParen
Type_RightParen = _parser.Token_Type_RightParen
type = _swig_property(_parser.Token_type_get)
str = _swig_property(_parser.Token_str_get)
precedence = _swig_property(_parser.Token_precedence_get)
rightAssociative = _swig_property(_parser.Token_rightAssociative_get)
def __init__(self, t: 'Token::Type', s: 'std::string const &', prec: 'int'=-1, ra: 'bool'=False):
this = _parser.new_Token(t, s, prec, ra)
try:
self.this.append(this)
except __builtin__.Exception:
self.this = this
__swig_destroy__ = _parser.delete_Token
__del__ = lambda self: None
Token_swigregister = _parser.Token_swigregister
Token_swigregister(Token)
def expressToTokens(s: 'std::string const &') -> "std::deque< Token >":
return _parser.expressToTokens(s)
expressToTokens = _parser.expressToTokens
def shutingYard(tokens: 'std::deque< Token > const &') -> "std::deque< Token >":
return _parser.shutingYard(tokens)
shutingYard = _parser.shutingYard
def doCalculation(str: 'std::string const &') -> "float":
return _parser.doCalculation(str)
doCalculation = _parser.doCalculation
def removeSpaces(str: 'std::string &') -> "void":
return _parser.removeSpaces(str)
removeSpaces = _parser.removeSpaces