diff options
-rwxr-xr-x | src/Specific/Framework/make_curve.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/Specific/Framework/make_curve.py b/src/Specific/Framework/make_curve.py index 9bd260d4e..70b88069d 100755 --- a/src/Specific/Framework/make_curve.py +++ b/src/Specific/Framework/make_curve.py @@ -18,7 +18,7 @@ def compute_c(modulus_str): rest = negate_numexpr(rest.strip()[1:]) ret = [] for part in re.findall(r'(-?[0-9\^\*]+)', rest.replace(' ', '')): - if part.isdigit(): + if part.isdigit() or (part[:1] == '-' and part[1:].isdigit()): ret.append(('1', part)) elif part[:2] == '2^' and part[2:].isdigit(): ret.append((part, '1')) @@ -175,6 +175,11 @@ def nested_list_to_string(v): print('ERROR: Invalid type in nested_list_to_string: %s' % str(type(v))) assert(False) +def as_bool(v): + if isinstance(v, str) or isinstance(v, unicode): return {'true':True, 'false':False}[v] + if isinstance(v, bool): return v + raise Exception('Not a bool: %s' % repr(v)) + def make_curve_parameters(parameters): def fix_option(term, scope_string=''): if not isinstance(term, str) and not isinstance(term, unicode): @@ -470,7 +475,7 @@ def main(*args): outputs['CurveParameters.v'] = make_curve_parameters(parameters) outputs['Synthesis.v'] = make_synthesis(output_prefix) for arg in parameters['operations']: - outputs[arg + '.v'] = make_synthesized_arg(arg, output_prefix, montgomery=(parameters.get('montgomery', 'false') == 'true')) + outputs[arg + '.v'] = make_synthesized_arg(arg, output_prefix, montgomery=as_bool(parameters.get('montgomery', 'false'))) outputs[arg + 'Display.v'] = make_display_arg(arg, output_prefix) for fname in parameters.get('extra_files', []): outputs[os.path.basename(fname)] = open(os.path.join(parameters_folder, fname), 'r').read() |