void VarDec(VariableDeclarationSequence vars)
{
Expect(16);
int sl = t.line;
int sc = t.col;
int el = la.line;
int ec = la.col+la.val.Length;
Expect(1);
if (SymbolTable.IsDeclaredInCurrentScope(t.val)) {
errors.SemErr(t.line, t.col, string.Format("Variable '{0}' is already declared in this scope", t.val));
} else if (SymbolTable.IsInScope(t.val)) {
errors.Warning(t.line, t.col, string.Format("Variable '{0}' hides variable with same name in outer block",t.val));
SymbolTable.DefineVariable(t.val);
} else {
SymbolTable.DefineVariable(t.val);
}
VariableDeclaration vd = new VariableDeclaration(new Variable(t.val));
vd.AddSequencePoint(sl,sc,el,ec);
vars.AddVariableDeclaration(vd);
Expect(11);
}