Beispiel #1
0
        private FileModuleLiteral ConvertAndRegisterSourceFile(RuntimeModelContext runtimeModelContext, Workspace workspace, ISourceFile sourceFile, AbsolutePath path, bool isConfig)
        {
            var moduleLiteral = ModuleLiteral.CreateFileModule(path, FrontEndHost.ModuleRegistry, runtimeModelContext.Package, sourceFile.LineMap);

            var conversionContext = new AstConversionContext(runtimeModelContext, path, sourceFile, moduleLiteral);
            var converter         = AstConverter.Create(Context.QualifierTable, conversionContext, ConversionConfiguration, workspace);

            Script.SourceFile convertedSourceFile = null;
            if (!isConfig)
            {
                convertedSourceFile = converter.ConvertSourceFile().SourceFile;
            }
            else if (Kind == ConfigurationKind.PrimaryConfig)
            {
                converter.ConvertConfiguration();
            }
            else if (Kind == ConfigurationKind.ModuleConfig)
            {
                converter.ConvertPackageConfiguration();
            }
            else
            {
                throw Contract.AssertFailure(UnimplementedOperationForConfigKindErrorMessage);
            }

            runtimeModelContext.Package.AddParsedProject(path);

            if (!Logger.HasErrors)
            {
                RegisterSuccessfullyParsedModule(convertedSourceFile, moduleLiteral, runtimeModelContext.Package);
            }

            return(moduleLiteral);
        }
Beispiel #2
0
        private static IAstConverter CreateAstConverter(ISourceFile sourceFile, FileModuleLiteral module,
                                                        RuntimeModelContext runtimeModelContext, AbsolutePath specPath, AstConversionConfiguration conversionConfiguration, Workspace workspace)
        {
            var conversionContext = new AstConversionContext(runtimeModelContext, specPath, sourceFile, module);

            return(AstConverter.Create(runtimeModelContext.QualifierTable, conversionContext, conversionConfiguration, workspace));
        }
Beispiel #3
0
 public void WriteConverter(AstConverter a)
 {
     WriteGlobal(a.DocComment);
     WriteAttributes(a.Attributes);
     WriteModifiers(a.Modifiers, a.OptionalCondition);
     Write(a.TargetType);
     WriteParameters(a.Parameters);
     Write(a.OptionalBody);
 }
Beispiel #4
0
        public InterpolationConverter(AstConverter astConverter, AstConversionContext conversionContext)
        {
            Contract.Requires(astConverter != null);
            Contract.Requires(conversionContext != null);

            m_converter = astConverter;
            m_context   = conversionContext;

            m_literalConverter = new LiteralConverter(conversionContext);
            m_pathAtomInterpolateSelectorExpression = CreatePathAtomInterpolateSelectorExpression();
            m_stringInterpolationSelectorExpression = CreateStringInterpolateSelectorExpression();
        }