name,
code_props
)
- self._type = (
- element.deserialize_int(_type)
- if isinstance(_type, str) else
- _type
- )
- self._tag = (
- element.deserialize_int(_tag)
- if isinstance(_tag, str) else
- _tag
- )
- self.precedence = (
- element.deserialize_int(precedence)
- if isinstance(precedence, str) else
- precedence
- )
- self.character_set = (
- [element.deserialize_int(i) for i in character_set.split()]
- if isinstance(character_set, str) else
- character_set
- )
+ self._type = _type
+ self._tag = _tag
+ self.precedence = precedence
+ self.character_set = character_set
def serialize(self, ref_list):
AST.TagOrSymbol.serialize(self, ref_list)
self.set('_type', element.serialize_int(self._type))
text,
children
)
- self.value = (
- element.deserialize_int(value)
- if isinstance(value, str) else
- value
- )
+ self.value = value
def serialize(self, ref_list):
AST.Production.Item.serialize(self, ref_list)
self.set('value', element.serialize_int(self.value))
text,
children
)
- self.symbol = (
- element.deserialize_int(symbol)
- if isinstance(symbol, str) else
- symbol
- )
+ self.symbol = symbol
def serialize(self, ref_list):
AST.Production.Item.serialize(self, ref_list)
self.set('symbol', element.serialize_int(self.symbol))
text,
children
)
- self.symbol = (
- element.deserialize_int(symbol)
- if isinstance(symbol, str) else
- symbol
- )
- self.has_space = (
- element.deserialize_bool(has_space)
- if isinstance(has_space, str) else
- has_space
- )
+ self.symbol = symbol
+ self.has_space = has_space
def serialize(self, ref_list):
AST.Production.Item.serialize(self, ref_list)
self.set('symbol', element.serialize_int(self.symbol))
text,
children
)
- self.lhs_nonterminal = (
- element.deserialize_int(lhs_nonterminal)
- if isinstance(lhs_nonterminal, str) else
- lhs_nonterminal
- )
- self.n_symbols = (
- element.deserialize_int(n_symbols)
- if isinstance(n_symbols, str) else
- n_symbols
- )
- self.last_terminal = (
- element.deserialize_int(last_terminal)
- if isinstance(last_terminal, str) else
- last_terminal
- )
- self.precedence_terminal = (
- element.deserialize_int(precedence_terminal)
- if isinstance(precedence_terminal, str) else
- precedence_terminal
- )
- self.has_empty = (
- element.deserialize_bool(has_empty)
- if isinstance(has_empty, str) else
- has_empty
- )
- self.has_space = (
- element.deserialize_bool(has_space)
- if isinstance(has_space, str) else
- has_space
- )
- self.take_space_right = (
- element.deserialize_bool(take_space_right)
- if isinstance(take_space_right, str) else
- take_space_right
- )
+ self.lhs_nonterminal = lhs_nonterminal
+ self.n_symbols = n_symbols
+ self.last_terminal = last_terminal
+ self.precedence_terminal = precedence_terminal
+ self.has_empty = has_empty
+ self.has_space = has_space
+ self.take_space_right = take_space_right
def serialize(self, ref_list):
element.Element.serialize(self, ref_list)
self.set('lhs_nonterminal', element.serialize_int(self.lhs_nonterminal))
text,
children
)
- self._type = (
- element.deserialize_int(_type)
- if isinstance(_type, str) else
- _type
- )
+ self._type = _type
def serialize(self, ref_list):
Item.serialize(self, ref_list)
self.set('_type', element.serialize_int(self._type))
text,
children
)
- self._type = (
- element.deserialize_int(_type)
- if isinstance(_type, str) else
- _type
- )
+ self._type = _type
def serialize(self, ref_list):
Item.serialize(self, ref_list)
self.set('_type', element.serialize_int(self._type))
text,
children
)
- self.value = (
- element.deserialize_int(value)
- if isinstance(value, str) else
- value
- )
+ self.value = value
def serialize(self, ref_list):
Item.serialize(self, ref_list)
self.set('value', element.serialize_int(self.value))
text,
children
)
- self.value = (
- element.deserialize_int(value)
- if isinstance(value, str) else
- value
- )
+ self.value = value
def serialize(self, ref_list):
Item.serialize(self, ref_list)
self.set('value', element.serialize_int(self.value))
)
self.type_prefix = type_prefix
self.name_prefix = name_prefix
- self.api_pure = (
- element.deserialize_int(api_pure)
- if isinstance(api_pure, str) else
- api_pure
- )
- self.locations = (
- element.deserialize_bool(locations)
- if isinstance(locations, str) else
- locations
- )
- self.error_verbose = (
- element.deserialize_bool(error_verbose)
- if isinstance(error_verbose, str) else
- error_verbose
- )
+ self.api_pure = api_pure
+ self.locations = locations
+ self.error_verbose = error_verbose
self.parse_lac = parse_lac
- self.debug = (
- element.deserialize_bool(debug)
- if isinstance(debug, str) else
- debug
- )
- self.defines = (
- element.deserialize_bool(defines)
- if isinstance(defines, str) else
- defines
- )
- self.expect = (
- element.deserialize_int(expect)
- if isinstance(expect, str) else
- expect
- )
- self.verbose = (
- element.deserialize_bool(verbose)
- if isinstance(verbose, str) else
- verbose
- )
+ self.debug = debug
+ self.defines = defines
+ self.expect = expect
+ self.verbose = verbose
def serialize(self, ref_list):
AST.Section1Or2.serialize(self, ref_list)
self.set('type_prefix', element.serialize_str(self.type_prefix))
text,
children
)
- self.user_token = (
- element.deserialize_int(user_token)
- if isinstance(user_token, str) else
- user_token
- )
+ self.user_token = user_token
def serialize(self, ref_list):
AST.TagOrSymbolRef.serialize(self, ref_list)
self.set('user_token', element.serialize_int(self.user_token))
text,
children
)
- self.character = (
- element.deserialize_int(character)
- if isinstance(character, str) else
- character
- )
+ self.character = character
def serialize(self, ref_list):
AST.Text.Item.serialize(self, ref_list)
self.set('character', element.serialize_int(self.character))
text,
children
)
- self.offset = (
- element.deserialize_int(offset)
- if isinstance(offset, str) else
- offset
- )
- self.index = (
- element.deserialize_int(index)
- if isinstance(index, str) else
- index
- )
+ self.offset = offset
+ self.index = index
def serialize(self, ref_list):
AST.Text.Item.serialize(self, ref_list)
self.set('offset', element.serialize_int(self.offset))
children
)
self.tag_name = tag_name
- self.offset = (
- element.deserialize_int(offset)
- if isinstance(offset, str) else
- offset
- )
- self.index = (
- element.deserialize_int(index)
- if isinstance(index, str) else
- index
- )
+ self.offset = offset
+ self.index = index
def serialize(self, ref_list):
AST.Text.Item.serialize(self, ref_list)
self.set('tag_name', element.serialize_str(self.tag_name))
self.initial_action_text = initial_action_text
self.tags = tags
self.symbols = symbols
- self.n_productions = (
- element.deserialize_int(n_productions)
- if isinstance(n_productions, str) else
- n_productions
- )
+ self.n_productions = n_productions
self.productions = productions
- self.first_nonterminal = (
- element.deserialize_int(first_nonterminal)
- if isinstance(first_nonterminal, str) else
- first_nonterminal
- )
- self.start_nonterminal = (
- element.deserialize_int(start_nonterminal)
- if isinstance(start_nonterminal, str) else
- start_nonterminal
- )
- self.associativities = (
- [element.deserialize_int(i) for i in associativities.split()]
- if isinstance(associativities, str) else
- associativities
- )
+ self.first_nonterminal = first_nonterminal
+ self.start_nonterminal = start_nonterminal
+ self.associativities = associativities
def serialize(self, ref_list):
element.Element.serialize(self, ref_list)
self.set(
#!/usr/bin/env python3
-# Copyright (C) 2018 Nick Downing <nick@ndcode.org>
-# SPDX-License-Identifier: GPL-2.0-only
-#
-# This program is free software; you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation; version 2.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-# details.
-#
-# You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 51
-# Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-
import re
import sys
{16:s} text,
{17:s} children{18:s}
{19:s} )
-'''.format(
+{20:s}'''.format(
indent,
params,
indent,
indent,
name
)
- for type, name in base_classes[-2][class_name][:i]
+ for _, name in base_classes[-2][class_name][:i]
]
),
- indent
+ indent,
+ ''.join(
+ [
+ '{0:s} self.{1:s} = {2:s}\n'.format(
+ indent,
+ name,
+ name
+ )
+ for _, name in fields
+ ]
+ )
)
)
- for type, name in fields:
- if type == 'ref' or type == 'list(ref)' or type == 'set(ref)' or type == 'str':
- sys.stdout.write(
- '''{0:s} self.{1:s} = {2:s}
-'''.format(indent, name, name)
- )
- elif type[:5] == 'list(' and type[-1:] == ')':
- subtype = type[5:-1]
- sys.stdout.write(
- '''{0:s} self.{1:s} = (
-{2:s} [element.deserialize_{3:s}(i) for i in {4:s}.split()]
-{5:s} if isinstance({6:s}, str) else
-{7:s} {8:s}
-{9:s} )
-'''.format(
- indent,
- name,
- indent,
- subtype,
- name,
- indent,
- name,
- indent,
- name,
- indent
- )
- )
- elif type[:4] == 'set(' and type[-1:] == ')':
- subtype = type[4:-1]
- sys.stdout.write(
- '''{0:s} self.{1:s} = (
-{2:s} set([element.deserialize_{3:s}(i) for i in {4:s}.split()])
-{5:s} if isinstance({6:s}, str) else
-{7:s} {8:s}
-{9:s} )
-'''.format(
- indent,
- name,
- indent,
- subtype,
- name,
- indent,
- name,
- indent,
- name,
- indent
- )
- )
- else:
- sys.stdout.write(
- '''{0:s} self.{1:s} = (
-{2:s} element.deserialize_{3:s}({4:s})
-{5:s} if isinstance({6:s}, str) else
-{7:s} {8:s}
-{9:s} )
-'''.format(
- indent,
- name,
- indent,
- type,
- name,
- indent,
- name,
- indent,
- name,
- indent
- )
- )
if len(fields):
sys.stdout.write(
'''{0:s}def serialize(self, ref_list):