Skip to content

"[Every language other than C#] doesn't have a List#concat method" #19

@tra38

Description

@tra38

To replicate:

>cat add_two_arrays.py

def add_two_arrays(arrayA, arrayB):
  return arrayA + arrayB

print(add_two_arrays([1,2,3], [4,5,6])) 

>pseudo-python add_two_arrays.py
OK
saved pseudo ast as add_two_arrays.pseudo.yaml

>pseudo add_two_arrays.pseudo.yaml go

Traceback (most recent call last):
  File "/usr/local/bin/pseudo", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.6/site-packages/pseudo/main.py", line 44, in main
    output_source = pseudo.generate_from_yaml(intermediate_code, format)
  File "/usr/local/lib/python3.6/site-packages/pseudo/__init__.py", line 97, in generate_from_yaml
    return pseudo.generate(pseudo.loader.as_tree(pseudo_ast), language)
  File "/usr/local/lib/python3.6/site-packages/pseudo/__init__.py", line 116, in generate
    translated_ast = API_TRANSLATORS[language](pseudo_ast).api_translate()
  File "/usr/local/lib/python3.6/site-packages/pseudo/api_translator.py", line 81, in api_translate
    transformed = self.transform(self.tree)
  File "/usr/local/lib/python3.6/site-packages/pseudo/tree_transformer.py", line 34, in transform
    tree = self.transform_default(tree)
  File "/usr/local/lib/python3.6/site-packages/pseudo/tree_transformer.py", line 54, in transform_default
    setattr(tree, field, self.transform(child))
  File "/usr/local/lib/python3.6/site-packages/pseudo/tree_transformer.py", line 41, in transform
    return [self.transform(child) for child in tree]
  File "/usr/local/lib/python3.6/site-packages/pseudo/tree_transformer.py", line 41, in <listcomp>
    return [self.transform(child) for child in tree]
  File "/usr/local/lib/python3.6/site-packages/pseudo/tree_transformer.py", line 34, in transform
    tree = self.transform_default(tree)
  File "/usr/local/lib/python3.6/site-packages/pseudo/tree_transformer.py", line 52, in transform_default
    setattr(tree, field, self.transform_block(child))
  File "/usr/local/lib/python3.6/site-packages/pseudo/tree_transformer.py", line 60, in transform_block
    result = self.transform(child, True)
  File "/usr/local/lib/python3.6/site-packages/pseudo/tree_transformer.py", line 34, in transform
    tree = self.transform_default(tree)
  File "/usr/local/lib/python3.6/site-packages/pseudo/tree_transformer.py", line 50, in transform_default
    setattr(tree, field, self.transform(child, False, tree if tree.type[-10:] == 'assignment' else None))
  File "/usr/local/lib/python3.6/site-packages/pseudo/tree_transformer.py", line 32, in transform
    tree = handler(tree, in_block, assignment)
  File "/usr/local/lib/python3.6/site-packages/pseudo/api_translator.py", line 148, in transform_standard_method_call
    '%s doesn\'t have a %s#%s method' % (type(self).__name__, l, node.message))
pseudo.errors.PseudoStandardLibraryError: GolangTranslator doesn't have a List#concat method

You get this same error for C++, Ruby, JS and Python. Only C# is able to handle List#concat properly, and I am able to generate human-readable C# code using pseudo.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions