mirror of
https://github.com/twiglet/cs2j.git
synced 2025-01-18 13:15:17 +01:00
emit braces for method bodies when appropriate
This commit is contained in:
parent
afef118a11
commit
81c3d13cf2
@ -145,7 +145,7 @@ class_member_declaration:
|
|||||||
^(CONST attributes? modifiers? type constant_declarators)
|
^(CONST attributes? modifiers? type constant_declarators)
|
||||||
| ^(EVENT attributes? modifiers? event_declaration)
|
| ^(EVENT attributes? modifiers? event_declaration)
|
||||||
| ^(METHOD attributes? modifiers? type member_name type_parameter_constraints_clauses? type_parameter_list[$type_parameter_constraints_clauses.tpConstraints]? formal_parameter_list? method_body)
|
| ^(METHOD attributes? modifiers? type member_name type_parameter_constraints_clauses? type_parameter_list[$type_parameter_constraints_clauses.tpConstraints]? formal_parameter_list? method_body)
|
||||||
-> method(modifiers={$modifiers.st}, type={$type.st}, name={ $member_name.st }, typeparams = { $type_parameter_list.st }, params={ $formal_parameter_list.st }, body={ $method_body.st })
|
-> method(modifiers={$modifiers.st}, type={$type.st}, name={ $member_name.st }, typeparams = { $type_parameter_list.st }, params={ $formal_parameter_list.st }, bodyIsSemi = { $method_body.isSemi }, body={ $method_body.st })
|
||||||
// | ^(METHOD attributes? modifiers? type method_declaration) -> method(modifiers={$modifiers.st}, type={$type.st}, method={$method_declaration.st})
|
// | ^(METHOD attributes? modifiers? type method_declaration) -> method(modifiers={$modifiers.st}, type={$type.st}, method={$method_declaration.st})
|
||||||
| ^(INTERFACE attributes? modifiers? interface_declaration[$modifiers.st])
|
| ^(INTERFACE attributes? modifiers? interface_declaration[$modifiers.st])
|
||||||
| ^(CLASS attributes? modifiers? class_declaration[$modifiers.st])
|
| ^(CLASS attributes? modifiers? class_declaration[$modifiers.st])
|
||||||
@ -467,9 +467,13 @@ pointer_type:
|
|||||||
///////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////
|
||||||
// Statement Section
|
// Statement Section
|
||||||
///////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////
|
||||||
block:
|
block returns [bool isSemi]
|
||||||
';'
|
@init {
|
||||||
| '{' statement_list? '}';
|
$isSemi = false;
|
||||||
|
}:
|
||||||
|
';' { $isSemi = true; } ->
|
||||||
|
| '{' s+=statement* '}' -> statement_list(statements = { $s });
|
||||||
|
|
||||||
statement_list:
|
statement_list:
|
||||||
statement+ ;
|
statement+ ;
|
||||||
|
|
||||||
@ -722,8 +726,8 @@ variable_declarator:
|
|||||||
//method_header:
|
//method_header:
|
||||||
// ^(METHOD_HEADER member_name type_parameter_constraints_clauses? type_parameter_list[$type_parameter_constraints_clauses.tpConstraints]? formal_parameter_list?)
|
// ^(METHOD_HEADER member_name type_parameter_constraints_clauses? type_parameter_list[$type_parameter_constraints_clauses.tpConstraints]? formal_parameter_list?)
|
||||||
// -> method_header(name={ $member_name.st }, typeparams = { $type_parameter_list.st }, params={ $formal_parameter_list.st });
|
// -> method_header(name={ $member_name.st }, typeparams = { $type_parameter_list.st }, params={ $formal_parameter_list.st });
|
||||||
method_body:
|
method_body returns [bool isSemi]:
|
||||||
block -> { $block.st };
|
block { $isSemi = $block.isSemi; } -> { $block.st };
|
||||||
member_name:
|
member_name:
|
||||||
t+=type_or_generic ('.' t+=type_or_generic)* -> dotlist(items = { $t })
|
t+=type_or_generic ('.' t+=type_or_generic)* -> dotlist(items = { $t })
|
||||||
;
|
;
|
||||||
|
@ -53,10 +53,10 @@ class_member(comments, member) ::= <<
|
|||||||
<member>
|
<member>
|
||||||
>>
|
>>
|
||||||
|
|
||||||
method(modifiers, typeparams, type, name, params, exception="Throwable", body) ::= <<
|
method(modifiers, typeparams, type, name, params, exception="Throwable", bodyIsSemi, body) ::= <<
|
||||||
<modifiers(modifiers)><typeparams> <type> <name>(<params; separator=", ">) throws <exception><if(body)> {<else>;<endif>
|
<modifiers(modifiers)><typeparams> <type> <name>(<params; separator=", ">) throws <exception><if(!bodyIsSemi)> {<else>;<endif>
|
||||||
<body>
|
<body>
|
||||||
<if(body)>}<endif>
|
<if(!bodyIsSemi)>}<endif>
|
||||||
>>
|
>>
|
||||||
|
|
||||||
field(modifiers, type, field, comments, init) ::= "<comments><modifiers(modifiers)><type> <field>;"
|
field(modifiers, type, field, comments, init) ::= "<comments><modifiers(modifiers)><type> <field>;"
|
||||||
@ -74,6 +74,10 @@ fixed_parameter(mod,type,name,def) ::= <<
|
|||||||
|
|
||||||
identifier(id, id2) ::= "<id><if(id2)>::<id2><endif>"
|
identifier(id, id2) ::= "<id><if(id2)>::<id2><endif>"
|
||||||
|
|
||||||
|
statement_list(statements) ::= <<
|
||||||
|
<statements; separator="\n">
|
||||||
|
>>
|
||||||
|
|
||||||
// ******* ENUMS ***********
|
// ******* ENUMS ***********
|
||||||
|
|
||||||
enum(modifiers,comments, attributes, name, body) ::= <<
|
enum(modifiers,comments, attributes, name, body) ::= <<
|
||||||
|
Loading…
x
Reference in New Issue
Block a user