Skip to content

Instantly share code, notes, and snippets.

@m3hrdadfi
Created February 23, 2024 14:37
Show Gist options
  • Save m3hrdadfi/cb980a500c1d14ae70c4df963a17cfde to your computer and use it in GitHub Desktop.
Save m3hrdadfi/cb980a500c1d14ae70c4df963a17cfde to your computer and use it in GitHub Desktop.
Path of AST
public class Fibonacci {
public static long fib(int n) {
if (n <= 1) return n;
else return fib(n-1) + fib(n-2);
}
public static void main(String[] args) {
int N = Integer.parseInt(args[0]);
for (int i = 1; i <= N; i++)
System.out.println(i + ": " + fib(i));
}
}
['CompilationUnit', 'ClassDeclaration', 'Modifier', 'public', 'Fibonacci', 'MethodDeclaration', 'Modifier', 'static', 'public', 'BasicType', 'long', 'fib', 'FormalParameter', 'BasicType', 'int', 'n', 'IfStatement', 'BinaryOperation', '<=', 'MemberReference', 'n', 'Literal', '1', 'ReturnStatement', 'MemberReference', 'n', 'ReturnStatement', 'BinaryOperation', '+', 'MethodInvocation', 'BinaryOperation', '-', 'MemberReference', 'n', 'Literal', '1', 'fib', 'MethodInvocation', 'BinaryOperation', '-', 'MemberReference', 'n', 'Literal', '2', 'fib', 'End', 'MethodDeclaration', 'Modifier', 'static', 'public', 'main', 'FormalParameter', 'ReferenceType', 'String', 'args', 'LocalVariableDeclaration', 'BasicType', 'int', 'VariableDeclarator', 'N', 'MethodInvocation', 'Integer', 'MemberReference', 'ArraySelector', 'Literal', '0', 'args', 'parseInt', 'ForStatement', 'ForControl', 'VariableDeclaration', 'BasicType', 'int', 'VariableDeclarator', 'i', 'Literal', '1', 'BinaryOperation', '<=', 'MemberReference', 'i', 'MemberReference', 'N', 'MemberReference', '++', 'i', 'StatementExpression', 'MethodInvocation', 'System.out', 'BinaryOperation', '+', 'BinaryOperation', '+', 'MemberReference', 'i', 'Literal', '": "', 'MethodInvocation', 'MemberReference', 'i', 'fib', 'println', 'End']
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment