Js2Py icon indicating copy to clipboard operation
Js2Py copied to clipboard

Unexpected Token Error

Open mglass222 opened this issue 5 years ago • 0 comments

Sorry in advance if this question seems dumb. Since I don't know anything about javascript, I tried to use this converter to convert a bookmarklet written in javascript to python and its throwing an error. Any assistance would be appreciated. Thank you..

The javascript code is:

javascript:(function()%7Bvar decodedCookie %3D decodeURIComponent(document.cookie)%3Bvar ca %3D decodedCookie.split('%3B')%3Bfor(var i %3D 0%3B i <ca.length%3B i%2B%2B) %7Bvar c %3D ca%5Bi%5D%3Bwhile (c.charAt(0) %3D%3D ' ') %7Bc %3D c.substring(1)%3B%7Dif (c.indexOf('_abck%3D') %3D%3D 0) %7Bprompt('your_abck'%2C c.substring(name.length%2C c.length))%3B%7D%7D%7D)()


My python code is

import js2py

open_file = "D:\abck.js" save_file = "D:\abck.py"

js2py.translate_file(open_file, save_file)

The error is:

sException Traceback (most recent call last) in 4 save_file = "D:\abck.py" 5 ----> 6 js2py.translate_file(open_file, save_file)

~\Anaconda3\lib\site-packages\js2py\evaljs.py in translate_file(input_path, output_path) 73 js = get_file_contents(input_path) 74 ---> 75 py_code = translate_js(js) 76 lib_name = os.path.basename(output_path).split('.')[0] 77 head = 'all = [%s]\n\n# Don't look below, you will not understand this Python code :) I don't.\n\n' % repr(

~\Anaconda3\lib\site-packages\js2py\translators\translator.py in translate_js(js, HEADER, use_compilation_plan) 63 return translate_js_with_compilation_plan(js, HEADER=HEADER) 64 parser = pyjsparser.PyJsParser() ---> 65 parsed = parser.parse(js) # js to esprima syntax tree 66 # Another way of doing that would be with my auto esprima translation but its much slower and causes import problems: 67 # parsed = esprima.parse(js).to_dict()

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parse(self, code, options) 3006 self.strict = false 3007 try: -> 3008 program = self.parseProgram() 3009 except Ecma51NotSupported as e: 3010 raise self.createError(self.lineNumber, self.lastIndex, unicode(e))

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseProgram(self) 2972 node = Node() 2973 -> 2974 body = self.parseScriptBody() 2975 return node.finishProgram(body) 2976

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseScriptBody(self) 2961 firstRestricted = token 2962 while (self.startIndex < self.length): -> 2963 statement = self.parseStatementListItem() 2964 # istanbul ignore if 2965 if (statement is None):

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseStatementListItem(self) 2108 elif ENABLE_PYIMPORT and val == 'pyimport': # <<<<< MODIFIED HERE 2109 return self.parsePyimportStatement() -> 2110 return self.parseStatement() 2111 2112 def parsePyimportStatement(self):

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseStatement(self) 2672 return self.parseEmptyStatement(node) 2673 elif val == '(': -> 2674 return self.parseExpressionStatement(node) 2675 elif (typ == Token.Keyword): 2676 if val == 'break':

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseExpressionStatement(self, node) 2260 2261 def parseExpressionStatement(self, node): -> 2262 expr = self.parseExpression() 2263 self.consumeSemicolon() 2264 return node.finishExpressionStatement(expr)

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseExpression(self) 2074 def parseExpression(self): 2075 startToken = self.lookahead -> 2076 expr = self.isolateCoverGrammar(self.parseAssignmentExpression) 2077 2078 if (self.match(',')):

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in isolateCoverGrammar(self, parser) 1159 self.isAssignmentTarget = true 1160 self.firstCoverInitializedNameError = null -> 1161 result = parser() 1162 if (self.firstCoverInitializedNameError != null): 1163 self.throwUnexpectedToken(self.firstCoverInitializedNameError)

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseAssignmentExpression(self) 2036 token = self.lookahead 2037 -> 2038 expr = self.parseConditionalExpression() 2039 2040 if (expr.type == PlaceHolders.ArrowParameterPlaceHolder

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseConditionalExpression(self) 1929 startToken = self.lookahead 1930 -> 1931 expr = self.inheritCoverGrammar(self.parseBinaryExpression) 1932 if (self.match('?')): 1933 self.lex()

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in inheritCoverGrammar(self, parser) 1174 self.isAssignmentTarget = true 1175 self.firstCoverInitializedNameError = null -> 1176 result = parser() 1177 self.isBindingElement = self.isBindingElement and oldIsBindingElement 1178 self.isAssignmentTarget = self.isAssignmentTarget and oldIsAssignmentTarget

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseBinaryExpression(self) 1874 1875 marker = self.lookahead -> 1876 left = self.inheritCoverGrammar(self.parseUnaryExpression) 1877 1878 token = self.lookahead

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in inheritCoverGrammar(self, parser) 1174 self.isAssignmentTarget = true 1175 self.firstCoverInitializedNameError = null -> 1176 result = parser() 1177 self.isBindingElement = self.isBindingElement and oldIsBindingElement 1178 self.isAssignmentTarget = self.isAssignmentTarget and oldIsAssignmentTarget

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseUnaryExpression(self) 1850 self.isAssignmentTarget = self.isBindingElement = false 1851 else: -> 1852 expr = self.parsePostfixExpression() 1853 return expr 1854

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parsePostfixExpression(self) 1792 1793 expr = self.inheritCoverGrammar( -> 1794 self.parseLeftHandSideExpressionAllowCall) 1795 1796 if (not self.hasLineTerminator

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in inheritCoverGrammar(self, parser) 1174 self.isAssignmentTarget = true 1175 self.firstCoverInitializedNameError = null -> 1176 result = parser() 1177 self.isBindingElement = self.isBindingElement and oldIsBindingElement 1178 self.isAssignmentTarget = self.isAssignmentTarget and oldIsAssignmentTarget

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseLeftHandSideExpressionAllowCall(self) 1715 else: 1716 expr = self.inheritCoverGrammar( -> 1717 self.parseNewExpression if self.matchKeyword('new') else self. 1718 parsePrimaryExpression) 1719 while True:

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in inheritCoverGrammar(self, parser) 1174 self.isAssignmentTarget = true 1175 self.firstCoverInitializedNameError = null -> 1176 result = parser() 1177 self.isBindingElement = self.isBindingElement and oldIsBindingElement 1178 self.isAssignmentTarget = self.isAssignmentTarget and oldIsAssignmentTarget

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parsePrimaryExpression(self) 1602 if (self.match('(')): 1603 self.isBindingElement = false -> 1604 return self.inheritCoverGrammar(self.parseGroupExpression) 1605 if (self.match('[')): 1606 return self.inheritCoverGrammar(self.parseArrayInitialiser)

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in inheritCoverGrammar(self, parser) 1174 self.isAssignmentTarget = true 1175 self.firstCoverInitializedNameError = null -> 1176 result = parser() 1177 self.isBindingElement = self.isBindingElement and oldIsBindingElement 1178 self.isAssignmentTarget = self.isAssignmentTarget and oldIsAssignmentTarget

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseGroupExpression(self) 1546 1547 self.isBindingElement = true -> 1548 expr = self.inheritCoverGrammar(self.parseAssignmentExpression) 1549 1550 if (self.match(',')):

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in inheritCoverGrammar(self, parser) 1174 self.isAssignmentTarget = true 1175 self.firstCoverInitializedNameError = null -> 1176 result = parser() 1177 self.isBindingElement = self.isBindingElement and oldIsBindingElement 1178 self.isAssignmentTarget = self.isAssignmentTarget and oldIsAssignmentTarget

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseAssignmentExpression(self) 2036 token = self.lookahead 2037 -> 2038 expr = self.parseConditionalExpression() 2039 2040 if (expr.type == PlaceHolders.ArrowParameterPlaceHolder

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseConditionalExpression(self) 1929 startToken = self.lookahead 1930 -> 1931 expr = self.inheritCoverGrammar(self.parseBinaryExpression) 1932 if (self.match('?')): 1933 self.lex()

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in inheritCoverGrammar(self, parser) 1174 self.isAssignmentTarget = true 1175 self.firstCoverInitializedNameError = null -> 1176 result = parser() 1177 self.isBindingElement = self.isBindingElement and oldIsBindingElement 1178 self.isAssignmentTarget = self.isAssignmentTarget and oldIsAssignmentTarget

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseBinaryExpression(self) 1874 1875 marker = self.lookahead -> 1876 left = self.inheritCoverGrammar(self.parseUnaryExpression) 1877 1878 token = self.lookahead

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in inheritCoverGrammar(self, parser) 1174 self.isAssignmentTarget = true 1175 self.firstCoverInitializedNameError = null -> 1176 result = parser() 1177 self.isBindingElement = self.isBindingElement and oldIsBindingElement 1178 self.isAssignmentTarget = self.isAssignmentTarget and oldIsAssignmentTarget

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseUnaryExpression(self) 1850 self.isAssignmentTarget = self.isBindingElement = false 1851 else: -> 1852 expr = self.parsePostfixExpression() 1853 return expr 1854

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parsePostfixExpression(self) 1792 1793 expr = self.inheritCoverGrammar( -> 1794 self.parseLeftHandSideExpressionAllowCall) 1795 1796 if (not self.hasLineTerminator

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in inheritCoverGrammar(self, parser) 1174 self.isAssignmentTarget = true 1175 self.firstCoverInitializedNameError = null -> 1176 result = parser() 1177 self.isBindingElement = self.isBindingElement and oldIsBindingElement 1178 self.isAssignmentTarget = self.isAssignmentTarget and oldIsAssignmentTarget

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseLeftHandSideExpressionAllowCall(self) 1715 else: 1716 expr = self.inheritCoverGrammar( -> 1717 self.parseNewExpression if self.matchKeyword('new') else self. 1718 parsePrimaryExpression) 1719 while True:

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in inheritCoverGrammar(self, parser) 1174 self.isAssignmentTarget = true 1175 self.firstCoverInitializedNameError = null -> 1176 result = parser() 1177 self.isBindingElement = self.isBindingElement and oldIsBindingElement 1178 self.isAssignmentTarget = self.isAssignmentTarget and oldIsAssignmentTarget

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parsePrimaryExpression(self) 1623 self.isAssignmentTarget = self.isBindingElement = false 1624 if (self.matchKeyword('function')): -> 1625 return self.parseFunctionExpression() 1626 if (self.matchKeyword('this')): 1627 self.lex()

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseFunctionExpression(self) 2919 2920 previousStrict = self.strict -> 2921 body = self.parseFunctionSourceElements() 2922 if (self.strict and firstRestricted): 2923 self.throwUnexpectedToken(firstRestricted, message)

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in parseFunctionSourceElements(self) 2726 firstRestricted = None 2727 -> 2728 self.expect('{') 2729 2730 while (self.startIndex < self.length):

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in expect(self, value) 1053 1054 def expect(self, value): -> 1055 token = self.lex() 1056 if (token['type'] != Token.Punctuator or token['value'] != value): 1057 self.throwUnexpectedToken(token)

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in lex(self) 970 self.startLineStart = self.lineStart 971 --> 972 self.lookahead = self.advance() 973 self.scanning = False 974 return token

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in advance(self) 915 916 if (isDecimalDigit(ch)): --> 917 return self.scanNumericLiteral() 918 919 # Slash (/) U+002F can also start a regex.

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in scanNumericLiteral(self) 503 self.throwUnexpectedToken() 504 if (isIdentifierStart(self.source[self.index])): --> 505 self.throwUnexpectedToken() 506 return { 507 'type': Token.NumericLiteral,

~\Anaconda3\lib\site-packages\pyjsparser\parser.py in throwUnexpectedToken(self, token, message) 1044 1045 def throwUnexpectedToken(self, token={}, message=''): -> 1046 raise self.unexpectedTokenError(token, message) 1047 1048 def tolerateUnexpectedToken(self, token={}, message=''):

JsException: SyntaxError: Line 1: Unexpected token ILLEGAL

mglass222 avatar Oct 04 '20 20:10 mglass222