96 lines
1.8 KiB
Plaintext
96 lines
1.8 KiB
Plaintext
====================================================
|
|
if statement
|
|
====================================================
|
|
|
|
func main() {
|
|
if true {
|
|
false
|
|
};
|
|
}
|
|
|
|
----------------------------------------------------
|
|
|
|
(source_file
|
|
(function_definition
|
|
name: (identifier)
|
|
parameters: (parameters)
|
|
body: (block
|
|
(if_statement
|
|
condition: (boolean_literal)
|
|
body: (block
|
|
(boolean_literal))))))
|
|
|
|
====================================================
|
|
if else expression
|
|
====================================================
|
|
|
|
func main() {
|
|
return if true {
|
|
false
|
|
} else {
|
|
true
|
|
};
|
|
}
|
|
|
|
----------------------------------------------------
|
|
|
|
(source_file
|
|
(function_definition
|
|
name: (identifier)
|
|
parameters: (parameters)
|
|
body: (block
|
|
(return_statement
|
|
(if_expression
|
|
condition: (boolean_literal)
|
|
body: (block
|
|
(boolean_literal))
|
|
else: (block
|
|
(boolean_literal)))))))
|
|
|
|
====================================================
|
|
if else expression (no brackets in else)
|
|
====================================================
|
|
|
|
func main() {
|
|
return if true {
|
|
false
|
|
} else true;
|
|
}
|
|
|
|
----------------------------------------------------
|
|
|
|
(source_file
|
|
(function_definition
|
|
name: (identifier)
|
|
parameters: (parameters)
|
|
body: (block
|
|
(return_statement
|
|
(if_expression
|
|
condition: (boolean_literal)
|
|
body: (block
|
|
(boolean_literal))
|
|
else: (boolean_literal))))))
|
|
|
|
====================================================
|
|
[Error] if expression (missing else)
|
|
====================================================
|
|
|
|
func main() {
|
|
return if true {
|
|
false
|
|
};
|
|
}
|
|
|
|
----------------------------------------------------
|
|
|
|
(source_file
|
|
(function_definition
|
|
name: (identifier)
|
|
parameters: (parameters)
|
|
body: (block
|
|
(return_statement
|
|
(ERROR
|
|
(boolean_literal)
|
|
(block
|
|
(boolean_literal)))))))
|