[test] Adding support for signed values
This commit is contained in:
parent
c4c2aa274b
commit
e1444dd723
@ -3,7 +3,7 @@ from __future__ import unicode_literals
|
|||||||
import re
|
import re
|
||||||
|
|
||||||
from ..utils import ExtractorError
|
from ..utils import ExtractorError
|
||||||
from .tstream import TokenStream
|
from .tstream import TokenStream, _UNARY_OPERATORS
|
||||||
from .jsgrammar import Token, token_keys
|
from .jsgrammar import Token, token_keys
|
||||||
|
|
||||||
|
|
||||||
@ -741,6 +741,10 @@ class JSInterpreter(object):
|
|||||||
has_prefix = True
|
has_prefix = True
|
||||||
while has_prefix:
|
while has_prefix:
|
||||||
peek_id, peek_value, peek_pos = token_stream.peek()
|
peek_id, peek_value, peek_pos = token_stream.peek()
|
||||||
|
if peek_id is Token.OP and peek_value[0] in (Token.ADD, Token.SUB):
|
||||||
|
# any binary operators will be consumed later
|
||||||
|
peek_id = Token.UOP
|
||||||
|
peek_value = {Token.ADD: _UNARY_OPERATORS['+'], Token.SUB: _UNARY_OPERATORS['-']}[peek_value[0]]
|
||||||
if peek_id is Token.UOP:
|
if peek_id is Token.UOP:
|
||||||
name, op = peek_value
|
name, op = peek_value
|
||||||
had_inc = name in (Token.INC, Token.DEC)
|
had_inc = name in (Token.INC, Token.DEC)
|
||||||
|
@ -138,10 +138,6 @@ class TokenStream(object):
|
|||||||
elif token_id is Token.ID:
|
elif token_id is Token.ID:
|
||||||
yield (token_id, token_value, pos)
|
yield (token_id, token_value, pos)
|
||||||
elif token_id in _operator_lookup:
|
elif token_id in _operator_lookup:
|
||||||
# FIXME signed values
|
|
||||||
if (token_id is Token.OP and token_value in ('-', '+') and
|
|
||||||
self._last[0] not in token_keys and self._last[0] is not Token.PCLOSE):
|
|
||||||
token_id = Token.UOP
|
|
||||||
yield (token_id if token_value != 'in' else Token.IN,
|
yield (token_id if token_value != 'in' else Token.IN,
|
||||||
_operator_lookup[token_id][token_value],
|
_operator_lookup[token_id][token_value],
|
||||||
pos)
|
pos)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user