Exemple #1
0
        private static RelocatableModule Assemble(Casl2Program program)
        {
            RelocatableModule relModule       = new RelocatableModule();
            Boolean           processingError = program.ProcessTextLines(relModule.LabelTable);

            if (processingError)
            {
                // ソーステキストの処理でエラーなら、ここで終了。
                return(null);
            }
            else
            {
                // ソーステキストの処理に成功すれば、ラベルのオフセットを設定し、コードを生成する。
                program.ProcessedLines
                .SetLabelOffset(relModule.LabelTable)
                .GenerateCode(relModule);
                return(relModule);
            }
        }
Exemple #2
0
 internal static RelocatableModule AssembleForUnitTest(Casl2Program program)
 {
     return(Assemble(program));
 }