[jsinterp] Formatting code

This commit is contained in:
sulyi 2016-12-10 02:59:32 +01:00
parent a9c7310950
commit e392f7897d
2 changed files with 49 additions and 48 deletions

View File

@ -5,6 +5,7 @@ from __future__ import unicode_literals
# Allow direct execution # Allow direct execution
import os import os
import sys import sys
if sys.version_info < (2, 7): if sys.version_info < (2, 7):
import unittest2 as unittest import unittest2 as unittest
else: else:
@ -262,7 +263,7 @@ class TestJSInterpreterParser(unittest.TestCase):
(Token.OPEXPR, [ (Token.OPEXPR, [
(Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [ (Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.INT, 1), None, None) (Token.MEMBER, (Token.INT, 1), None, None)
]), None),]), None, None), ]), None)]), None, None),
(Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [ (Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.INT, 2), None, None) (Token.MEMBER, (Token.INT, 2), None, None)
@ -279,7 +280,8 @@ class TestJSInterpreterParser(unittest.TestCase):
(Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [ (Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [ (Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [ (Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [ (Token.MEMBER,
(Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.INT, 3), None, None) (Token.MEMBER, (Token.INT, 3), None, None)
]), None)]), None, None) ]), None)]), None, None)
]), None)]), None, None) ]), None)]), None, None)
@ -316,11 +318,11 @@ class TestJSInterpreterParser(unittest.TestCase):
(Token.ASSIGN, (Token.ASSIGN,
_ASSIGN_OPERATORS['='][1], _ASSIGN_OPERATORS['='][1],
(Token.OPEXPR, [(Token.MEMBER, (Token.ID, 'x'), None, None)]), (Token.OPEXPR, [(Token.MEMBER, (Token.ID, 'x'), None, None)]),
(Token.ASSIGN, None, (Token.OPEXPR, [ (Token.ASSIGN, None,
(Token.OPEXPR, [
(Token.MEMBER, (Token.INT, 30), None, None), (Token.MEMBER, (Token.INT, 30), None, None),
(Token.MEMBER, (Token.INT, 1), None, None), (Token.MEMBER, (Token.INT, 1), None, None),
(Token.OP, _OPERATORS['+'][1]) (Token.OP, _OPERATORS['+'][1])]),
]),
None)) None))
]), ]),
@ -338,11 +340,11 @@ class TestJSInterpreterParser(unittest.TestCase):
(Token.ASSIGN, (Token.ASSIGN,
_ASSIGN_OPERATORS['+='][1], _ASSIGN_OPERATORS['+='][1],
(Token.OPEXPR, [(Token.MEMBER, (Token.ID, 'x'), None, None)]), (Token.OPEXPR, [(Token.MEMBER, (Token.ID, 'x'), None, None)]),
(Token.ASSIGN, None, (Token.OPEXPR, [ (Token.ASSIGN, None,
(Token.OPEXPR, [
(Token.MEMBER, (Token.INT, 30), None, None), (Token.MEMBER, (Token.INT, 30), None, None),
(Token.MEMBER, (Token.INT, 1), None, None), (Token.MEMBER, (Token.INT, 1), None, None),
(Token.OP, _OPERATORS['+'][1]) (Token.OP, _OPERATORS['+'][1])]),
]),
None)) None))
]) ])
self.assertEqual(list(jsi.statements()), ast) self.assertEqual(list(jsi.statements()), ast)
@ -352,11 +354,11 @@ class TestJSInterpreterParser(unittest.TestCase):
(Token.ASSIGN, (Token.ASSIGN,
_ASSIGN_OPERATORS['-='][1], _ASSIGN_OPERATORS['-='][1],
(Token.OPEXPR, [(Token.MEMBER, (Token.ID, 'x'), None, None)]), (Token.OPEXPR, [(Token.MEMBER, (Token.ID, 'x'), None, None)]),
(Token.ASSIGN, None, (Token.OPEXPR, [ (Token.ASSIGN, None,
(Token.OPEXPR, [
(Token.MEMBER, (Token.INT, 30), None, None), (Token.MEMBER, (Token.INT, 30), None, None),
(Token.MEMBER, (Token.INT, 1), None, None), (Token.MEMBER, (Token.INT, 1), None, None),
(Token.OP, _OPERATORS['+'][1]) (Token.OP, _OPERATORS['+'][1])]),
]),
None)) None))
]) ])
self.assertEqual(list(jsi.statements()), ast) self.assertEqual(list(jsi.statements()), ast)
@ -502,7 +504,7 @@ class TestJSInterpreterParser(unittest.TestCase):
ast = [] ast = []
self.assertEqual(list(jsi.statements()), ast) self.assertEqual(list(jsi.statements()), ast)
jsi = JSInterpreter('function x(a) { return a.split(""); }', objects={'a': 'abc'}) jsi = JSInterpreter('function x(a) { return a.split(""); }', variables={'a': 'abc'})
ast = [] ast = []
self.assertEqual(list(jsi.statements()), ast) self.assertEqual(list(jsi.statements()), ast)
@ -517,7 +519,7 @@ class TestJSInterpreterParser(unittest.TestCase):
self.assertEqual(list(jsi.statements()), ast) self.assertEqual(list(jsi.statements()), ast)
def test_getfield(self): def test_getfield(self):
jsi = JSInterpreter('return a.var;', objects={'a': {'var': 3}}) jsi = JSInterpreter('return a.var;', variables={'a': {'var': 3}})
ast = [(Token.RETURN, ast = [(Token.RETURN,
(Token.EXPR, [ (Token.EXPR, [
(Token.ASSIGN, (Token.ASSIGN,
@ -533,5 +535,6 @@ class TestJSInterpreterParser(unittest.TestCase):
] ]
self.assertEqual(list(jsi.statements()), ast) self.assertEqual(list(jsi.statements()), ast)
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()

View File

@ -3,7 +3,6 @@ from ..compat import compat_str
import re import re
from ..utils import ExtractorError from ..utils import ExtractorError
from .tstream import TokenStream from .tstream import TokenStream
from .jsgrammar import Token from .jsgrammar import Token
@ -223,7 +222,7 @@ class JSInterpreter(object):
peek_id, peek_value, peek_pos = token_stream.peek() peek_id, peek_value, peek_pos = token_stream.peek()
elif peek_id is Token.POPEN: elif peek_id is Token.POPEN:
# TODO handle field query # TODO handle field query
raise ExtractorError('Field querry is not yet supported at %d' % peek_pos) raise ExtractorError('Field query is not yet supported at %d' % peek_pos)
if peek_id is Token.ID: if peek_id is Token.ID:
token_stream.pop() token_stream.pop()
@ -470,7 +469,7 @@ class JSInterpreter(object):
def getvalue(self, ref): def getvalue(self, ref):
if (ref.value is None or ref.value is self.undefined or if (ref.value is None or ref.value is self.undefined or
isinstance(ref.value, (int, float, str, compat_str, list))): isinstance(ref.value, (int, float, compat_str, list))):
return ref.value return ref.value
ref_id, ref_value = ref.value ref_id, ref_value = ref.value
if ref_id is Token.ID: if ref_id is Token.ID:
@ -510,7 +509,6 @@ class JSInterpreter(object):
name = stmt[0] name = stmt[0]
ref = None ref = None
abort = False
if name == 'funcdecl': if name == 'funcdecl':
# TODO interpret funcdecl # TODO interpret funcdecl
raise ExtractorError('''Can't interpret statement called %s''' % name) raise ExtractorError('''Can't interpret statement called %s''' % name)