123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- // Copyright (C) 2009 Google Inc.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- /**
- * @fileoverview
- * Registers a language handler for CSS.
- *
- *
- * To use, include prettify.js and this file in your HTML page.
- * Then put your code in an HTML tag like
- * <pre class="prettyprint lang-css"></pre>
- *
- *
- * http://www.w3.org/TR/CSS21/grammar.html Section G2 defines the lexical
- * grammar. This scheme does not recognize keywords containing escapes.
- *
- * @author mikesamuel@gmail.com
- */
- PR['registerLangHandler'](
- PR['createSimpleLexer'](
- [
- // The space production <s>
- [PR['PR_PLAIN'], /^[ \t\r\n\f]+/, null, ' \t\r\n\f']
- ],
- [
- // Quoted strings. <string1> and <string2>
- [PR['PR_STRING'],
- /^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/, null],
- [PR['PR_STRING'],
- /^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/, null],
- ['lang-css-str', /^url\(([^\)\"\']*)\)/i],
- [PR['PR_KEYWORD'],
- /^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,
- null],
- // A property name -- an identifier followed by a colon.
- ['lang-css-kw', /^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],
- // A C style block comment. The <comment> production.
- [PR['PR_COMMENT'], /^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],
- // Escaping text spans
- [PR['PR_COMMENT'], /^(?:<!--|-->)/],
- // A number possibly containing a suffix.
- [PR['PR_LITERAL'], /^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],
- // A hex color
- [PR['PR_LITERAL'], /^#(?:[0-9a-f]{3}){1,2}/i],
- // An identifier
- [PR['PR_PLAIN'],
- /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],
- // A run of punctuation
- [PR['PR_PUNCTUATION'], /^[^\s\w\'\"]+/]
- ]),
- ['css']);
- PR['registerLangHandler'](
- PR['createSimpleLexer']([],
- [
- [PR['PR_KEYWORD'],
- /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]
- ]),
- ['css-kw']);
- PR['registerLangHandler'](
- PR['createSimpleLexer']([],
- [
- [PR['PR_STRING'], /^[^\)\"\']+/]
- ]),
- ['css-str']);
|