예제 #1
0
 def handles(cls, statement, ctx):
     for token in statement:
         if token.value == 'IF':
             return True
         if not is_assign(token.value, allow_assign_mark=True):
             return False
     return False
예제 #2
0
 def handles(self, statement):
     for token in statement:
         if token.value == 'IF':
             return True
         if is_assign(token.value, allow_assign_mark=True):
             continue
         return False
 def _validate_arg(self, arg):
     arg, default = split_from_equals(arg)
     if not (is_assign(arg) or arg == '@{}'):
         self._raise_invalid_spec("Invalid argument syntax '%s'." % arg)
     if default is not None:
         return arg, default
     return arg
 def _lex_as_keyword_call(self):
     keyword_seen = False
     for token in self.statement:
         if keyword_seen:
             token.type = Token.ARGUMENT
         elif is_assign(token.value, allow_assign_mark=True):
             token.type = Token.ASSIGN
         else:
             token.type = Token.KEYWORD
             keyword_seen = True
예제 #5
0
 def _validate_arg(self, arg):
     arg, default = split_from_equals(arg)
     if not (is_assign(arg) or arg == '@{}'):
         self._report_error("Invalid argument syntax '%s'." % arg)
     if default is None:
         return arg
     if not is_scalar_assign(arg):
         typ = 'list' if arg[0] == '@' else 'dictionary'
         self._report_error("Only normal arguments accept default values, "
                            "%s arguments like '%s' do not." % (typ, arg))
     return arg, default
예제 #6
0
 def test_is_assign(self):
     for ok in SCALARS + LISTS + DICTS:
         assert is_assign(ok)
         assert is_assign(ok + '=', allow_assign_mark=True)
         assert is_assign(ok + ' =', allow_assign_mark=True)
         assert not is_assign(ok + '[item]')
         assert not is_assign(' ' + ok)
     for nok in NOK_ASSIGNS:
         assert not is_assign(nok)
예제 #7
0
 def test_is_assign(self):
     for ok in SCALARS + LISTS + DICTS:
         assert is_assign(ok)
         assert search_variable(ok).is_assign()
         assert is_assign(ok + '=', allow_assign_mark=True)
         assert is_assign(ok + ' =', allow_assign_mark=True)
         assert not is_assign(ok + '[item]')
         assert not is_assign(' ' + ok)
     for nok in NOK_ASSIGNS:
         assert not is_assign(nok)
         assert not search_variable(nok, ignore_errors=True).is_assign()