public IKeyword Parse(ActionScriptReader acr) { InstanceName = acr.ReadString().Split(',')[1].Split('"')[1]; if (acr.PeekString().Contains("extends")) { Extends = acr.ReadString().Split(',')[1].Split('"')[1]; } // Skip everything until method traits // TODO: Implement loading all other information later DoCycle: while (!acr.PeekString().Contains("trait method") && !acr.PeekString().Contains("end ; instance")) { string xa; xa = acr.ReadString(); } if (acr.PeekString().Contains("end ; instance")) { return(this); } QName method = new QName(acr.ReadString()); MethodKeyword mk = new MethodKeyword(acr); Methods.Add(mk); goto DoCycle; }
public IKeyword Parse(ActionScriptReader acr) { acr.ReadString(); // skip "code" string // While there's still instructions to be read, continue reading while (!acr.PeekString().Contains("returnvoid") && !acr.PeekString().Contains("returnvalue")) { string instr = acr.ReadString(); if (!string.IsNullOrEmpty(instr)) { Instructions.Add(InstructionReader.ParseInstruction(instr)); } } return(this); }
public IKeyword Parse(ActionScriptReader acr) { ReferenceId = acr.ReadString(); if (acr.PeekString().Contains("instance")) { Instance = new InstanceKeyword(acr); } ClassInit = new ClassInitKeyword(acr); return(this); }
public IKeyword Parse(ActionScriptReader acr) { if (!acr.ReadString().Contains("method")) { return(null); } Name = acr.ReadString().Split('"')[1]; ReferenceId = acr.ReadString(); while (acr.PeekString().Contains("param")) { Parameters.Add(acr.ReadString().Split(new [] { "param " }, StringSplitOptions.None)[1]); } ReturnType = acr.ReadString().Split(new [] { "returns " }, StringSplitOptions.None)[1]; if (acr.PeekString().Contains("body")) { Body = new BodyKeyword(acr); } return(this); }
public IKeyword Parse(ActionScriptReader acr) { acr.ReadString(); // skip "body" string string ms = acr.ReadString(); MaxStack = Convert.ToInt32(ms.Split(' ')[ms.Count(a => a == ' ')]); string lc = acr.ReadString(); LocalCount = Convert.ToInt32(lc.Split(' ')[lc.Count(a => a == ' ')]); string isd = acr.ReadString(); InitScopeDepth = Convert.ToInt32(isd.Split(' ')[isd.Count(a => a == ' ')]); string msd = acr.ReadString(); MaxScopeDepth = Convert.ToInt32(msd.Split(' ')[msd.Count(a => a == ' ')]); if (acr.PeekString().Contains("code")) { Code = new CodeKeyword(acr); } return(this); }