public EACodeLanguage(string name, IPointerMaker pointerMaker, Tuple <string, List <Priority> >[][] pointerList, ICodeTemplateStorer codeStorer, StringComparer stringComparer) { this.name = name; this.codeStorage = codeStorer; foreach (ICodeTemplate codeTemplate1 in (IEnumerable <ICodeTemplate>)codeStorer) { CodeTemplate codeTemplate2 = codeTemplate1 as CodeTemplate; if (codeTemplate2 != null) { codeTemplate2.PointerMaker = pointerMaker; } } this.reservedWords = new List <string>() { offsetChanger, alignOffset, currentOffset, messagePrinter, errorPrinter, warningPrinter, pushOffset, popOffset, assertion, protectCode }; this.assembler = new EAExpressionAssembler(this.codeStorage, (IParser <Token, IExpression <int> >)null); this.disassembler = new EACodeLanguageDisassembler(this.codeStorage, pointerMaker, pointerList); }
/// <summary> /// Creates a new Event Assembler code language /// </summary> /// <param name="name">Name of the language</param> /// <param name="pointerMaker">Pointer maker for this language</param> /// <param name="pointerList">Pointer list of this langauge, String is the name of the /// label to point to, List are the priorities that are pointed to.</param> /// <param name="pointerListParameters">Array of amount of pointers per POIN code for pointer list.</param> public EACodeLanguage(string name, IPointerMaker pointerMaker, Tuple<string, List<Priority>>[][] pointerList, ICodeTemplateStorer codeStorer, StringComparer stringComparer) { this.name = name; this.codeStorage = codeStorer; //codeStorage.AddCode(new RawCodeTemplate(stringComparer), Priority.low); //codeStorage.AddCode(new CodeFillerTemplate(stringComparer), Priority.low); foreach (ICodeTemplate template in codeStorer) { CodeTemplate template2 = template as CodeTemplate; if (template2 != null) { template2.PointerMaker = pointerMaker; } } reservedWords = new List<string> { offsetChanger, //Offset changing code alignOffset, //Offset aligning code currentOffset, //Referances current offset messagePrinter, //Print message to message box/something errorPrinter, //Print message to message box/something warningPrinter //Print message to message box/something }; this.assembler = new EAExpressionAssembler(codeStorage, null); this.disassembler = new EACodeLanguageDisassembler( codeStorage, pointerMaker, pointerList); }