Exemplo n.º 1
0
        public override CompiledTemplate LoadTemplateFile(string prefix, string unqualifiedFileName,
                                                          ICharStream templateStream)
        {
            string           template     = templateStream.Substring(0, templateStream.Count);
            string           templateName = Path.GetFileNameWithoutExtension(unqualifiedFileName);
            string           fullyQualifiedTemplateName = prefix + templateName;
            CompiledTemplate impl  = new TemplateCompiler(this).Compile(fullyQualifiedTemplateName, template);
            CommonToken      nameT = new CommonToken(TemplateLexer.SEMI); // Seems like a hack, best I could come up with.

            nameT.InputStream = templateStream;
            RawDefineTemplate(fullyQualifiedTemplateName, impl, nameT);
            impl.DefineImplicitlyDefinedTemplates(this);
            return(impl);
        }
        protected virtual bool TokenEndsAtEndOfLine(ITextSnapshot snapshot, ITokenSourceWithState <TState> lexer, IToken token)
        {
            ICharStream charStream = lexer.CharStream;

            if (charStream != null)
            {
                int nextCharIndex = token.StopIndex + 1;
                if (nextCharIndex >= charStream.Count)
                {
                    return(true);
                }

                int c = charStream.Substring(token.StopIndex + 1, 1)[0];
                return(c == '\r' || c == '\n');
            }

            ITextSnapshotLine line = snapshot.GetLineFromPosition(token.StopIndex + 1);

            return(line.End <= token.StopIndex + 1 && line.EndIncludingLineBreak >= token.StopIndex + 1);
        }
 public override CompiledTemplate LoadTemplateFile(string prefix, string unqualifiedFileName,
                                    ICharStream templateStream)
 {
     string template = templateStream.Substring(0, templateStream.Count);
     string templateName = Path.GetFileNameWithoutExtension(unqualifiedFileName);
     string fullyQualifiedTemplateName = prefix + templateName;
     CompiledTemplate impl = new TemplateCompiler(this).Compile(fullyQualifiedTemplateName, template);
     CommonToken nameT = new CommonToken(TemplateLexer.SEMI); // Seems like a hack, best I could come up with.
     nameT.InputStream = templateStream;
     RawDefineTemplate(fullyQualifiedTemplateName, impl, nameT);
     impl.DefineImplicitlyDefinedTemplates(this);
     return impl;
 }