示例#1
0
 public static void Reset()
 {
     Process = null;
     ConstantData = null;
     GameBaseData = null;
     EMediator = null;
     VEvaluator = null;
     VariableData = null;
     Console = null;
     MainWindow = null;
     LabelDictionary = null;
     IdentifierDictionary = null;
     tempDic.Clear();
 }
示例#2
0
 public void Initialize()
 {
     GlobalStatic.Console = this;
     GlobalStatic.MainWindow = window;
     emuera = new GameProc.Process(this);
     GlobalStatic.Process = emuera;
     if (Program.DebugMode && Config.DebugShowWindow)
     {
         OpenDebugDialog();
         window.Focus();
     }
     ClearDisplay();
     if (!emuera.Initialize())
     {
         state = ConsoleState.Error;
         outputLog(null);
         PrintFlush(false);
         RefreshStrings(true);
         return;
     }
     callEmueraProgram("");
     RefreshStrings(true);
 }
 public static CalledFunction CallEventFunction(Process parent, string label, LogicalLine retAddress)
 {
     CalledFunction called = new CalledFunction(label);
     List<FunctionLabelLine> newLabelList = new List<FunctionLabelLine>();
     called.Finished = false;
     called.eventLabelList = parent.LabelDictionary.GetEventLabels(label);
     if (called.eventLabelList == null)
     {
         FunctionLabelLine line = parent.LabelDictionary.GetNonEventLabel(label);
         if (parent.LabelDictionary.GetNonEventLabel(label) != null)
         {
             throw new CodeEE("イベント関数でない関数@" + label + "(" + line.Position.Filename + ":" + line.Position.LineNo + "行目)に対しEVENT呼び出しが行われました");
         }
         return null;
     }
     called.counter = -1;
     called.group = 0;
     called.ShiftNext();
     called.TopLabel = called.CurrentLabel;
     called.returnAddress = retAddress;
     return called;
 }
 public LogicalLine CallLabel(Process parent, string label)
 {
     return parent.LabelDictionary.GetLabelDollar(label, this.CurrentLabel);
 }
 public static CalledFunction CallFunction(Process parent, string label, LogicalLine retAddress)
 {
     CalledFunction called = new CalledFunction(label);
     called.Finished = false;
     FunctionLabelLine labelline = parent.LabelDictionary.GetNonEventLabel(label);
     if (labelline == null)
     {
         if (parent.LabelDictionary.GetEventLabels(label) != null)
         {
             throw new CodeEE("イベント関数@" + label + "に対し通常のCALLが行われました");
         }
         return null;
     }
     else if (labelline.IsMethod)
     {
         throw new CodeEE("#FUCNTION(S)が定義された関数@" + labelline.LabelName + "(" + labelline.Position.Filename + ":" + labelline.Position.LineNo.ToString() + "行目)に対し通常のCALLが行われました");
     }
     called.TopLabel = labelline;
     called.CurrentLabel = labelline;
     called.returnAddress = retAddress;
     return called;
 }
示例#6
0
 public HeaderFileLoader(EmueraConsole main, IdentifierDictionary idDic, Process proc)
 {
     output = main;
     parentProcess = proc;
     this.idDic = idDic;
 }
示例#7
0
 public ErbLoader(EmueraConsole main, ExpressionMediator exm, Process proc)
 {
     output = main;
     parentProcess = proc;
     this.exm = exm;
 }
示例#8
0
 internal void SetParent(EmueraConsole console, Process process)
 {
     emuera = process;
     mainConsole = console;
 }
 public ExpressionMediator(Process proc, VariableEvaluator vev, EmueraConsole console)
 {
     VEvaluator = vev;
     Process = proc;
     Console = console;
 }