public virtual object Visit (BlockConstantDeclaration blockConstantDeclaration) { return null; }
public override object Visit(BlockConstantDeclaration blockVariableDeclaration) { var result = new VariableDeclarationStatement (); var location = LocationsBag.GetLocations (blockVariableDeclaration); if (location != null && location.Count > 0) result.AddChild (new CSharpModifierToken (Convert (location [0]), ICSharpCode.NRefactory.CSharp.Modifiers.Const), VariableDeclarationStatement.ModifierRole); result.AddChild (ConvertToType (blockVariableDeclaration.TypeExpression), Roles.Type); var varInit = new VariableInitializer (); varInit.AddChild (Identifier.Create (blockVariableDeclaration.Variable.Name, Convert (blockVariableDeclaration.Variable.Location)), Roles.Identifier); if (blockVariableDeclaration.Initializer != null) { if (location != null && location.Count > 1) varInit.AddChild (new CSharpTokenNode (Convert (location [1]), Roles.Assign), Roles.Assign); varInit.AddChild ((Expression)blockVariableDeclaration.Initializer.Accept (this), Roles.Expression); } result.AddChild (varInit, Roles.Variable); if (blockVariableDeclaration.Declarators != null) { foreach (var decl in blockVariableDeclaration.Declarators) { var loc = LocationsBag.GetLocations (decl); var init = new VariableInitializer (); init.AddChild (Identifier.Create (decl.Variable.Name, Convert (decl.Variable.Location)), Roles.Identifier); if (decl.Initializer != null) { if (loc != null) init.AddChild (new CSharpTokenNode (Convert (loc [0]), Roles.Assign), Roles.Assign); init.AddChild ((Expression)decl.Initializer.Accept (this), Roles.Expression); if (loc != null && loc.Count > 1) result.AddChild (new CSharpTokenNode (Convert (loc [1]), Roles.Comma), Roles.Comma); } else { if (loc != null && loc.Count > 0) result.AddChild (new CSharpTokenNode (Convert (loc [0]), Roles.Comma), Roles.Comma); } result.AddChild (init, Roles.Variable); } } if (location != null) { result.AddChild (new CSharpTokenNode (Convert (location [location.Count - 1]), Roles.Semicolon), Roles.Semicolon); } else { // parser error, set end node to max value. result.AddChild (new ErrorNode (), Roles.Error); } return result; }
public override object Visit (BlockConstantDeclaration blockVariableDeclaration) { var result = new VariableDeclarationStatement (); result.AddChild ((AstNode)blockVariableDeclaration.TypeExpression.Accept (this), VariableDeclarationStatement.Roles.ReturnType); var varInit = new VariableInitializer (); var location = LocationsBag.GetLocations (blockVariableDeclaration); if (location != null) varInit.AddChild (new CSharpTokenNode (Convert (location[0]), "const".Length), VariableInitializer.Roles.Modifier); varInit.AddChild (new Identifier (blockVariableDeclaration.Variable.Name, Convert (blockVariableDeclaration.Variable.Location)), VariableInitializer.Roles.Identifier); if (blockVariableDeclaration.Initializer != null) { if (location != null) varInit.AddChild (new CSharpTokenNode (Convert (location[1]), 1), VariableInitializer.Roles.Assign); varInit.AddChild ((AstNode)blockVariableDeclaration.Initializer.Accept (this), VariableInitializer.Roles.Initializer); } result.AddChild (varInit, VariableDeclarationStatement.Roles.Initializer); if (blockVariableDeclaration.Declarators != null) { foreach (var decl in blockVariableDeclaration.Declarators) { var loc = LocationsBag.GetLocations (decl); var init = new VariableInitializer (); init.AddChild (new Identifier (decl.Variable.Name, Convert (decl.Variable.Location)), VariableInitializer.Roles.Identifier); if (decl.Initializer != null) { if (loc != null) init.AddChild (new CSharpTokenNode (Convert (loc[0]), 1), VariableInitializer.Roles.Assign); init.AddChild ((AstNode)decl.Initializer.Accept (this), VariableInitializer.Roles.Initializer); if (loc != null && loc.Count > 1) result.AddChild (new CSharpTokenNode (Convert (loc[1]), 1), VariableInitializer.Roles.Comma); } else { if (loc != null && loc.Count > 0) result.AddChild (new CSharpTokenNode (Convert (loc[0]), 1), VariableInitializer.Roles.Comma); } result.AddChild (init, VariableDeclarationStatement.Roles.Initializer); } } if (location != null) result.AddChild (new CSharpTokenNode (Convert (location[location.Count - 1]), 1), VariableDeclarationStatement.Roles.Semicolon); return result; }