Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
# Finish rules processing on blank line.
if not line:
break
if not isinstance(line, six.string_types):
line = line.decode('utf-8')
if self.comment_regex.match(line):
continue
# A rule within a state, starts with 1 or 2 spaces, or a tab.
if not line.startswith((' ^', ' ^', '\t^')):
raise TextFSMTemplateError(
"Missing white space or carat ('^') before rule. Line: %s" %
self._line_num)
self.states[state_name].append(
TextFSMRule(line, self._line_num, self.value_map))
return state_name
return
state_name = ''
# Strip off extra white space lines (including comments).
for line in template:
self._line_num += 1
line = line.rstrip()
if not isinstance(line, six.string_types):
line = line.decode('utf-8')
# First line is state definition
if line and not self.comment_regex.match(line):
# Ensure statename has valid syntax and is not a reserved word.
if (not self.state_name_re.match(line) or
len(line) > self.MAX_NAME_LEN or
line in TextFSMRule.LINE_OP or
line in TextFSMRule.RECORD_OP):
raise TextFSMTemplateError("Invalid state name: '%s'. Line: %s"
% (line, self._line_num))
state_name = line
if state_name in self.states:
raise TextFSMTemplateError("Duplicate state name: '%s'. Line: %s"
% (line, self._line_num))
self.states[state_name] = []
self.state_list.append(state_name)
break
# Parse each rule in the state.
for line in template:
self._line_num += 1
line = line.rstrip()
if not template:
return
state_name = ''
# Strip off extra white space lines (including comments).
for line in template:
self._line_num += 1
line = line.rstrip()
if not isinstance(line, six.string_types):
line = line.decode('utf-8')
# First line is state definition
if line and not self.comment_regex.match(line):
# Ensure statename has valid syntax and is not a reserved word.
if (not self.state_name_re.match(line) or
len(line) > self.MAX_NAME_LEN or
line in TextFSMRule.LINE_OP or
line in TextFSMRule.RECORD_OP):
raise TextFSMTemplateError("Invalid state name: '%s'. Line: %s"
% (line, self._line_num))
state_name = line
if state_name in self.states:
raise TextFSMTemplateError("Duplicate state name: '%s'. Line: %s"
% (line, self._line_num))
self.states[state_name] = []
self.state_list.append(state_name)
break
# Parse each rule in the state.
for line in template:
self._line_num += 1
line = line.rstrip()