예제 #1
0
        private static string WebCompressLine(string line, EnumLineClass line_class, int line_number, int col_number)
        {
            string index = "l" + line_number.ToString() + " c" + col_number.ToString();
            //string temp;
            line = line.Replace("\r",""); //REMOVE RETURNS
            line = line.Replace("\t",""); //REMOVE TABS
            line = line.Trim();
            if(line_class == EnumLineClass.HTML)
            {
                if(line.IndexOf("<!--") != -1)
                    if(line.IndexOf("-->") != -1)
                        line = StringFunctions.Left(line,line.IndexOf("<!--")) + StringFunctions.AllAfter(line,"-->");
                    else
                        line = StringFunctions.Left(line,line.IndexOf("<!--"));
                else if(line.IndexOf("-->") != -1)
                    line = StringFunctions.AllAfter(line,"-->");
            }
            else if(line_class == EnumLineClass.Javascript)
            {
                if(line.IndexOf("/*") != -1)
                    if(line.IndexOf("*/") != -1)
                        line = StringFunctions.Left(line,line.IndexOf("/*")) + StringFunctions.AllAfter(line,"*/");
                    else
                        line = StringFunctions.Left(line,line.IndexOf("/*"));
                else if(line.IndexOf("*/") != -1)
                    line = StringFunctions.AllAfter(line,"*/");

                if(line.IndexOf("-->") == -1 && line.IndexOf("-->") == -1)
                    if(line.Length >= 2)
                    {
                        if(StringFunctions.Left(line,2) == "//")
                            line = "";
                        else
                        {
                            if(line.IndexOf("://") != -1)
                                line = line.Replace("://","~~temporaryvalue~~");
                            line = Regex.Replace(line,"(?si)(//).*",""); //REMOVE JAVASCRIPT COMMENT <!--COMMENT-->
                            if(line.IndexOf("~~temporaryvalue~~") != -1)
                                line = line.Replace("~~temporaryvalue~~","://");
                        }
                    }

                line = Regex.Replace(line,"(?si)else","else "); //ADD SPACE AFTER ELSE
                if(Regex.IsMatch(line,"\\s*(((if\\s*\\()|else|switch\\s*\\(|(/\\*)|(\\*/)|(try)|(catch)|(while)|(case.*$)|(<!--)|(-->)|(.*[^:]*//)|(<script)|(<style)|(function)|(\\{)|(\\}).*)|(.*;))\\s*") == false && line.Trim().Length > 0)
                {
                    Log.Write(index + " - MISSING SEMICOLON: " + line);
                    //line = line + ";\r\n";
                    //System.Web.HttpContext.Current.Trace.Write(index + " - MISSING SEMICOLON: " + line);
                }
            }
            else if(line_class == EnumLineClass.HTMLComment)
            {
                //System.Web.HttpContext.Current.Trace.Write(index + " - HTML COMMENT: " + line);
                if(line.IndexOf("<!--") != -1)
                {
                    line = StringFunctions.Left(line,line.IndexOf("<!--"));
                }
                else
                {
                    line = "";
                }

            }
            else if(line_class == EnumLineClass.JavascriptComment)
            {
                //System.Web.HttpContext.Current.Trace.Write(index + " - JS COMMENT: " + line);
                if(line.IndexOf("/*") != -1)
                {
                    line = StringFunctions.Left(line,line.IndexOf("/*"));
                }
                else
                {
                    line = "";
                }
            }

            return(line);
        }
예제 #2
0
 private static EnumLineClass GetLineClass(string line, EnumLineClass previous)
 {
     line = line.ToLower();
     if (previous == EnumLineClass.HTML)
     {
         if (line.IndexOf("<script") != -1 && line.IndexOf("</script>") == -1)
         {
             return(EnumLineClass.Javascript);
         }
         else if (line.IndexOf("<style") != -1 && line.IndexOf("</style>") == -1)
         {
             return(EnumLineClass.Javascript);
         }
         else if (line.IndexOf("<!--") != -1 && line.IndexOf("-->") == -1)
         {
             return(EnumLineClass.HTMLComment);
         }
         else
         {
             return(previous);
         }
     }
     else if (previous == EnumLineClass.Javascript)
     {
         if (line.IndexOf("</script>") != -1)
         {
             return(EnumLineClass.HTML);
         }
         else if (line.IndexOf("</style>") != -1)
         {
             return(EnumLineClass.HTML);
         }
         else if (line.IndexOf("/*") != -1 && line.IndexOf("*/") == -1)
         {
             return(EnumLineClass.JavascriptComment);
         }
         else
         {
             return(previous);
         }
     }
     else if (previous == EnumLineClass.HTMLComment)
     {
         if (line.IndexOf("-->") != -1)
         {
             return(EnumLineClass.HTML);
         }
         else
         {
             return(previous);
         }
     }
     else if (previous == EnumLineClass.JavascriptComment)
     {
         if (line.IndexOf("*/") != -1)
         {
             return(EnumLineClass.Javascript);
         }
         else
         {
             return(previous);
         }
     }
     return(EnumLineClass.HTML);
 }
예제 #3
0
 private static EnumLineClass GetLineClass(string line,EnumLineClass previous)
 {
     line = line.ToLower();
     if(previous == EnumLineClass.HTML)
     {
         if(line.IndexOf("<script") != -1 && line.IndexOf("</script>") == -1)
             return(EnumLineClass.Javascript);
         else if(line.IndexOf("<style") != -1 && line.IndexOf("</style>") == -1)
             return(EnumLineClass.Javascript);
         else if(line.IndexOf("<!--") != -1 && line.IndexOf("-->") == -1)
             return(EnumLineClass.HTMLComment);
         else
             return(previous);
     }
     else if(previous == EnumLineClass.Javascript)
     {
         if(line.IndexOf("</script>") != -1)
             return(EnumLineClass.HTML);
         else if(line.IndexOf("</style>") != -1)
             return(EnumLineClass.HTML);
         else if(line.IndexOf("/*") != -1 && line.IndexOf("*/") == -1)
             return(EnumLineClass.JavascriptComment);
         else
             return(previous);
     }
     else if(previous == EnumLineClass.HTMLComment)
     {
         if(line.IndexOf("-->") != -1)
             return(EnumLineClass.HTML);
         else
             return(previous);
     }
     else if(previous == EnumLineClass.JavascriptComment)
     {
         if(line.IndexOf("*/") != -1)
             return(EnumLineClass.Javascript);
         else
             return(previous);
     }
     return(EnumLineClass.HTML);
 }
예제 #4
0
        private static string WebCompressLine(string line, EnumLineClass line_class, int line_number, int col_number)
        {
            string index = "l" + line_number.ToString() + " c" + col_number.ToString();

            //string temp;
            line = line.Replace("\r", "");            //REMOVE RETURNS
            line = line.Replace("\t", "");            //REMOVE TABS
            line = line.Trim();
            if (line_class == EnumLineClass.HTML)
            {
                if (line.IndexOf("<!--") != -1)
                {
                    if (line.IndexOf("-->") != -1)
                    {
                        line = StringFunctions.Left(line, line.IndexOf("<!--")) + StringFunctions.AllAfter(line, "-->");
                    }
                    else
                    {
                        line = StringFunctions.Left(line, line.IndexOf("<!--"));
                    }
                }
                else if (line.IndexOf("-->") != -1)
                {
                    line = StringFunctions.AllAfter(line, "-->");
                }
            }
            else if (line_class == EnumLineClass.Javascript)
            {
                if (line.IndexOf("/*") != -1)
                {
                    if (line.IndexOf("*/") != -1)
                    {
                        line = StringFunctions.Left(line, line.IndexOf("/*")) + StringFunctions.AllAfter(line, "*/");
                    }
                    else
                    {
                        line = StringFunctions.Left(line, line.IndexOf("/*"));
                    }
                }
                else if (line.IndexOf("*/") != -1)
                {
                    line = StringFunctions.AllAfter(line, "*/");
                }

                if (line.IndexOf("-->") == -1 && line.IndexOf("-->") == -1)
                {
                    if (line.Length >= 2)
                    {
                        if (StringFunctions.Left(line, 2) == "//")
                        {
                            line = "";
                        }
                        else
                        {
                            if (line.IndexOf("://") != -1)
                            {
                                line = line.Replace("://", "~~temporaryvalue~~");
                            }
                            line = Regex.Replace(line, "(?si)(//).*", "");                           //REMOVE JAVASCRIPT COMMENT <!--COMMENT-->
                            if (line.IndexOf("~~temporaryvalue~~") != -1)
                            {
                                line = line.Replace("~~temporaryvalue~~", "://");
                            }
                        }
                    }
                }

                line = Regex.Replace(line, "(?si)else", "else ");               //ADD SPACE AFTER ELSE
                if (Regex.IsMatch(line, "\\s*(((if\\s*\\()|else|switch\\s*\\(|(/\\*)|(\\*/)|(try)|(catch)|(while)|(case.*$)|(<!--)|(-->)|(.*[^:]*//)|(<script)|(<style)|(function)|(\\{)|(\\}).*)|(.*;))\\s*") == false && line.Trim().Length > 0)
                {
                    Log.Write(index + " - MISSING SEMICOLON: " + line);
                    //line = line + ";\r\n";
                    //System.Web.HttpContext.Current.Trace.Write(index + " - MISSING SEMICOLON: " + line);
                }
            }
            else if (line_class == EnumLineClass.HTMLComment)
            {
                //System.Web.HttpContext.Current.Trace.Write(index + " - HTML COMMENT: " + line);
                if (line.IndexOf("<!--") != -1)
                {
                    line = StringFunctions.Left(line, line.IndexOf("<!--"));
                }
                else
                {
                    line = "";
                }
            }
            else if (line_class == EnumLineClass.JavascriptComment)
            {
                //System.Web.HttpContext.Current.Trace.Write(index + " - JS COMMENT: " + line);
                if (line.IndexOf("/*") != -1)
                {
                    line = StringFunctions.Left(line, line.IndexOf("/*"));
                }
                else
                {
                    line = "";
                }
            }

            return(line);
        }