/// <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 <int> 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
            };
            var pres = new IntRepresentation();

            this.assembler = new EAExpressionAssembler <int>(
                codeStorage,
                new TokenParser <int>(StringExtensions.GetValue),
                new IntRepresentation(),
                pointerMaker);

            this.disassembler = new EACodeLanguageDisassembler <int>(
                codeStorage, pointerMaker, pointerList, pres);
        }
        /// <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<int> 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
            };
            var pres = new IntRepresentation();
            this.assembler = new EAExpressionAssembler<int>(
                codeStorage,
                new TokenParser<int>(StringExtensions.GetValue),
                new IntRepresentation(),
                pointerMaker);

            this.disassembler = new EACodeLanguageDisassembler<int>(
                codeStorage, pointerMaker, pointerList, pres);
        }