public override Node VisitStylesheet([NotNull] StylesheetContext context) { var stylesheet = new StylesheetNode(context.Start, context.LABEL().GetText()); foreach (PageContext page in context.page()) { stylesheet.AddChild(Visit(page)); } return(stylesheet); }
public static QLSNode Parse(string style) { AntlrInputStream inputStream = new AntlrInputStream(style); QLSGrammarLexer QLSLexer = new QLSGrammarLexer(inputStream); CommonTokenStream commonTokenStream = new CommonTokenStream(QLSLexer); QLSGrammarParser QLSParser = new QLSGrammarParser(commonTokenStream); StylesheetContext context = QLSParser.stylesheet(); StylesheetVisitor visitor = new StylesheetVisitor(); return(visitor.VisitStylesheet(context)); }
public void ToEdit(IValueProvider valueProvider) { var htmlFiles = valueProvider.GetFiles(Entities.FileType.Html); List <FileContext> files = new List <FileContext>(); var searcher = new HtmlStyleFilesSearcher(); foreach (var item in htmlFiles) { var list = searcher.Search(item.Tree); files.AddRange(list); } var uniqFiles = files.Distinct(); File commonFile = new File(); commonFile.FileName = IO.Path.GetRandomFileName() + ".css"; commonFile.SearchName = commonFile.FileName; commonFile.Type = FileType.Css; StylesheetContext context = new StylesheetContext(null, 0); foreach (var item in uniqFiles) { var style = item.File.Tree as StylesheetContext; var nesteds = style.nestedStatement(); foreach (var nested in nesteds) { nested.parent = context; context.AddChild(nested); } valueProvider.RemoveFile(item.File.FileName); } commonFile.Tree = context; valueProvider.AddFile(commonFile); HtmlAddStyleEditor htmlAddStyle = new HtmlAddStyleEditor(); foreach (var item in htmlFiles) { htmlAddStyle.Add(item.Tree, new File[] { commonFile }); } foreach (var item in files) { item.Context.Remove(); } }
public override QLSNode VisitStylesheet(StylesheetContext context) { if (context == null) { throw new ArgumentNullException("Context can't be null."); } string id = context.ID().GetText(); var styles = VisitDefaults(context.defaults()); var qlsNode = new QLSStructuralNode(Location.FromContext(context), QLSNodeType.Stylesheet, id, styles); foreach (PageContext pageContext in context.page()) { qlsNode.AddNode(VisitPage(pageContext)); } return(qlsNode); }
public void Parse(string value, StylesheetContext context) { _css = value; _context = context; char[] data = value.ToCharArray(); int cs; int eof = data.Length; int pe = eof; /* #line 2 "../ExCSS/Parser.generated.cs" */ { cs = selector_start; } /* #line 45 "Parser.rl" */ /* #line 5 "../ExCSS/Parser.generated.cs" */ { sbyte _klen; short _trans; short _keys; if ( p == pe ) goto _test_eof; if ( cs == 0 ) goto _out; _resume: _keys = _selector_key_offsets[cs]; _trans = (short)_selector_index_offsets[cs]; _klen = _selector_single_lengths[cs]; if ( _klen > 0 ) { short _lower = _keys; short _mid; short _upper = (short) (_keys + _klen - 1); while (true) { if ( _upper < _lower ) break; _mid = (short) (_lower + ((_upper-_lower) >> 1)); if ( data[p] < _selector_trans_keys[_mid] ) _upper = (short) (_mid - 1); else if ( data[p] > _selector_trans_keys[_mid] ) _lower = (short) (_mid + 1); else { _trans += (short) (_mid - _keys); goto _match; } } _keys += (short) _klen; _trans += (short) _klen; } _klen = _selector_range_lengths[cs]; if ( _klen > 0 ) { short _lower = _keys; short _mid; short _upper = (short) (_keys + (_klen<<1) - 2); while (true) { if ( _upper < _lower ) break; _mid = (short) (_lower + (((_upper-_lower) >> 1) & ~1)); if ( data[p] < _selector_trans_keys[_mid] ) _upper = (short) (_mid - 2); else if ( data[p] > _selector_trans_keys[_mid+1] ) _lower = (short) (_mid + 2); else { _trans += (short)((_mid - _keys)>>1); goto _match; } } _trans += (short) _klen; } _match: cs = _selector_trans_targs[_trans]; if ( cs == 0 ) goto _out; if ( ++p != pe ) goto _resume; _test_eof: {} _out: {} } /* #line 46 "Parser.rl" */ }