mirror of
https://github.com/twiglet/cs2j.git
synced 2025-01-18 13:15:17 +01:00
retire parentIsSetter
This commit is contained in:
parent
245ca22844
commit
7b8e66413f
@ -261,8 +261,7 @@ scope {
|
|||||||
|
|
||||||
// Is it a property read? Ensure we are not being applied to arguments or about to be assigned
|
// Is it a property read? Ensure we are not being applied to arguments or about to be assigned
|
||||||
if (expType != null &&
|
if (expType != null &&
|
||||||
($primary_expression.Count == 1 || !((primary_expression_scope)($primary_expression.ToArray()[1])).parentIsApply) &&
|
($primary_expression.Count == 1 || !((primary_expression_scope)($primary_expression.ToArray()[1])).parentIsApply)) {
|
||||||
($assignment.Count == 0 || !$assignment::parentIsSetter)) {
|
|
||||||
|
|
||||||
Debug($d1.token.Line + ": '" + $i1.thetext + "' might be a property");
|
Debug($d1.token.Line + ": '" + $i1.thetext + "' might be a property");
|
||||||
|
|
||||||
@ -312,8 +311,7 @@ scope {
|
|||||||
|
|
||||||
// Is it a property read? Ensure we are not being applied to arguments or about to be assigned
|
// Is it a property read? Ensure we are not being applied to arguments or about to be assigned
|
||||||
if (thisType != null &&
|
if (thisType != null &&
|
||||||
($primary_expression.Count == 1 || !((primary_expression_scope)($primary_expression.ToArray()[1])).parentIsApply) &&
|
($primary_expression.Count == 1 || !((primary_expression_scope)($primary_expression.ToArray()[1])).parentIsApply)) {
|
||||||
($assignment.Count == 0 || !$assignment::parentIsSetter)) {
|
|
||||||
|
|
||||||
Debug($identifier.tree.Token.Line + ": '" + $identifier.thetext + "' might be a property");
|
Debug($identifier.tree.Token.Line + ": '" + $identifier.thetext + "' might be a property");
|
||||||
ResolveResult fieldResult = thisType.Resolve($identifier.thetext, AppEnv);
|
ResolveResult fieldResult = thisType.Resolve($identifier.thetext, AppEnv);
|
||||||
@ -625,12 +623,9 @@ expression returns [TypeRepTemplate dotNetType]:
|
|||||||
;
|
;
|
||||||
expression_list:
|
expression_list:
|
||||||
expression (',' expression)* ;
|
expression (',' expression)* ;
|
||||||
|
|
||||||
assignment
|
assignment
|
||||||
scope {
|
|
||||||
bool parentIsSetter;
|
|
||||||
}
|
|
||||||
@init {
|
@init {
|
||||||
$assignment::parentIsSetter = true;
|
|
||||||
CommonTree ret = null;
|
CommonTree ret = null;
|
||||||
bool isThis = false;
|
bool isThis = false;
|
||||||
}
|
}
|
||||||
@ -639,7 +634,7 @@ scope {
|
|||||||
$assignment.tree = ret;
|
$assignment.tree = ret;
|
||||||
}:
|
}:
|
||||||
((^('.' expression identifier generic_argument_list?) | identifier) '=') =>
|
((^('.' expression identifier generic_argument_list?) | identifier) '=') =>
|
||||||
(^('.' se=expression i=identifier generic_argument_list?) | i=identifier { isThis = true;}) a='=' {$assignment::parentIsSetter = false; } rhs=expression
|
(^('.' se=expression i=identifier generic_argument_list?) | i=identifier { isThis = true;}) a='=' rhs=expression
|
||||||
{
|
{
|
||||||
InterfaceRepTemplate seType = (isThis ? SymTabLookup("this") : $se.dotNetType) as InterfaceRepTemplate;
|
InterfaceRepTemplate seType = (isThis ? SymTabLookup("this") : $se.dotNetType) as InterfaceRepTemplate;
|
||||||
if (seType != null) {
|
if (seType != null) {
|
||||||
@ -655,7 +650,7 @@ scope {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
| unary_expression assignment_operator {$assignment::parentIsSetter = false; } expression ;
|
| unary_expression assignment_operator expression ;
|
||||||
|
|
||||||
|
|
||||||
unary_expression returns [TypeRepTemplate dotNetType]:
|
unary_expression returns [TypeRepTemplate dotNetType]:
|
||||||
@ -1203,7 +1198,7 @@ scope SymTab;
|
|||||||
^('while' boolean_expression SEP embedded_statement)
|
^('while' boolean_expression SEP embedded_statement)
|
||||||
| do_statement
|
| do_statement
|
||||||
| ^('for' for_initializer? SEP for_condition? SEP for_iterator? SEP embedded_statement)
|
| ^('for' for_initializer? SEP for_condition? SEP for_iterator? SEP embedded_statement)
|
||||||
| ^('foreach' local_variable_type identifier { $SymTab::symtab[$identifier.thetext] = $local_variable_type.dotNetType; } expression SEP embedded_statement);
|
| ^('foreach' local_variable_type identifier expression SEP { $SymTab::symtab[$identifier.thetext] = $local_variable_type.dotNetType; } embedded_statement);
|
||||||
do_statement:
|
do_statement:
|
||||||
'do' embedded_statement 'while' '(' boolean_expression ')' ';' ;
|
'do' embedded_statement 'while' '(' boolean_expression ')' ';' ;
|
||||||
for_initializer:
|
for_initializer:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user