public static string HandleParsingErrors(this string code, ParsingErrors parsingErrors)
         {
             foreach (var errorDetector in ErrorDetectors)
             {
                 foreach (var error in errorDetector.FindErrors(code))
                     parsingErrors.Add(error);
             }

             return code;
         }
Exemple #2
0
        private static void HandleIndexStyles(MethodCall[] methodCalls, Algo algo, ParsingErrors parsingErrors)
        {
            var setIndexStyleCalls = methodCalls.Where(call => call.MethodName == "SetIndexStyle");
            var indexesStyles = new Dictionary<int, DrawingShapeStyle>();
            foreach (var methodCall in setIndexStyleCalls)
            {
                int index;
                if (!int.TryParse(methodCall.Parameters[0], out index))
                {
                    parsingErrors.Add(ErrorType.NotSupportedWarning, "SetIndexStyle", "Can't cast to int: " + methodCall.Parameters[0]);
                    continue;
                }
                var drawingShapeStyle = methodCall.Parameters[1].ToDrawingShapeStyle();
                indexesStyles[index] = drawingShapeStyle;

                if (methodCall.Parameters.Length >= 4)
                {
                    int width;
                    if (int.TryParse(methodCall.Parameters[3], out width))
                        algo.Widths[index] = width;
                }
            }
            foreach (var keyValuePair in indexesStyles)
            {
                algo.Styles[keyValuePair.Key] = keyValuePair.Value;
            }
        }