Maps reserved Java keywords to Python built-in function/method call
BPYap opened this issue · comments
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.
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