{
+
/// <summary>
/// Current block is used to add statements as we find
/// them.
} else
break;
- if ((mod_flags & (Modifiers.PRIVATE|Modifiers.PROTECTED)) != 0){
+ if ((mod_flags & (Modifiers.PRIVATE)) != 0){
+ Report.Error (
+ 31089, lexer.Location,
+ "Namespace elements cannot be explicitly " +
+ "declared private in '" + name + "'");
+ }
+ else if ((mod_flags & (Modifiers.PROTECTED)) != 0){
Report.Error (
- 1527, lexer.Location,
+ 31047, lexer.Location,
"Namespace elements cannot be explicitly " +
- "declared private or protected in '" + name + "'");
+ "declared protected in '" + name + "'");
}
}
;
;
class_declaration
- : CLASS identifier logical_end_of_line opt_inherits opt_implements
+ : CLASS identifier end_of_stmt opt_inherits opt_implements
{
// Module members are static by default, but Class *can't* be declared static
// so we must fix it, if mbas was the one actually responsible for this
opt_inherits
: /* empty */ { $$ = null; }
- | INHERITS type_list logical_end_of_line { $$ = $2; }
+ | INHERITS type_list end_of_stmt { $$ = $2; }
;
opt_implements
: /* empty */ { $$ = null; }
- | IMPLEMENTS type_list logical_end_of_line { $$ = $2; }
+ | IMPLEMENTS type_list end_of_stmt { $$ = $2; }
;
opt_modifiers
;
constant_declaration
- : CONST constant_declarators logical_end_of_line
+ : CONST constant_declarators end_of_stmt
{
// Module members are static by default, but constants *can't* be declared static
// so we must fix it, if mbas was the one actually responsible for this
evt_target + " is not declared with WithEvents");
}
} else if (handles_exp is BaseAccess) {
- string evt_id = ((BaseAccess) $4).member;
Statement addhnd = (Statement) new AddHandler ((Expression) $4,
DecomposeQI((string) $2, loc),
loc);
;
struct_declaration
- : STRUCTURE identifier logical_end_of_line
+ : STRUCTURE identifier end_of_stmt
opt_implement_clause
{
Struct new_struct;
non_abstract_propery_declaration
: PROPERTY identifier opt_type_character opt_property_parameters opt_type_with_ranks opt_implement_clause logical_end_of_line
{
+ if ((current_modifiers & Modifiers.DEFAULT) > 0) {
+ if (current_container.DefaultPropName != null
+ && current_container.DefaultPropName != (string) $2)
+ Report.Error (30359,
+ lexer.Location,
+ "Type '" + current_container.Name +
+ "' cannot have more than one 'Default Property' ");
+
+ current_container.DefaultPropName = (string) $2;
+ }
+
get_implicit_value_parameter_type =
($5 == null) ? (($3 == null) ?
TypeManager.system_object_expr : (Expression) $3 ) : (Expression) $5;
field_declaration
: opt_dim_stmt
- variable_declarators logical_end_of_line
+ variable_declarators end_of_stmt
{
int mod = (int) current_modifiers;
}
| embedded_statement
{
- Statement s = (Statement) $1;
-
current_block.AddStatement ((Statement) $1);
}
| labeled_statement
/* | empty_statement */
| with_statement
{
- Statement s = (Statement) $1;
-
current_block.AddStatement ((Statement) $1);
}
;
pre_embedded_statement
: embedded_statement
{
- Statement s = (Statement) $1;
-
current_block.AddStatement ((Statement) $1);
}
;
tmp_blocks.Push(bl);
start_block();
- Statement s = (Statement) $2;
current_block.AddStatement ((Statement) $2);
}
;
string varname = (string) vname.Name;
current_rank_specifiers = (ArrayList) vname.Rank;
object varinit = $3;
- ArrayList a_dims = null;
if (varinit == null)
Report.Error (
}
| prefixed_unary_expression OP_EXP ASSIGN expression
{
- Location l = lexer.Location;
+ /*Location l = lexer.Location;
- /* TODO: $$ = new CompoundAssign (
+ TODO: $$ = new CompoundAssign (
Binary.Operator.ExclusiveOr, (Expression) $1, (Expression) $4, l); */
}
| prefixed_unary_expression ASSIGN ADDRESSOF expression
{
if(tokenizerController.IsAcceptingTokens)
{
- string id = ($2 as string);
-
if(!($2 as string).ToLower().Equals("region"))
Report.Error (30205, lexer.Location, "Invalid Pre-processor directive");
else
public static void FixupArrayTypes (ArrayList vars)
{
- int varcount = vars.Count;
string dims;
foreach (VariableDeclaration var in vars) {
private void AddHandler (Block b, Expression evt_id, Expression handles_exp)
{
- Expression evt_target;
Location loc = lexer.Location;
Statement addhnd = (Statement) new AddHandler (evt_id,
handles_exp,
loc);
-
b.AddStatement (addhnd);
}
private void RemoveHandler (Block b, Expression evt_definition, Expression handler_exp)
{
- Expression evt_target;
Location loc = lexer.Location;
Statement rmhnd = (Statement) new RemoveHandler (evt_definition,
ifElseStateMachine = new IfElseStateMachine();
tokenizerController = new TokenizerController(lexer);
- StringBuilder value = new StringBuilder ();
try {
if (yacc_verbose_flag > 0)
yyparse (lexer, new yydebug.yyDebugSimple ());