CHARJ_SOURCE
package
tests
readonly
OBJECT_VAR_DECLARATION
PROXY_TYPE
QUALIFIED_TYPE_IDENT
Main
VAR_DECLARATOR_LIST
VAR_DECLARATOR
main
TYPE
mainchare
Main
PRIMITIVE_VAR_DECLARATION
SIMPLE_TYPE
int
VAR_DECLARATOR_LIST
VAR_DECLARATOR
n
OBJECT_VAR_DECLARATION
POINTER_TYPE
QUALIFIED_TYPE_IDENT
Fib
VAR_DECLARATOR_LIST
VAR_DECLARATOR
a
OBJECT_VAR_DECLARATION
POINTER_TYPE
QUALIFIED_TYPE_IDENT
Main
VAR_DECLARATOR_LIST
VAR_DECLARATOR
b
CONSTRUCTOR_DECL
MODIFIER_LIST
public
entry
Main
FORMAL_PARAM_LIST
FORMAL_PARAM_STD_DECL
POINTER_TYPE
QUALIFIED_TYPE_IDENT
CkArgMsg
m
BLOCK
if
PAREN_EXPR
EXPR
<
.
m
argc
2
BLOCK
EXPR
=
n
16
BLOCK
EXPR
=
n
METHOD_CALL
atoi
ARGUMENT_LIST
EXPR
ARRAY_ELEMENT_ACCESS
.
m
argv
EXPR
1
EXPR
=
main
thishandle
OBJECT_VAR_DECLARATION
PROXY_TYPE
QUALIFIED_TYPE_IDENT
Fib
VAR_DECLARATOR_LIST
VAR_DECLARATOR
fib
EXPR
new
PROXY_TYPE
QUALIFIED_TYPE_IDENT
Fib
ARGUMENT_LIST
EXPR
true
EXPR
n
EXPR
thishandle
FUNCTION_METHOD_DECL
MODIFIER_LIST
public
entry
void
done
FORMAL_PARAM_LIST
FORMAL_PARAM_STD_DECL
SIMPLE_TYPE
int
value
BLOCK
EXPR
METHOD_CALL
CkPrintf
ARGUMENT_LIST
EXPR
"Fib(%d) = %d\n"
EXPR
n
EXPR
value
EXPR
METHOD_CALL
CkExit
ARGUMENT_LIST
TYPE
chare
Fib
OBJECT_VAR_DECLARATION
PROXY_TYPE
QUALIFIED_TYPE_IDENT
Fib
VAR_DECLARATOR_LIST
VAR_DECLARATOR
parent
PRIMITIVE_VAR_DECLARATION
SIMPLE_TYPE
boolean
VAR_DECLARATOR_LIST
VAR_DECLARATOR
root
PRIMITIVE_VAR_DECLARATION
SIMPLE_TYPE
int
VAR_DECLARATOR_LIST
VAR_DECLARATOR
n
PRIMITIVE_VAR_DECLARATION
SIMPLE_TYPE
int
VAR_DECLARATOR_LIST
VAR_DECLARATOR
partialResult
PRIMITIVE_VAR_DECLARATION
SIMPLE_TYPE
int
VAR_DECLARATOR_LIST
VAR_DECLARATOR
pendingChildren
FUNCTION_METHOD_DECL
MODIFIER_LIST
private
SIMPLE_TYPE
int
seq_fib
FORMAL_PARAM_LIST
FORMAL_PARAM_STD_DECL
SIMPLE_TYPE
int
n
BLOCK
if
PAREN_EXPR
EXPR
<
n
2
BLOCK
return
EXPR
n
return
EXPR
+
METHOD_CALL
seq_fib
ARGUMENT_LIST
EXPR
-
n
1
METHOD_CALL
seq_fib
ARGUMENT_LIST
EXPR
-
n
2
CONSTRUCTOR_DECL
MODIFIER_LIST
public
entry
Fib
FORMAL_PARAM_LIST
FORMAL_PARAM_STD_DECL
SIMPLE_TYPE
boolean
root_
FORMAL_PARAM_STD_DECL
SIMPLE_TYPE
int
n_
FORMAL_PARAM_STD_DECL
PROXY_TYPE
QUALIFIED_TYPE_IDENT
Fib
parent_
BLOCK
EXPR
=
n
n_
EXPR
=
root
root_
EXPR
=
parent
parent_
if
PAREN_EXPR
EXPR
<=
n
10
BLOCK
EXPR
=
partialResult
METHOD_CALL
seq_fib
ARGUMENT_LIST
EXPR
n
EXPR
METHOD_CALL
passUp
ARGUMENT_LIST
BLOCK
OBJECT_VAR_DECLARATION
PROXY_TYPE
QUALIFIED_TYPE_IDENT
Fib
VAR_DECLARATOR_LIST
VAR_DECLARATOR
child1
EXPR
new
PROXY_TYPE
QUALIFIED_TYPE_IDENT
Fib
ARGUMENT_LIST
EXPR
false
EXPR
-
n
1
EXPR
thishandle
OBJECT_VAR_DECLARATION
PROXY_TYPE
QUALIFIED_TYPE_IDENT
Fib
VAR_DECLARATOR_LIST
VAR_DECLARATOR
child2
EXPR
new
PROXY_TYPE
QUALIFIED_TYPE_IDENT
Fib
ARGUMENT_LIST
EXPR
false
EXPR
-
n
2
EXPR
thishandle
EXPR
=
partialResult
0
EXPR
=
pendingChildren
2
FUNCTION_METHOD_DECL
MODIFIER_LIST
public
traced
entry
void
gather
FORMAL_PARAM_LIST
FORMAL_PARAM_STD_DECL
SIMPLE_TYPE
int
value
BLOCK
EXPR
+=
partialResult
value
if
PAREN_EXPR
EXPR
==
PRE_DEC
pendingChildren
0
BLOCK
EXPR
METHOD_CALL
passUp
ARGUMENT_LIST
FUNCTION_METHOD_DECL
MODIFIER_LIST
public
traced
void
passUp
FORMAL_PARAM_LIST
BLOCK
if
PAREN_EXPR
EXPR
root
BLOCK
EXPR
ENTRY_METHOD_CALL
@
main
done
ARGUMENT_LIST
EXPR
partialResult
BLOCK
EXPR
ENTRY_METHOD_CALL
@
parent
gather
ARGUMENT_LIST
EXPR
partialResult
delete
EXPR
this