2 // VariableStatement.cs: The AST representation of a VariableStatement.
5 // Cesar Octavio Lopez Nataren
7 // (C) 2003, Cesar Octavio Lopez Nataren, <cesar@ciencias.unam.mx>
10 using System.Collections;
14 namespace Microsoft.JScript {
16 public class VariableStatement : AST {
18 internal ArrayList var_decls;
20 internal VariableStatement ()
22 var_decls = new ArrayList ();
26 internal void Add (VariableDeclaration varDecl)
28 var_decls.Add (varDecl);
32 public override string ToString ()
34 StringBuilder sb = new StringBuilder ();
36 foreach (VariableDeclaration var_decl in var_decls)
37 sb.Append (var_decl.ToString () + " ");
39 return sb.ToString ();
42 internal override void Emit (EmitContext ec)
44 int i, size = var_decls.Count;
46 for (i = 0; i < size; i++)
47 ((VariableDeclaration) var_decls [i]).Emit (ec);
50 internal override bool Resolve (IdentificationTable context)
52 VariableDeclaration tmp_decl;
53 int i, size = var_decls.Count;
57 for (i = 0; i < size; i++) {
58 tmp_decl = (VariableDeclaration) var_decls [i];
59 init_val = tmp_decl.InitValue;
62 res = init_val.Resolve (context);
65 context.Enter (tmp_decl.Id, tmp_decl);