Inheritance: BlockVariableDeclaration
Ejemplo n.º 1
0
		public virtual object Visit (BlockConstantDeclaration blockConstantDeclaration)
		{
			return null;
		}
Ejemplo n.º 2
0
            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;
            }
Ejemplo n.º 3
0
			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;
			}