Skip to content
This repository has been archived by the owner on May 31, 2020. It is now read-only.

Maps reserved Java keywords to Python built-in function/method call #827

Closed
BPYap opened this issue Jun 1, 2018 · 1 comment
Closed

Comments

@BPYap
Copy link
Contributor

BPYap commented Jun 1, 2018

Some built-in methods in Python has names that conflict with reserved keyword in Java. One example is Python's generator throw method vs Java's throw syntax.

The current approach is by renaming the method to something else in Java implementation and adding checks to convert the name during Attribute node traversal in ast.py. In the case of generator throw method, the check below is added in visit_Attribute:

if node.attr == "throw":
    node.attr = "throw_"  # refer org.python.types.Generator._throw

The throw will be converted to throw_ method name defined in Generator.java during transpilation.

As you can see, it is not very 'scalable', plus it lacks mechanism to standardize naming convention for converted name.

I spoken with @freakboy3742 just now and he suggested to have a dictionary to store mappings of reserved Java syntax to standardized Python's call name so that the transpiler can refer to it during transpilation.

@BPYap
Copy link
Contributor Author

BPYap commented Jul 13, 2018

Closing this. This can be achieved by defining name field in @org.python.Method decorator.
See https://voc.readthedocs.io/en/latest/reference/signatures.html

@BPYap BPYap closed this as completed Jul 13, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant