public override string Do(Statement Statement) { if (Statement is StmAtr) { StmAtr stmAtr = Statement as StmAtr; if (stmAtr.Owner != null) { throw new ErrorCode("level", -1, "Invalid attribute owner: " + stmAtr.Owner); } string attr = stmAtr.Attribute; if (string.Compare(attr, "OBJ_CNT", true) == 0) { return("" + generator.Foundation.Level.Count); } else if (string.Compare(attr, "DEF_CNT", true) == 0) { return("" + generator.Foundation.Dictionary.Count); } else { throw new ErrorCode("level", -1, "Invalid attribute name: " + stmAtr.Attribute); } } else { return(base.Do(Statement)); } }
public override string Do(Statement Statement) { if (Statement is StmAtr) { StmAtr stmAtr = Statement as StmAtr; if (stmAtr.Owner != null && !"DEF".Equals(stmAtr.Owner.ToUpper()) && !"OBJ".Equals(stmAtr.Owner.ToUpper())) { throw new ErrorCode(obj.ToStringVerbose(), -1, "Invalid attribute owner: " + stmAtr.Owner); } string attr = stmAtr.Attribute; if (stmAtr.Owner != null && "DEF".Equals(stmAtr.Owner.ToUpper())) { StmAtr defAtr = new StmAtr(0, attr); ContextDef defContext = new ContextDef(generator, obj.GetDefinition()); Parser defParser = new Parser(generator); defParser.SetSingleStatement(defAtr, obj.GetDefinition().ToStringVerbose()); defContext.SetParser(defParser); defContext.Parent = this; generator.Stack.Add(defContext); return(null); } if (string.Compare(attr, "ID", true) == 0) { return("" + obj.Id); } else if (string.Compare(attr, "X", true) == 0) { return("" + obj.Position.X); } else if (string.Compare(attr, "Y", true) == 0) { return("" + obj.Position.Y); } else if (string.Compare(attr, "CODE", true) == 0) { ContextObj contextObj = new ContextObj(generator, obj); contextObj.SetParser(generator.GetParsed(obj.GetCode())); contextObj.Parent = this; generator.Stack.Add(contextObj); return(null); } else { throw new ErrorCode(obj.ToStringVerbose(), -1, "Invalid attribute name: " + stmAtr.Attribute); } } else { return(base.Do(Statement)); } }
public override string Do(Statement Statement) { if (Statement is StmAtr) { StmAtr stmAtr = Statement as StmAtr; if (stmAtr.Owner != null && !"DEF".Equals(stmAtr.Owner.ToUpper())) { throw new ErrorCode(def.ToStringVerbose(), -1, "Invalid attribute owner: " + stmAtr.Owner); } string attr = stmAtr.Attribute; if (string.Compare(attr, "ID", true) == 0) { return("" + def.Id); } else if (string.Compare(attr, "NAME", true) == 0) { return(def.Name); } else if (string.Compare(attr, "IMG_PATH", true) == 0) { return(Path.GetDirectoryName(def.ImagePath)); } else if (string.Compare(attr, "IMG_NAME", true) == 0) { return(Path.GetFileName(def.ImagePath)); } else if (string.Compare(attr, "OBJ_CNT", true) == 0) { return("" + generator.Foundation.GetObjsOf(def).Count); } else if (string.Compare(attr, "CODE", true) == 0) { ContextDef contextDef = new ContextDef(generator, def); contextDef.SetParser(generator.GetParsed(def.GetCode())); contextDef.Parent = this; generator.Stack.Add(contextDef); return(null); } else if (string.Compare(attr, "AUTO_CODE", true) == 0) { ContextDef contextDef = new ContextDef(generator, def); contextDef.SetParser(generator.GetParsed(def.GetCodeObjAuto())); contextDef.Parent = this; generator.Stack.Add(contextDef); return(null); } else { throw new ErrorCode(def.ToStringVerbose(), -1, "Invalid attribute name: " + stmAtr.Attribute); } } else { return(base.Do(Statement)); } }