javalang
javalang copied to clipboard
How to get method information in one line code snippet
I want to get method information(modifier, method name, parameter...) from a one-line code snippet, like:
tokens = javalang.tokenizer.tokenize('private Member getAccessible(Member original){}')
parser = javalang.parser.Parser(tokens)
parser.parse_method_or_field_declaraction()
while it keeps throwing JavaSyntaxError
Traceback (most recent call last):
File "/Users/giaogiaowu/cs_related/code/pycode/analysis_jar/utils.py", line 114, in <module>
parser.parse_method_or_field_declaraction()
File "/Users/giaogiaowu/opt/anaconda3/lib/python3.8/site-packages/javalang/parser.py", line 836, in parse_method_or_field_declaraction
member_type = self.parse_type()
File "/Users/giaogiaowu/opt/anaconda3/lib/python3.8/site-packages/javalang/parser.py", line 468, in parse_type
self.illegal("Expected type")
File "/Users/giaogiaowu/opt/anaconda3/lib/python3.8/site-packages/javalang/parser.py", line 119, in illegal
raise JavaSyntaxError(description, at)
javalang.parser.JavaSyntaxError
Then I saw the implementation of parser.parse_method_or_field_declaraction(), it doesn't look like something I want. So which API or what kind of input should I choose to get certain information. Thanks!XD
@c2nes
Hey, bro, did you solve the problem? I also need to parse the Java snippet.
I have made several attempts, but all of them failed, I finally parsed the whole .java file.