commiting uncommited changes on live site
[weblabels.fsf.org.git] / crm.fsf.org / 20131203 / files / sites / all / modules-old / civicrm / bower_components / google-code-prettify / src / lang-go.js
1 // Copyright (C) 2010 Google Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15
16
17 /**
18 * @fileoverview
19 * Registers a language handler for the Go language..
20 * <p>
21 * Based on the lexical grammar at
22 * http://golang.org/doc/go_spec.html#Lexical_elements
23 * <p>
24 * Go uses a minimal style for highlighting so the below does not distinguish
25 * strings, keywords, literals, etc. by design.
26 * From a discussion with the Go designers:
27 * <pre>
28 * On Thursday, July 22, 2010, Mike Samuel <...> wrote:
29 * > On Thu, Jul 22, 2010, Rob 'Commander' Pike <...> wrote:
30 * >> Personally, I would vote for the subdued style godoc presents at http://golang.org
31 * >>
32 * >> Not as fancy as some like, but a case can be made it's the official style.
33 * >> If people want more colors, I wouldn't fight too hard, in the interest of
34 * >> encouragement through familiarity, but even then I would ask to shy away
35 * >> from technicolor starbursts.
36 * >
37 * > Like http://golang.org/pkg/go/scanner/ where comments are blue and all
38 * > other content is black? I can do that.
39 * </pre>
40 *
41 * @author mikesamuel@gmail.com
42 */
43
44 PR['registerLangHandler'](
45 PR['createSimpleLexer'](
46 [
47 // Whitespace is made up of spaces, tabs and newline characters.
48 [PR['PR_PLAIN'], /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'],
49 // Not escaped as a string. See note on minimalism above.
50 [PR['PR_PLAIN'], /^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])+(?:\'|$)|`[^`]*(?:`|$))/, null, '"\'']
51 ],
52 [
53 // Block comments are delimited by /* and */.
54 // Single-line comments begin with // and extend to the end of a line.
55 [PR['PR_COMMENT'], /^(?:\/\/[^\r\n]*|\/\*[\s\S]*?\*\/)/],
56 [PR['PR_PLAIN'], /^(?:[^\/\"\'`]|\/(?![\/\*]))+/i]
57 ]),
58 ['go']);