public CastToSameTypeAnalyzer(OutputImpl output)
 {
     if (output == null)
     {
         throw new ArgumentNullException(nameof(output));
     }
     _output = output;
 }
Exemple #2
0
        private void CheckOutput(OutputImpl output, String expectedOutput, String expectedError)
        {
            String actualOutput = output.Output.ToString();
            String actualError  = output.Error.ToString();

            Assert.AreEqual(expectedOutput, actualOutput);
            Assert.AreEqual(expectedError, actualError);
        }
Exemple #3
0
 public NonAsciiIdentifiersAnalyzer(OutputImpl output)
 {
     if (output == null)
     {
         throw new ArgumentNullException(nameof(output));
     }
     _output = output;
 }
 public BadFilenameCaseAnalyzer(OutputImpl output)
 {
     if (output == null)
     {
         throw new ArgumentNullException(nameof(output));
     }
     _output = output;
 }
Exemple #5
0
 public static IList <IFileAnalyzer> Create(OutputImpl output)
 {
     return(new IFileAnalyzer[]
     {
         new BadFilenameCaseAnalyzer(output),
         new CastToSameTypeAnalyzer(output),
         new NonAsciiIdentifiersAnalyzer(output)
     });
 }
        private static Boolean MainImpl(String[] args)
        {
            AppArgs appArgs = AppArgsParser.Parse(args);

            switch (appArgs.Mode)
            {
            case AppUsageMode.Help:
                Console.WriteLine(AppDescription);
                return(true);

            case AppUsageMode.Version:
                Console.WriteLine(VersionNumber);
                return(true);

            case AppUsageMode.Analysis:
                Console.OutputEncoding = Encoding.UTF8;
                IConfig externalConfig = ConfigFactory.Create(appArgs);
                if (externalConfig == null)
                {
                    Console.Error.WriteLine(BadConfigMessage);
                    return(false);
                }
                OutputImpl            output    = new OutputImpl(Console.Out, Console.Error, appArgs.OutputLevel);
                ISourceProcessor      processor = SourceProcessorFactory.Create(appArgs.Source, externalConfig, output);
                IList <IFileAnalyzer> analyzers = AnalyzersFactory.Create(output);
                Boolean processResult           = processor.Process(analyzers);
                output.WriteInfoLine($"Result of analysis: analysis is {(processResult ? "succeeded" : "failed")}");
                return(processResult);

            case AppUsageMode.BadSource:
                Console.Error.WriteLine(BadSourceMessage);
                return(false);

            case AppUsageMode.BadConfig:
                Console.Error.WriteLine(BadConfigMessage);
                return(false);

            case AppUsageMode.BadAppUsage:
            case AppUsageMode.Unknown:
                Console.Error.WriteLine(BadUsageMessage);
                Console.WriteLine(AppDescription);
                return(false);

            default:
                throw new InvalidOperationException();
            }
        }
Exemple #7
0
 public SolutionProcessor(String solutionFilename, IConfig externalConfig, OutputImpl output)
 {
     if (String.IsNullOrEmpty(solutionFilename))
     {
         throw new ArgumentNullException(nameof(solutionFilename));
     }
     if (externalConfig == null)
     {
         throw new ArgumentNullException(nameof(externalConfig));
     }
     if (output == null)
     {
         throw new ArgumentNullException(nameof(output));
     }
     _solutionFilename = solutionFilename;
     _output           = output;
     _processorHelper  = new ProjectProcessorHelper(externalConfig, output);
 }
Exemple #8
0
        public static void Process(Func <OutputImpl, IFileAnalyzer> analyzerFactory, String source, String assemblyName, String filePath, OutputLevel outputLevel, Boolean expectedResult, String expectedOutput)
        {
            SemanticModel model        = PreparationHelper.Prepare(source, assemblyName);
            ConfigData    externalData = new ConfigData();

            using (TextWriter outputWriter = new StringWriter())
                using (TextWriter errorWriter = new StringWriter())
                {
                    OutputImpl    output       = new OutputImpl(outputWriter, errorWriter, outputLevel);
                    IFileAnalyzer analyzer     = analyzerFactory(output);
                    Boolean       actualResult = analyzer.Process(filePath, model.SyntaxTree, model, externalData);
                    Assert.AreEqual(expectedResult, actualResult);
                    String actualOutput = outputWriter.ToString();
                    Assert.AreEqual(expectedOutput, actualOutput);
                    String actualError = errorWriter.ToString();
                    Assert.AreEqual("", actualError);
                }
        }
Exemple #9
0
        public static ISourceProcessor Create(String source, IConfig externalConfig, OutputImpl output)
        {
            if (String.IsNullOrEmpty(source))
            {
                throw new ArgumentNullException(nameof(source));
            }
            if (output == null)
            {
                throw new ArgumentNullException(nameof(output));
            }
            String sourceExtension = Path.GetExtension(source);

            if (String.IsNullOrEmpty(sourceExtension) || !ProcessorsMap.ContainsKey(sourceExtension))
            {
                throw new ArgumentException(nameof(source));
            }
            MSBuildLocator.RegisterDefaults();
            return(ProcessorsMap[sourceExtension](source, externalConfig, output));
        }
 public FileProcessor(String filename, IConfig externalConfig, OutputImpl output)
 {
     if (String.IsNullOrEmpty(filename))
     {
         throw new ArgumentNullException(nameof(filename));
     }
     if (externalConfig == null)
     {
         throw new ArgumentNullException(nameof(externalConfig));
     }
     if (output == null)
     {
         throw new ArgumentNullException(nameof(output));
     }
     _filename        = filename;
     _externalConfig  = externalConfig;
     _output          = output;
     _processorHelper = new FileProcessorHelper();
 }
Exemple #11
0
 public void SetUp()
 {
     _errorOutput   = new OutputImpl(new StringWriter(), new StringWriter(), OutputLevel.Error);
     _warningOutput = new OutputImpl(new StringWriter(), new StringWriter(), OutputLevel.Warning);
     _infoOutput    = new OutputImpl(new StringWriter(), new StringWriter(), OutputLevel.Info);
 }
Exemple #12
0
 /// <summary>
 /// 用于创建modelBuilder
 /// </summary>
 /// <param name="modelBuilder"></param>
 protected internal virtual void DoRegisterTypes(ModelBuilder modelBuilder)
 {
     //TODO Dmn类型注册
     try
     {
         AllowedAnswersImpl.RegisterType(modelBuilder);
         AllowedValuesImpl.RegisterType(modelBuilder);
         ArtifactImpl.RegisterType(modelBuilder);
         AssociationImpl.RegisterType(modelBuilder);
         AuthorityRequirementImpl.RegisterType(modelBuilder);
         BindingImpl.RegisterType(modelBuilder);
         BusinessContextElementImpl.RegisterType(modelBuilder);
         BusinessKnowledgeModelImpl.RegisterType(modelBuilder);
         ColumnImpl.RegisterType(modelBuilder);
         ContextEntryImpl.RegisterType(modelBuilder);
         ContextImpl.RegisterType(modelBuilder);
         DecisionImpl.RegisterType(modelBuilder);
         DecisionMadeReferenceImpl.RegisterType(modelBuilder);
         DecisionMakerReferenceImpl.RegisterType(modelBuilder);
         DecisionOwnedReferenceImpl.RegisterType(modelBuilder);
         DecisionOwnerReferenceImpl.RegisterType(modelBuilder);
         DecisionRuleImpl.RegisterType(modelBuilder);
         DecisionServiceImpl.RegisterType(modelBuilder);
         DecisionTableImpl.RegisterType(modelBuilder);
         DefaultOutputEntryImpl.RegisterType(modelBuilder);
         DefinitionsImpl.RegisterType(modelBuilder);
         DescriptionImpl.RegisterType(modelBuilder);
         DmnElementImpl.RegisterType(modelBuilder);
         DmnElementReferenceImpl.RegisterType(modelBuilder);
         DrgElementImpl.RegisterType(modelBuilder);
         DrgElementReferenceImpl.RegisterType(modelBuilder);
         ElementCollectionImpl.RegisterType(modelBuilder);
         EncapsulatedDecisionReferenceImpl.RegisterType(modelBuilder);
         EncapsulatedLogicImpl.RegisterType(modelBuilder);
         ExpressionImpl.RegisterType(modelBuilder);
         ExtensionElementsImpl.RegisterType(modelBuilder);
         FormalParameterImpl.RegisterType(modelBuilder);
         FunctionDefinitionImpl.RegisterType(modelBuilder);
         ImpactedPerformanceIndicatorReferenceImpl.RegisterType(modelBuilder);
         ImpactingDecisionReferenceImpl.RegisterType(modelBuilder);
         ImportImpl.RegisterType(modelBuilder);
         ImportedElementImpl.RegisterType(modelBuilder);
         ImportedValuesImpl.RegisterType(modelBuilder);
         InformationItemImpl.RegisterType(modelBuilder);
         InformationRequirementImpl.RegisterType(modelBuilder);
         InputImpl.RegisterType(modelBuilder);
         InputClauseImpl.RegisterType(modelBuilder);
         InputDataImpl.RegisterType(modelBuilder);
         InputDataReferenceImpl.RegisterType(modelBuilder);
         InputDecisionReferenceImpl.RegisterType(modelBuilder);
         InputEntryImpl.RegisterType(modelBuilder);
         InputExpressionImpl.RegisterType(modelBuilder);
         InputValuesImpl.RegisterType(modelBuilder);
         InvocationImpl.RegisterType(modelBuilder);
         ItemComponentImpl.RegisterType(modelBuilder);
         ItemDefinitionImpl.RegisterType(modelBuilder);
         ItemDefinitionReferenceImpl.RegisterType(modelBuilder);
         KnowledgeRequirementImpl.RegisterType(modelBuilder);
         KnowledgeSourceImpl.RegisterType(modelBuilder);
         ListImpl.RegisterType(modelBuilder);
         LiteralExpressionImpl.RegisterType(modelBuilder);
         ModelElementInstanceImpl.RegisterType(modelBuilder);
         NamedElementImpl.RegisterType(modelBuilder);
         OrganizationUnitImpl.RegisterType(modelBuilder);
         OutputImpl.RegisterType(modelBuilder);
         OutputClauseImpl.RegisterType(modelBuilder);
         OutputDecisionReferenceImpl.RegisterType(modelBuilder);
         OutputEntryImpl.RegisterType(modelBuilder);
         OutputValuesImpl.RegisterType(modelBuilder);
         OwnerReferenceImpl.RegisterType(modelBuilder);
         ParameterReferenceImpl.RegisterType(modelBuilder);
         PerformanceIndicatorImpl.RegisterType(modelBuilder);
         QuestionImpl.RegisterType(modelBuilder);
         RelationImpl.RegisterType(modelBuilder);
         RequiredAuthorityReferenceImpl.RegisterType(modelBuilder);
         RequiredDecisionReferenceImpl.RegisterType(modelBuilder);
         RequiredInputReferenceImpl.RegisterType(modelBuilder);
         RequiredKnowledgeReferenceImpl.RegisterType(modelBuilder);
         RowImpl.RegisterType(modelBuilder);
         RuleImpl.RegisterType(modelBuilder);
         SourceRefImpl.RegisterType(modelBuilder);
         SupportedObjectiveReferenceImpl.RegisterType(modelBuilder);
         TargetRefImpl.RegisterType(modelBuilder);
         TextImpl.RegisterType(modelBuilder);
         TextAnnotationImpl.RegisterType(modelBuilder);
         TypeImpl.RegisterType(modelBuilder);
         TypeRefImpl.RegisterType(modelBuilder);
         UnaryTestsImpl.RegisterType(modelBuilder);
         UsingProcessReferenceImpl.RegisterType(modelBuilder);
         UsingTaskReferenceImpl.RegisterType(modelBuilder);
         VariableImpl.RegisterType(modelBuilder);
     }
     catch (System.Exception ex)
     {
         throw ex;
     }
     /// <summary>
     /// camunda extensions </summary>
 }
Exemple #13
0
        public static Boolean CheckCompilationErrors(String filename, Compilation compilation, OutputImpl output)
        {
            output.WriteInfoLine("Checking compilation for errors and warnings:");
            IList <Diagnostic> diagnostics = compilation.GetDiagnostics();

            Diagnostic[] diagnosticErrors   = diagnostics.Where(d => d.Severity == DiagnosticSeverity.Error).ToArray();
            Diagnostic[] diagnosticWarnings = diagnostics.Where(d => d.Severity == DiagnosticSeverity.Warning).ToArray();
            Boolean      hasErrors          = false;

            output.WriteInfoLine($"Found {diagnosticErrors.Length} errors in the compilation");
            foreach (Diagnostic diagnostic in diagnosticErrors)
            {
                output.WriteErrorLine($"Found following error in the compilation of the {filename} entity: {diagnostic.GetMessage()}");
                hasErrors = true;
            }
            output.WriteInfoLine($"Found {diagnosticWarnings.Length} warnings in the compilation");
            foreach (Diagnostic diagnostic in diagnosticWarnings)
            {
                output.WriteWarningLine($"Found following warning in the compilation: {diagnostic.GetMessage()}");
            }
            return(!hasErrors);
        }
Exemple #14
0
        public static StorageClass Parse(WordReader reader, uint wordCount)
        {
            var id = (Enumerant)reader.ReadWord();

            switch (id)
            {
            case Enumerant.UniformConstant:
                return(UniformConstantImpl.Parse(reader, wordCount - 1));

            case Enumerant.Input:
                return(InputImpl.Parse(reader, wordCount - 1));

            case Enumerant.Uniform:
                return(UniformImpl.Parse(reader, wordCount - 1));

            case Enumerant.Output:
                return(OutputImpl.Parse(reader, wordCount - 1));

            case Enumerant.Workgroup:
                return(WorkgroupImpl.Parse(reader, wordCount - 1));

            case Enumerant.CrossWorkgroup:
                return(CrossWorkgroupImpl.Parse(reader, wordCount - 1));

            case Enumerant.Private:
                return(PrivateImpl.Parse(reader, wordCount - 1));

            case Enumerant.Function:
                return(FunctionImpl.Parse(reader, wordCount - 1));

            case Enumerant.Generic:
                return(GenericImpl.Parse(reader, wordCount - 1));

            case Enumerant.PushConstant:
                return(PushConstantImpl.Parse(reader, wordCount - 1));

            case Enumerant.AtomicCounter:
                return(AtomicCounterImpl.Parse(reader, wordCount - 1));

            case Enumerant.Image:
                return(ImageImpl.Parse(reader, wordCount - 1));

            case Enumerant.StorageBuffer:
                return(StorageBufferImpl.Parse(reader, wordCount - 1));

            case Enumerant.CallableDataNV:
                return(CallableDataNVImpl.Parse(reader, wordCount - 1));

            //CallableDataKHR has the same id as another value in enum.
            //case Enumerant.CallableDataKHR :
            //    return CallableDataKHR.Parse(reader, wordCount - 1);
            case Enumerant.IncomingCallableDataNV:
                return(IncomingCallableDataNVImpl.Parse(reader, wordCount - 1));

            //IncomingCallableDataKHR has the same id as another value in enum.
            //case Enumerant.IncomingCallableDataKHR :
            //    return IncomingCallableDataKHR.Parse(reader, wordCount - 1);
            case Enumerant.RayPayloadNV:
                return(RayPayloadNVImpl.Parse(reader, wordCount - 1));

            //RayPayloadKHR has the same id as another value in enum.
            //case Enumerant.RayPayloadKHR :
            //    return RayPayloadKHR.Parse(reader, wordCount - 1);
            case Enumerant.HitAttributeNV:
                return(HitAttributeNVImpl.Parse(reader, wordCount - 1));

            //HitAttributeKHR has the same id as another value in enum.
            //case Enumerant.HitAttributeKHR :
            //    return HitAttributeKHR.Parse(reader, wordCount - 1);
            case Enumerant.IncomingRayPayloadNV:
                return(IncomingRayPayloadNVImpl.Parse(reader, wordCount - 1));

            //IncomingRayPayloadKHR has the same id as another value in enum.
            //case Enumerant.IncomingRayPayloadKHR :
            //    return IncomingRayPayloadKHR.Parse(reader, wordCount - 1);
            case Enumerant.ShaderRecordBufferNV:
                return(ShaderRecordBufferNVImpl.Parse(reader, wordCount - 1));

            //ShaderRecordBufferKHR has the same id as another value in enum.
            //case Enumerant.ShaderRecordBufferKHR :
            //    return ShaderRecordBufferKHR.Parse(reader, wordCount - 1);
            case Enumerant.PhysicalStorageBuffer:
                return(PhysicalStorageBufferImpl.Parse(reader, wordCount - 1));

            //PhysicalStorageBufferEXT has the same id as another value in enum.
            //case Enumerant.PhysicalStorageBufferEXT :
            //    return PhysicalStorageBufferEXT.Parse(reader, wordCount - 1);
            default:
                throw new IndexOutOfRangeException("Unknown StorageClass " + id);
            }
        }