예제 #1
0
파일: cg.cs 프로젝트: Sciumo/gaigen
        /// <summary>
        /// Sets the main code generator to 'CG'. If CG does not support the right language, throws an exception.
        /// </summary>
        public void SetMainCodeGenerator(G25.CodeGenerator CG)
        {
            if (CG.Language() != Language)
                throw new Exception("G25.CodeGeneratorLoader.SetMainCodeGenerator(): the code generator does not generate for language '" + Language + "' but for language '" + CG.Language() + "' instead");

            if (m_codeGenerator != null)
            {
                if (m_codeGenerator.GetType() == CG.GetType())
                    return;
                // else: TO DO; // a duplicate of the code generator was detected. Now what? throw an exception? write an error message to console? TO DO!
            }

            m_codeGenerator = CG;
        }
예제 #2
0
파일: cg.cs 프로젝트: Sciumo/gaigen
 /// <summary>
 /// Adds 'P' to the list of code generator plugins'. 
 /// If P does not support the right language, throws an exception.
 /// Does nothing if 'P' is already on the list.
 /// </summary>
 public void AddCodeGeneratorPlugin(G25.CodeGeneratorPlugin P)
 {
     if (P.Language() != Language)
         throw new Exception("G25.CodeGeneratorLoader.AddCodeGeneratorPlugin(): the code generator does not generate for language '" + Language + "' but for language '" + P.Language() + "' instead");
     // if already on list simply return
     for (int i = 0; i < m_codeGeneratorPlugins.Count; i++)
         if (m_codeGeneratorPlugins[i].GetType() == P.GetType())
             return;
     m_codeGeneratorPlugins.Add(P);
 }