Пример #1
0
        /// <summary>
        /// A source module that has been broken into regions
        /// </summary>
        /// <param name="sourceModule"></param>
        public RegionizedModule(SourceModule sourceModule)
        {
            Contract.Requires(sourceModule != null);

            SunaRegion currentSunaRegion = new SunaRegion();

            using (var reader = sourceModule.OpenReader())
            {
                for (; ;)
                {
                    // read
                    string line = reader.ReadLine();
                    if (line == null)
                    {
                        break;
                    }

                    // if this is a #beginJavascript line then do so
                    if (line.Trim().IndexOf("#beginJavascript", StringComparison.InvariantCultureIgnoreCase) == 0)
                    {
                        sunaRegions.Add(currentSunaRegion);
                        currentSunaRegion = new SunaRegion();

                        JavascriptRegion jsRegion = new JavascriptRegion();
                        for (; ;)
                        {
                            // read
                            string jsLine = reader.ReadLine();
                            if (jsLine == null)
                            {
                                throw new CompileException(Error.MissingEndJavascript);
                            }


                            if (jsLine.Trim().IndexOf("#endJavascript", StringComparison.InvariantCultureIgnoreCase) == 0)
                            {
                                break;
                            }

                            jsRegion.AddLine(jsLine);
                        }
                        this.javascriptRegions.Add(jsRegion);
                    }
                    else
                    {
                        currentSunaRegion.AddLine(line);
                    }
                }
            }

            // add the last region
            sunaRegions.Add(currentSunaRegion);
        }
Пример #2
0
        /// <summary>
        /// Adds a javaScript region
        /// </summary>
        public void AddJavaScriptRegion(JavascriptRegion javaScriptRegion)
        {
            Contract.Requires(javaScriptRegion != null);

            jsModule.Execute(javaScriptRegion.ToString());
        }