### $ANTLR 2.7.6 (20071205): "mat2py.g" -> "Mat2Py.py"$
### import antlr and other modules ..
import sys
import antlr
version = sys.version.split()[0]
if version < '2.2.1':
False = 0
if version < '2.3':
True = not False
### header action >>>
#
# LiberMate
#
# Copyright (C) 2009 Eric C. Schug
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http:#www.gnu.org/licenses/>.
#
__author__ = "Eric C. Schug (schugschug@gmail.com)"
__copyright__ = "Copyright (c) 2009 Eric C. Schug"
__license__ = "GNU General Public License"
__revision__ = "$Id$"
import traceback
### header action <<<
### import antlr.Token
from antlr import Token
### >>>The Known Token Types <<<
SKIP = antlr.SKIP
INVALID_TYPE = antlr.INVALID_TYPE
EOF_TYPE = antlr.EOF_TYPE
EOF = antlr.EOF
NULL_TREE_LOOKAHEAD = antlr.NULL_TREE_LOOKAHEAD
MIN_USER_TYPE = antlr.MIN_USER_TYPE
EXPR = 4
DECL = 5
FUNCTION = 6
IFBLOCK = 7
BLOCK = 8
BCOLON = 9
SIGN_PLUS = 10
SIGN_MINUS = 11
VAR = 12
SCOPE = 13
DOT = 14
ARGUMENTS = 15
CONTINUATION = 16
END = 17
ARRAY_END = 18
BREAK = 19
CONT = 20
RETURN = 21
RETURN_VARS = 22
COMMAND = 23
LAMBDA = 24
ALLELEMENTS = 25
TRANS = 26
CELL = 27
MATRIX = 28
COLUMN_JOIN = 29
ROW_JOIN = 30
FLOAT = 31
COMPLEX = 32
ASSERT = 33
GLOBAL = 34
FUNCTION_ARGS = 35
BRACE_ARGS = 36
PAREN_ARGS = 37
SPACE = 38
COMMENT = 39
NEWLINE = 40
LITERAL_function = 41
LBRACK = 42
NAME = 43
COMMA = 44
RBRACK = 45
ASSIGN = 46
LPAREN = 47
RPAREN = 48
LITERAL_if = 49
LITERAL_while = 50
LITERAL_for = 51
LITERAL_try = 52
LITERAL_switch = 53
LITERAL_catch = 54
LITERAL_case = 55
LITERAL_elseif = 56
LITERAL_otherwise = 57
LITERAL_else = 58
SEMI = 59
LBRACE = 60
RBRACE = 61
COLON = 62
ATPAREN = 63
OROR = 64
ANDAND = 65
OR = 66
AND = 67
EQUAL = 68
NOT_EQUAL = 69
LESS_THAN = 70
LESS_OR_EQUAL = 71
GREATER_THAN = 72
GREATER_OR_EQUAL = 73
PLUS = 74
MINUS = 75
STAR = 76
DIV = 77
BACKDIV = 78
DOTSTAR = 79
DOTDIV = 80
DOTBACKDIV = 81
NOT = 82
EXP = 83
DOTEXP = 84
AT = 85
DOTTRANS = 86
NUMBER = 87
INT = 88
MATCHVAR = 89
STRING = 90
Exponent = 91
MATCH = 92
DIGIT = 93
ROWJOIN = 94
COLUMNJOIN = 95
### user code>>>
### user code<<<
class Walker(antlr.TreeParser):
# ctor ..
def __init__(self, *args, **kwargs):
antlr.TreeParser.__init__(self, *args, **kwargs)
self.tokenNames = _tokenNames
### __init__ header action >>>
# gets inserted in the __init__ method of each of the generated Python
# classes
#
self.paren_count=0
self.brack_count=0
self.string_ok=True
self.gobble_space=True
### __init__ header action <<<
### user action >>>
### user action <<<
def script(self, _t):
sstr = None
script_AST_in = None
if _t != antlr.ASTNULL:
script_AST_in = _t
sstr=""
#print "in script"
cc=[]
xx=""
ax=""
try: ## for error handling
if not _t:
_t = antlr.ASTNULL
if (_t.getType()==FUNCTION):
pass
_cnt309= 0
while True:
if not _t:
_t = antlr.ASTNULL
if (_t.getType()==FUNCTION):
pass
g=self.function(_t)
_t = self._retTree
cc.append(g)
else:
break
_cnt309 += 1
if _cnt309 < 1:
raise antlr.NoViableAltException(_t)
sstr+="\n\n".join(cc)
elif (_t.getType()==COMMENT):
pass
ax=self.comment(_t)
_t = self._retTree
b=self.script(_t)
_t = self._retTree
sstr=ax+b
elif (_tokenSet_0.member(_t.getType())):
pass
h=self.block(_t, "")
_t = self._retTree
sstr+=h
else:
raise antlr.NoViableAltException(_t)
except antlr.RecognitionException, ex:
self.reportError(ex)
if _t:
_t = _t.getNextSibling()
self._retTree = _t
return sstr
def function(self, _t):
sstr = None
function_AST_in = None
if _t != antlr.ASTNULL:
function_AST_in = _t
e = None
b = None
sstr=""
#print "in function"
cc=[]
xx=""
ax=""
self.returnval=""
try: ## for error handling
pass
_t311 = _t
tmp1_AST_in = _t
self.match(_t,FUNCTION)
_t = _t.getFirstChild()
self.incr()
e = _t
self.match(_t,SCOPE)
_t = _t.getNextSibling()
if not _t:
_t = antlr.ASTNULL
la1 = _t.getType()
if False:
pass
elif la1 and la1 in [RETURN_VARS]:
pass
a=self.funcreturn(_t)
_t = self._retTree
self.returnval=a
elif la1 and la1 in [NAME]:
pass
else:
raise antlr.NoViableAltException(_t)
b = _t
self.match(_t,NAME)
_t = _t.getNextSibling()
c=self.funcargs(_t)
_t = self._retTree
d=self.block(_t, "")
_t = self._retTree
_t = _t311
_t = _t.getNextSibling()
k=self.nl+"# Local Variables: "+e.getText()+self.nl+d+self.nl+"return ["+self.returnval+"]"
self.decr()
sstr=self.indent+"def "+b.getText()+c+":"+self.nl+k
except antlr.RecognitionException, ex:
self.reportError(ex)
if _t:
_t = _t.getNextSibling()
self._retTree = _t
return sstr
def comment(self, _t):
sstr = None
comment_AST_in = None
if _t != antlr.ASTNULL:
comment_AST_in = _t
a = None
sstr=""
#print "in comment"
cc=[]
try: ## for error handling
pass
_cnt315= 0
while True:
if not _t:
_t = antlr.ASTNULL
if (_t.getType()==COMMENT):
pass
a = _t
self.match(_t,COMMENT)
_t = _t.getNextSibling()
cc.append("#"+a.getText())
else:
break
_cnt315 += 1
if _cnt315 < 1:
raise antlr.NoViableAltException(_t)
sstr=self.nl.join(cc)+self.nl
except antlr.RecognitionException, ex:
self.reportError(ex)
if _t:
_t = _t.getNextSibling()
self._retTree = _t
return sstr
def block(self, _t,
ptoken
):
sstr = None
block_AST_in = None
if _t != antlr.ASTNULL:
block_AST_in = _t
q = None
i = None
j = None
k = None
u = None
v = None
w = None
m = None
p = None
r = None
sstr=""
cc=[]
c=None
self.ptoken=ptoken
#print "in block", ptoken
#self.tokenstack.append(_t)
enter=_t
if(_t and (_t.getType() not in [VAR,EXPR])):
self.is_simple_rhs=False
#if(_t):
# print "in block",_tokenNames[_t.getType()],_t.getText(),self.is_simple_rhs
sys.stdout.flush()
try: ## for error handling
if not _t:
_t = antlr.ASTNULL
la1 = _t.getType()
if False:
pass
elif la1 and la1 in [BLOCK]:
pass
_t321 = _t
tmp2_AST_in = _t
self.match(_t,BLOCK)
_t = _t.getFirstChild()
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
g=self.block(_t, ptoken)
_t = self._retTree
if(g): cc.append(g)
else:
break
_t = _t321
_t = _t.getNextSibling()
#print "block join ~"+self.indent+"~block",len(self.nl), len(cc)
sstr=self.nl.join(cc)
#print sstr
elif la1 and la1 in [LITERAL_if]:
pass
_t324 = _t
tmp3_AST_in = _t
self.match(_t,LITERAL_if)
_t = _t.getFirstChild()
self.incr()
a=self.block(_t, "")
_t = self._retTree
b=self.block(_t, "")
_t = self._retTree
self.decr()
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
g=self.block(_t, "")
_t = self._retTree
cc.append(g)
else:
break
_t = _t324
_t = _t.getNextSibling()
#print "if"
sstr="if "+a+":"+self.nl+" "+b+self.nl+self.nl.join(cc)+self.nl
elif la1 and la1 in [LITERAL_elseif]:
pass
_t327 = _t
tmp4_AST_in = _t
self.match(_t,LITERAL_elseif)
_t = _t.getFirstChild()
self.incr()
aexpr=self.block(_t, "")
_t = self._retTree
if not _t:
_t = antlr.ASTNULL
la1 = _t.getType()
if False:
pass
elif la1 and la1 in [EXPR,BLOCK,SIGN_PLUS,SIGN_MINUS,VAR,DOT,ARGUMENTS,ARRAY_END,BREAK,CONT,RETURN,COMMAND,LAMBDA,ALLELEMENTS,TRANS,CELL,MATRIX,FLOAT,COMPLEX,COMMENT,NEWLINE,LBRACK,NAME,COMMA,RBRACK,ASSIGN,LPAREN,RPAREN,LITERAL_if,LITERAL_while,LITERAL_for,LITERAL_try,LITERAL_switch,LITERAL_catch,LITERAL_case,LITERAL_elseif,LITERAL_otherwise,LITERAL_else,LBRACE,COLON,ATPAREN,OROR,ANDAND,OR,AND,EQUAL,NOT_EQUAL,LESS_THAN,LESS_OR_EQUAL,GREATER_THAN,GREATER_OR_EQUAL,PLUS,MINUS,STAR,DIV,BACKDIV,DOTSTAR,DOTDIV,DOTBACKDIV,NOT,EXP,DOTEXP,AT,DOTTRANS,NUMBER,INT,STRING,ROWJOIN,COLUMNJOIN]:
pass
g=self.block(_t, "")
_t = self._retTree
cc.append(g)
elif la1 and la1 in [3]:
pass
else:
raise antlr.NoViableAltException(_t)
_t = _t327
_t = _t.getNextSibling()
sstr="elif "+aexpr+":"+self.nl+self.nl.join(cc)+self.nl
self.decr()
elif la1 and la1 in [LITERAL_else]:
pass
_t329 = _t
tmp5_AST_in = _t
self.match(_t,LITERAL_else)
_t = _t.getFirstChild()
self.incr()
if not _t:
_t = antlr.ASTNULL
la1 = _t.getType()
if False:
pass
elif la1 and la1 in [EXPR,BLOCK,SIGN_PLUS,SIGN_MINUS,VAR,DOT,ARGUMENTS,ARRAY_END,BREAK,CONT,RETURN,COMMAND,LAMBDA,ALLELEMENTS,TRANS,CELL,MATRIX,FLOAT,COMPLEX,COMMENT,NEWLINE,LBRACK,NAME,COMMA,RBRACK,ASSIGN,LPAREN,RPAREN,LITERAL_if,LITERAL_while,LITERAL_for,LITERAL_try,LITERAL_switch,LITERAL_catch,LITERAL_case,LITERAL_elseif,LITERAL_otherwise,LITERAL_else,LBRACE,COLON,ATPAREN,OROR,ANDAND,OR,AND,EQUAL,NOT_EQUAL,LESS_THAN,LESS_OR_EQUAL,GREATER_THAN,GREATER_OR_EQUAL,PLUS,MINUS,STAR,DIV,BACKDIV,DOTSTAR,DOTDIV,DOTBACKDIV,NOT,EXP,DOTEXP,AT,DOTTRANS,NUMBER,INT,STRING,ROWJOIN,COLUMNJOIN]:
pass
g=self.block(_t, "")
_t = self._retTree
cc.append(g)
elif la1 and la1 in [3]:
pass
else:
raise antlr.NoViableAltException(_t)
_t = _t329
_t = _t.getNextSibling()
#print "else"
sstr="else:"+self.nl+self.nl.join(cc)+self.nl
self.decr()
elif la1 and la1 in [LITERAL_for]:
pass
_t331 = _t
tmp6_AST_in = _t
self.match(_t,LITERAL_for)
_t = _t.getFirstChild()
self.incr()
anoun=self.block(_t, "")
_t = self._retTree
bexpr=self.block(_t, "")
_t = self._retTree
cblock=self.block(_t, "")
_t = self._retTree
_t = _t331
_t = _t.getNextSibling()
sstr="for "+anoun+" in "+bexpr+":"+self.nl+cblock+self.nl
self.decr()
elif la1 and la1 in [LITERAL_while]:
pass
_t332 = _t
tmp7_AST_in = _t
self.match(_t,LITERAL_while)
_t = _t.getFirstChild()
self.incr()
aexpr=self.block(_t, "")
_t = self._retTree
bblock=self.block(_t, "")
_t = self._retTree
_t = _t332
_t = _t.getNextSibling()
sstr="while "+aexpr+":"+self.nl+bblock+self.nl
self.decr()
elif la1 and la1 in [LITERAL_try]:
pass
_t333 = _t
tmp8_AST_in = _t
self.match(_t,LITERAL_try)
_t = _t.getFirstChild()
self.incr()
ablock=self.block(_t, "")
_t = self._retTree
pass
bblock=self.block(_t, "")
_t = self._retTree
_t = _t333
_t = _t.getNextSibling()
sstr="try:"+self.nl+ablock
self.decr()
if(bblock):
sstr+=self.nl+bblock
sstr+=self.nl
elif la1 and la1 in [LITERAL_catch]:
pass
_t335 = _t
tmp9_AST_in = _t
self.match(_t,LITERAL_catch)
_t = _t.getFirstChild()
self.incr()
bblock=self.block(_t, "")
_t = self._retTree
_t = _t335
_t = _t.getNextSibling()
sstr="except :"+self.nl+bblock
self.decr()
elif la1 and la1 in [LITERAL_switch]:
pass
_t336 = _t
tmp10_AST_in = _t
self.match(_t,LITERAL_switch)
_t = _t.getFirstChild()
aexpr=self.block(_t, "")
_t = self._retTree
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
g=self.block(_t, "")
_t = self._retTree
cc.append(g)
else:
break
_t = _t336
_t = _t.getNextSibling()
sstr="_switch_val="+aexpr+self.nl
sstr+="if False: # switch "+cc[0]+self.nl+" pass"+self.nl+ self.nl.join(cc)
sstr+=self.nl
elif la1 and la1 in [LITERAL_case]:
pass
_t339 = _t
tmp11_AST_in = _t
self.match(_t,LITERAL_case)
_t = _t.getFirstChild()
self.incr()
aexpr=self.block(_t, "")
_t = self._retTree
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
g=self.block(_t, "")
_t = self._retTree
cc.append(g)
else:
break
_t = _t339
_t = _t.getNextSibling()
sstr="elif _switch_val == "+aexpr+":"+self.nl+self.nl.join(cc)
#print "CASE"+sstr+"CASE"
self.decr()
elif la1 and la1 in [LITERAL_otherwise]:
pass
_t342 = _t
tmp12_AST_in = _t
self.match(_t,LITERAL_otherwise)
_t = _t.getFirstChild()
self.incr()
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
g=self.block(_t, "")
_t = self._retTree
cc.append(g)
else:
break
_t = _t342
_t = _t.getNextSibling()
sstr="else:"+self.nl+self.nl.join(cc)
self.decr()
elif la1 and la1 in [ANDAND]:
pass
_t345 = _t
tmp13_AST_in = _t
self.match(_t,ANDAND)
_t = _t.getFirstChild()
a=self.block(_t, "and")
_t = self._retTree
b=self.block(_t, "and")
_t = self._retTree
_t = _t345
_t = _t.getNextSibling()
sstr=self.bop(" and ",a,b)
elif la1 and la1 in [ASSIGN]:
pass
_t346 = _t
tmp14_AST_in = _t
self.match(_t,ASSIGN)
_t = _t.getFirstChild()
self.is_lhs=True
a=self.block(_t, "=")
_t = self._retTree
self.is_lhs=False
self.is_simple_rhs=True
#print "Simple RHS"
b=self.block(_t, "=")
_t = self._retTree
self.is_simple_rhs=False
_t = _t346
_t = _t.getNextSibling()
sstr=self.bop(" = ",a,b)
elif la1 and la1 in [LAMBDA]:
pass
_t347 = _t
tmp15_AST_in = _t
self.match(_t,LAMBDA)
_t = _t.getFirstChild()
a=self.block(_t, "")
_t = self._retTree
b=self.block(_t, "")
_t = self._retTree
_t = _t347
_t = _t.getNextSibling()
sstr="lambda "+a+": "+b
elif la1 and la1 in [ATPAREN]:
pass
_t348 = _t
tmp16_AST_in = _t
self.match(_t,ATPAREN)
_t = _t.getFirstChild()
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
g=self.block(_t, ",")
_t = self._retTree
cc.append(g)
else:
break
_t = _t348
_t = _t.getNextSibling()
sstr=", ".join(cc)
elif la1 and la1 in [BACKDIV]:
pass
_t351 = _t
tmp17_AST_in = _t
self.match(_t,BACKDIV)
_t = _t.getFirstChild()
a=self.block(_t, ",")
_t = self._retTree
b=self.block(_t, ",")
_t = self._retTree
_t = _t351
_t = _t.getNextSibling()
sstr="linalg.solve("+a+", "+b+")"
elif la1 and la1 in [COLON]:
pass
_t352 = _t
tmp18_AST_in = _t
self.match(_t,COLON)
_t = _t.getFirstChild()
a=self.block(_t, ":")
_t = self._retTree
b=self.block(_t, ":")
_t = self._retTree
if not _t:
_t = antlr.ASTNULL
la1 = _t.getType()
if False:
pass
elif la1 and la1 in [EXPR,BLOCK,SIGN_PLUS,SIGN_MINUS,VAR,DOT,ARGUMENTS,ARRAY_END,BREAK,CONT,RETURN,COMMAND,LAMBDA,ALLELEMENTS,TRANS,CELL,MATRIX,FLOAT,COMPLEX,COMMENT,NEWLINE,LBRACK,NAME,COMMA,RBRACK,ASSIGN,LPAREN,RPAREN,LITERAL_if,LITERAL_while,LITERAL_for,LITERAL_try,LITERAL_switch,LITERAL_catch,LITERAL_case,LITERAL_elseif,LITERAL_otherwise,LITERAL_else,LBRACE,COLON,ATPAREN,OROR,ANDAND,OR,AND,EQUAL,NOT_EQUAL,LESS_THAN,LESS_OR_EQUAL,GREATER_THAN,GREATER_OR_EQUAL,PLUS,MINUS,STAR,DIV,BACKDIV,DOTSTAR,DOTDIV,DOTBACKDIV,NOT,EXP,DOTEXP,AT,DOTTRANS,NUMBER,INT,STRING,ROWJOIN,COLUMNJOIN]:
pass
c=self.block(_t, ":")
_t = self._retTree
elif la1 and la1 in [3]:
pass
else:
raise antlr.NoViableAltException(_t)
_t = _t352
_t = _t.getNextSibling()
sstr=self.colonop(a,b,c)
elif la1 and la1 in [COMMA]:
pass
_t354 = _t
tmp19_AST_in = _t
self.match(_t,COMMA)
_t = _t.getFirstChild()
_cnt356= 0
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
a=self.block(_t, ',')
_t = self._retTree
cc.append(a)
else:
break
_cnt356 += 1
if _cnt356 < 1:
raise antlr.NoViableAltException(_t)
_t = _t354
_t = _t.getNextSibling()
sstr=self.multiop(", ",cc)
elif la1 and la1 in [DOT]:
pass
_t357 = _t
tmp20_AST_in = _t
self.match(_t,DOT)
_t = _t.getFirstChild()
a=self.block(_t, '.')
_t = self._retTree
_t = _t357
_t = _t.getNextSibling()
sstr=self.preop(".",a)
elif la1 and la1 in [NOT]:
pass
_t358 = _t
tmp21_AST_in = _t
self.match(_t,NOT)
_t = _t.getFirstChild()
a=self.block(_t, "not")
_t = self._retTree
_t = _t358
_t = _t.getNextSibling()
sstr=self.preop("not ",a)
elif la1 and la1 in [SIGN_PLUS]:
pass
_t359 = _t
tmp22_AST_in = _t
self.match(_t,SIGN_PLUS)
_t = _t.getFirstChild()
a=self.block(_t, " +")
_t = self._retTree
_t = _t359
_t = _t.getNextSibling()
sstr=self.preop("+",a)
elif la1 and la1 in [SIGN_MINUS]:
pass
_t360 = _t
tmp23_AST_in = _t
self.match(_t,SIGN_MINUS)
_t = _t.getFirstChild()
a=self.block(_t, " -")
_t = self._retTree
_t = _t360
_t = _t.getNextSibling()
sstr=self.preop("-",a)
elif la1 and la1 in [DOTDIV]:
pass
_t361 = _t
tmp24_AST_in = _t
self.match(_t,DOTDIV)
_t = _t.getFirstChild()
a=self.block(_t, "/")
_t = self._retTree
b=self.block(_t, "/")
_t = self._retTree
_t = _t361
_t = _t.getNextSibling()
sstr=self.bop("/",a,b)
elif la1 and la1 in [DOTEXP]:
pass
_t362 = _t
tmp25_AST_in = _t
self.match(_t,DOTEXP)
_t = _t.getFirstChild()
a=self.block(_t, "**")
_t = self._retTree
b=self.block(_t, "**")
_t = self._retTree
_t = _t362
_t = _t.getNextSibling()
sstr=self.bop("**",a,b)
elif la1 and la1 in [DOTSTAR]:
pass
_t363 = _t
tmp26_AST_in = _t
self.match(_t,DOTSTAR)
_t = _t.getFirstChild()
a=self.block(_t, "*")
_t = self._retTree
b=self.block(_t, "*")
_t = self._retTree
_t = _t363
_t = _t.getNextSibling()
sstr=self.bop("*",a,b)
elif la1 and la1 in [MINUS]:
pass
_t364 = _t
tmp27_AST_in = _t
self.match(_t,MINUS)
_t = _t.getFirstChild()
a=self.block(_t, "-")
_t = self._retTree
b=self.block(_t, "-")
_t = self._retTree
_t = _t364
_t = _t.getNextSibling()
sstr=self.bop("-",a,b)
elif la1 and la1 in [PLUS]:
pass
_t365 = _t
tmp28_AST_in = _t
self.match(_t,PLUS)
_t = _t.getFirstChild()
a=self.block(_t, "+")
_t = self._retTree
b=self.block(_t, "+")
_t = self._retTree
_t = _t365
_t = _t.getNextSibling()
sstr=self.bop("+",a,b)
elif la1 and la1 in [EQUAL]:
pass
_t366 = _t
tmp29_AST_in = _t
self.match(_t,EQUAL)
_t = _t.getFirstChild()
a=self.block(_t, "==")
_t = self._retTree
b=self.block(_t, "==")
_t = self._retTree
_t = _t366
_t = _t.getNextSibling()
sstr=self.bop(" == ",a,b)
elif la1 and la1 in [NOT_EQUAL]:
pass
_t367 = _t
tmp30_AST_in = _t
self.match(_t,NOT_EQUAL)
_t = _t.getFirstChild()
a=self.block(_t, "!=")
_t = self._retTree
b=self.block(_t, "!=")
_t = self._retTree
_t = _t367
_t = _t.getNextSibling()
sstr=self.bop(" != ",a,b)
elif la1 and la1 in [GREATER_THAN]:
pass
_t368 = _t
tmp31_AST_in = _t
self.match(_t,GREATER_THAN)
_t = _t.getFirstChild()
a=self.block(_t, ">")
_t = self._retTree
b=self.block(_t, ">")
_t = self._retTree
_t = _t368
_t = _t.getNextSibling()
sstr=self.bop(" > ",a,b)
elif la1 and la1 in [GREATER_OR_EQUAL]:
pass
_t369 = _t
tmp32_AST_in = _t
self.match(_t,GREATER_OR_EQUAL)
_t = _t.getFirstChild()
a=self.block(_t, ">=")
_t = self._retTree
b=self.block(_t, ">=")
_t = self._retTree
_t = _t369
_t = _t.getNextSibling()
sstr=self.bop(" >= ",a,b)
elif la1 and la1 in [LESS_OR_EQUAL]:
pass
_t370 = _t
tmp33_AST_in = _t
self.match(_t,LESS_OR_EQUAL)
_t = _t.getFirstChild()
a=self.block(_t, "<=")
_t = self._retTree
b=self.block(_t, "<=")
_t = self._retTree
_t = _t370
_t = _t.getNextSibling()
sstr=self.bop("<=",a,b)
elif la1 and la1 in [LESS_THAN]:
pass
_t371 = _t
tmp34_AST_in = _t
self.match(_t,LESS_THAN)
_t = _t.getFirstChild()
a=self.block(_t, "<")
_t = self._retTree
b=self.block(_t, "<")
_t = self._retTree
_t = _t371
_t = _t.getNextSibling()
sstr=self.bop("<",a,b)
elif la1 and la1 in [OROR]:
pass
_t372 = _t
tmp35_AST_in = _t
self.match(_t,OROR)
_t = _t.getFirstChild()
a=self.block(_t, "or")
_t = self._retTree
b=self.block(_t, "or")
_t = self._retTree
_t = _t372
_t = _t.getNextSibling()
sstr=self.bop(" or ",a,b)
elif la1 and la1 in [LPAREN]:
pass
_t373 = _t
tmp36_AST_in = _t
self.match(_t,LPAREN)
_t = _t.getFirstChild()
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
g=self.block(_t, "")
_t = self._retTree
cc.append(g)
else:
break
_t = _t373
_t = _t.getNextSibling()
sstr="("+", ".join(cc)+")"
elif la1 and la1 in [ARGUMENTS]:
pass
_t376 = _t
tmp37_AST_in = _t
self.match(_t,ARGUMENTS)
_t = _t.getFirstChild()
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
g=self.block(_t, ",")
_t = self._retTree
cc.append(g)
else:
break
_t = _t376
_t = _t.getNextSibling()
sstr=self.join_args(cc,ptoken=ptoken)
elif la1 and la1 in [LBRACE]:
pass
_t379 = _t
tmp38_AST_in = _t
self.match(_t,LBRACE)
_t = _t.getFirstChild()
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
g=self.block(_t, ",")
_t = self._retTree
cc.append(g)
else:
break
_t = _t379
_t = _t.getNextSibling()
sstr=self.join_args(cc,True)
elif la1 and la1 in [MATRIX]:
pass
_t382 = _t
tmp39_AST_in = _t
self.match(_t,MATRIX)
_t = _t.getFirstChild()
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
g=self.block(_t, ",")
_t = self._retTree
cc.append(g)
else:
break
_t = _t382
_t = _t.getNextSibling()
if(cc):
sstr="array("+", ".join(cc)+")"
else:
sstr="array([])"
elif la1 and la1 in [CELL]:
pass
_t385 = _t
tmp40_AST_in = _t
self.match(_t,CELL)
_t = _t.getFirstChild()
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
g=self.block(_t, ",")
_t = self._retTree
cc.append(g)
else:
break
_t = _t385
_t = _t.getNextSibling()
if(cc):
sstr="cellarray("+", ".join(cc)+")"
else:
sstr="cellarray([])"
elif la1 and la1 in [EXPR]:
pass
_t388 = _t
tmp41_AST_in = _t
self.match(_t,EXPR)
_t = _t.getFirstChild()
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
g=self.block(_t, ",")
_t = self._retTree
cc.append(g)
else:
break
_t = _t388
_t = _t.getNextSibling()
sstr=", ".join(cc)
elif la1 and la1 in [ROWJOIN]:
pass
_t391 = _t
tmp42_AST_in = _t
self.match(_t,ROWJOIN)
_t = _t.getFirstChild()
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
a=self.block(_t, ",")
_t = self._retTree
cc.append(a)
else:
break
_t = _t391
_t = _t.getNextSibling()
sstr="r_["+", ".join(cc)+"]"
elif la1 and la1 in [COLUMNJOIN]:
pass
_t394 = _t
tmp43_AST_in = _t
self.match(_t,COLUMNJOIN)
_t = _t.getFirstChild()
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
a=self.block(_t, ",")
_t = self._retTree
cc.append(a)
else:
break
_t = _t394
_t = _t.getNextSibling()
sstr="c_["+", ".join(cc)+"]"
elif la1 and la1 in [AND]:
pass
_t397 = _t
tmp44_AST_in = _t
self.match(_t,AND)
_t = _t.getFirstChild()
a=self.block(_t, ',')
_t = self._retTree
b=self.block(_t, ',')
_t = self._retTree
_t = _t397
_t = _t.getNextSibling()
sstr="logical_and("+a+", "+b+")"
elif la1 and la1 in [OR]:
pass
_t398 = _t
tmp45_AST_in = _t
self.match(_t,OR)
_t = _t.getFirstChild()
a=self.block(_t, ",")
_t = self._retTree
b=self.block(_t, ",")
_t = self._retTree
_t = _t398
_t = _t.getNextSibling()
sstr="logical_or("+a+", "+b+")"
elif la1 and la1 in [STAR]:
pass
_t399 = _t
tmp46_AST_in = _t
self.match(_t,STAR)
_t = _t.getFirstChild()
a=self.block(_t, ",")
_t = self._retTree
b=self.block(_t, ",")
_t = self._retTree
_t = _t399
_t = _t.getNextSibling()
sstr="dot("+a+", "+b+")"
elif la1 and la1 in [DIV]:
pass
_t400 = _t
tmp47_AST_in = _t
self.match(_t,DIV)
_t = _t.getFirstChild()
a=self.block(_t, ',')
_t = self._retTree
b=self.block(_t, ',')
_t = self._retTree
_t = _t400
_t = _t.getNextSibling()
sstr="matdiv("+a+", "+b+")"
elif la1 and la1 in [DOTBACKDIV]:
pass
_t401 = _t
tmp48_AST_in = _t
self.match(_t,DOTBACKDIV)
_t = _t.getFirstChild()
a=self.block(_t, ',')
_t = self._retTree
b=self.block(_t, ',')
_t = self._retTree
_t = _t401
_t = _t.getNextSibling()
sstr="matbackdiv("+a+", "+b+")"
elif la1 and la1 in [EXP]:
pass
_t402 = _t
tmp49_AST_in = _t
self.match(_t,EXP)
_t = _t.getFirstChild()
a=self.block(_t, ",")
_t = self._retTree
b=self.block(_t, ",")
_t = self._retTree
_t = _t402
_t = _t.getNextSibling()
sstr="matixpower("+a+", "+b+")"
elif la1 and la1 in [AT]:
pass
_t403 = _t
tmp50_AST_in = _t
self.match(_t,AT)
_t = _t.getFirstChild()
a=self.block(_t, ptoken)
_t = self._retTree
_t = _t403
_t = _t.getNextSibling()
sstr=a
elif la1 and la1 in [BREAK]:
pass
tmp51_AST_in = _t
self.match(_t,BREAK)
_t = _t.getNextSibling()
sstr="break"
elif la1 and la1 in [CONT]:
pass
tmp52_AST_in = _t
self.match(_t,CONT)
_t = _t.getNextSibling()
sstr="continue"
elif la1 and la1 in [RETURN]:
pass
tmp53_AST_in = _t
self.match(_t,RETURN)
_t = _t.getNextSibling()
sstr="return ["+self.returnval+"]"
elif la1 and la1 in [ARRAY_END]:
pass
tmp54_AST_in = _t
self.match(_t,ARRAY_END)
_t = _t.getNextSibling()
sstr="xend"
elif la1 and la1 in [ALLELEMENTS]:
pass
tmp55_AST_in = _t
self.match(_t,ALLELEMENTS)
_t = _t.getNextSibling()
sstr=":"
elif la1 and la1 in [TRANS]:
pass
_t404 = _t
tmp56_AST_in = _t
self.match(_t,TRANS)
_t = _t.getFirstChild()
a=self.block(_t, ".")
_t = self._retTree
_t = _t404
_t = _t.getNextSibling()
sstr=a+".conj().T"
elif la1 and la1 in [DOTTRANS]:
pass
_t405 = _t
tmp57_AST_in = _t
self.match(_t,DOTTRANS)
_t = _t.getFirstChild()
a=self.block(_t, ".")
_t = self._retTree
_t = _t405
_t = _t.getNextSibling()
sstr=a+".T"
elif la1 and la1 in [COMMAND]:
pass
_t406 = _t
q = antlr.ifelse(_t == antlr.ASTNULL, None, _t)
self.match(_t,COMMAND)
_t = _t.getFirstChild()
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
a=self.block(_t, "NAME")
_t = self._retTree
cc.append("'"+a+"'")
else:
break
_t = _t406
_t = _t.getNextSibling()
sstr=self.Lookup(q.getText())+"("+"".join(cc)+")"
elif la1 and la1 in [NAME]:
pass
_t409 = _t
i = antlr.ifelse(_t == antlr.ASTNULL, None, _t)
self.match(_t,NAME)
_t = _t.getFirstChild()
self.nargin=0
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
g=self.block(_t, "NAME")
_t = self._retTree
cc.append(g)
else:
break
_t = _t409
_t = _t.getNextSibling()
if(cc):
sstr=self.Lookup(i.getText())+"".join(cc)
else:
sstr=self.Lookup(i.getText())+"()"
elif la1 and la1 in [NEWLINE]:
pass
j = _t
self.match(_t,NEWLINE)
_t = _t.getNextSibling()
sstr=j.getText()
elif la1 and la1 in [NUMBER]:
pass
k = _t
self.match(_t,NUMBER)
_t = _t.getNextSibling()
sstr=k.getText()
elif la1 and la1 in [INT]:
pass
u = _t
self.match(_t,INT)
_t = _t.getNextSibling()
sstr=u.getText()+"."
elif la1 and la1 in [FLOAT]:
pass
v = _t
self.match(_t,FLOAT)
_t = _t.getNextSibling()
sstr=v.getText()
elif la1 and la1 in [COMPLEX]:
pass
w = _t
self.match(_t,COMPLEX)
_t = _t.getNextSibling()
sstr=w.getText()
elif la1 and la1 in [RBRACK]:
pass
tmp58_AST_in = _t
self.match(_t,RBRACK)
_t = _t.getNextSibling()
sstr=""
elif la1 and la1 in [LBRACK]:
pass
_t412 = _t
tmp59_AST_in = _t
self.match(_t,LBRACK)
_t = _t.getFirstChild()
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
g=self.block(_t, "")
_t = self._retTree
cc.append(g)
else:
break
_t = _t412
_t = _t.getNextSibling()
sstr="["+", ".join(cc)+"]"
elif la1 and la1 in [RPAREN]:
pass
m = _t
self.match(_t,RPAREN)
_t = _t.getNextSibling()
sstr=""
elif la1 and la1 in [STRING]:
pass
p = _t
self.match(_t,STRING)
_t = _t.getNextSibling()
sstr=p.getText().replace("''",r"\'")
elif la1 and la1 in [VAR]:
pass
_t415 = _t
r = antlr.ifelse(_t == antlr.ASTNULL, None, _t)
self.match(_t,VAR)
_t = _t.getFirstChild()
self.in_var=True
while True:
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
g=self.block(_t, "VAR")
_t = self._retTree
cc.append(g)
else:
break
_t = _t415
_t = _t.getNextSibling()
if(cc):
sstr=(r.getText())+"".join(cc)
else:
sstr=(r.getText())
if(self.is_simple_rhs):
sstr+=".copy()"
self.in_var=False
elif la1 and la1 in [COMMENT]:
pass
t=self.comment(_t)
_t = self._retTree
sstr=t
if not _t:
_t = antlr.ASTNULL
if (_tokenSet_0.member(_t.getType())):
pass
g=self.block(_t, ptoken)
_t = self._retTree
sstr+=g
elif (_tokenSet_1.member(_t.getType())):
pass
else:
raise antlr.NoViableAltException(_t)
else:
raise antlr.NoViableAltException(_t)
except antlr.RecognitionException, ex:
self.reportError(ex)
if _t:
_t = _t.getNextSibling()
self._retTree = _t
return sstr
def funcreturn(self, _t):
sstr = None
funcreturn_AST_in = None
if _t != antlr.ASTNULL:
funcreturn_AST_in = _t
a = None
sstr=""
cc=[]
#print "in funcreturn"
try: ## for error handling
pass
_t317 = _t
tmp60_AST_in = _t
self.match(_t,RETURN_VARS)
_t = _t.getFirstChild()
_cnt319= 0
while True:
if not _t:
_t = antlr.ASTNULL
if (_t.getType()==VAR):
pass
a = _t
self.match(_t,VAR)
_t = _t.getNextSibling()
cc.append(a.getText())
else:
break
_cnt319 += 1
if _cnt319 < 1:
raise antlr.NoViableAltException(_t)
_t = _t317
_t = _t.getNextSibling()
sstr=", ".join(cc)
except antlr.RecognitionException, ex:
self.reportError(ex)
if _t:
_t = _t.getNextSibling()
self._retTree = _t
return sstr
def funcargs(self, _t):
sstr = None
funcargs_AST_in = None
if _t != antlr.ASTNULL:
funcargs_AST_in = _t
a = None
sstr=""
cc=[]
#print "in funcargs"
try: ## for error handling
pass
_t420 = _t
tmp61_AST_in = _t
self.match(_t,FUNCTION_ARGS)
_t = _t.getFirstChild()
while True:
if not _t:
_t = antlr.ASTNULL
if (_t.getType()==VAR):
pass
a = _t
self.match(_t,VAR)
_t = _t.getNextSibling()
cc.append(a.getText())
else:
break
_t = _t420
_t = _t.getNextSibling()
sstr="("+", ".join(cc)+")"
except antlr.RecognitionException, ex:
self.reportError(ex)
if _t:
_t = _t.getNextSibling()
self._retTree = _t
return sstr
def default(self, _t):
sstr = None
default_AST_in = None
if _t != antlr.ASTNULL:
default_AST_in = _t
b = None
c = None
a = None
sstr=""
try: ## for error handling
if not _t:
_t = antlr.ASTNULL
la1 = _t.getType()
if False:
pass
elif la1 and la1 in [NAME]:
pass
_t424 = _t
b = antlr.ifelse(_t == antlr.ASTNULL, None, _t)
self.match(_t,NAME)
_t = _t.getFirstChild()
if not _t:
_t = antlr.ASTNULL
la1 = _t.getType()
if False:
pass
elif la1 and la1 in [NAME]:
pass
c = _t
self.match(_t,NAME)
_t = _t.getNextSibling()
elif la1 and la1 in [3]:
pass
else:
raise antlr.NoViableAltException(_t)
_t = _t424
_t = _t.getNextSibling()
sstr=_t.getText()
#print "sdsdsd "+_t.toString()
elif la1 and la1 in [COMMENT]:
pass
a = _t
self.match(_t,COMMENT)
_t = _t.getNextSibling()
sstr="#"+a.getText()+"\n"
else:
raise antlr.NoViableAltException(_t)
except antlr.RecognitionException, ex:
self.reportError(ex)
if _t:
_t = _t.getNextSibling()
self._retTree = _t
return sstr
_tokenNames = [
"<0>",
"EOF",
"<2>",
"NULL_TREE_LOOKAHEAD",
"EXPR",
"DECL",
"FUNCTION",
"IFBLOCK",
"BLOCK",
"BCOLON",
"SIGN_PLUS",
"SIGN_MINUS",
"VAR",
"SCOPE",
"DOT",
"ARGUMENTS",
"CONTINUATION",
"END",
"ARRAY_END",
"\"break\"",
"\"continue\"",
"\"return\"",
"RETURN_VARS",
"COMMAND",
"LAMBDA",
"ALLELEMENTS",
"TRANS",
"CELL",
"MATRIX",
"COLUMN_JOIN",
"ROW_JOIN",
"FLOAT",
"COMPLEX",
"\"assert\"",
"\"global\"",
"FUNCTION_ARGS",
"BRACE_ARGS",
"PAREN_ARGS",
"SPACE",
"COMMENT",
"NEWLINE",
"\"function\"",
"LBRACK",
"NAME",
"COMMA",
"RBRACK",
"ASSIGN",
"LPAREN",
"RPAREN",
"\"if\"",
"\"while\"",
"\"for\"",
"\"try\"",
"\"switch\"",
"\"catch\"",
"\"case\"",
"\"elseif\"",
"\"otherwise\"",
"\"else\"",
"SEMI",
"LBRACE",
"RBRACE",
"COLON",
"ATPAREN",
"OROR",
"ANDAND",
"OR",
"AND",
"EQUAL",
"NOT_EQUAL",
"LESS_THAN",
"LESS_OR_EQUAL",
"GREATER_THAN",
"GREATER_OR_EQUAL",
"PLUS",
"MINUS",
"STAR",
"DIV",
"BACKDIV",
"DOTSTAR",
"DOTDIV",
"DOTBACKDIV",
"NOT",
"EXP",
"DOTEXP",
"AT",
"DOTTRANS",
"NUMBER",
"INT",
"MATCHVAR",
"STRING",
"Exponent",
"MATCH",
"DIGIT",
"ROWJOIN",
"COLUMNJOIN"
]
### generate bit set
def mk_tokenSet_0():
### var1
data = [ -2882306503321264880L, 3321888767L, 0L, 0L]
return data
_tokenSet_0 = antlr.BitSet(mk_tokenSet_0())
### generate bit set
def mk_tokenSet_1():
### var1
data = [ -2882306503321264872L, 3321888767L, 0L, 0L]
return data
_tokenSet_1 = antlr.BitSet(mk_tokenSet_1())