ulmul 0.4.1 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README-en +118 -63
- data/README-ja +92 -58
- data/Rakefile +26 -10
- data/bin/ulmul2html5 +7 -58
- data/bin/ulmul2latex +34 -0
- data/bin/ulmul2xhtml +6 -58
- data/google-code-prettify/CHANGES.html +130 -0
- data/google-code-prettify/COPYING +202 -0
- data/google-code-prettify/README-zh-Hans.html +143 -0
- data/google-code-prettify/README.html +203 -0
- data/google-code-prettify/src/lang-apollo.js +51 -0
- data/google-code-prettify/src/lang-css.js +78 -0
- data/google-code-prettify/src/lang-fortran.js +53 -0
- data/google-code-prettify/src/lang-hs.js +101 -0
- data/google-code-prettify/src/lang-lisp.js +93 -0
- data/google-code-prettify/src/lang-lua.js +59 -0
- data/google-code-prettify/src/lang-ml.js +56 -0
- data/google-code-prettify/src/lang-proto.js +35 -0
- data/google-code-prettify/src/lang-scala.js +54 -0
- data/google-code-prettify/src/lang-sql.js +57 -0
- data/google-code-prettify/src/lang-vb.js +61 -0
- data/google-code-prettify/src/lang-vhdl.js +34 -0
- data/google-code-prettify/src/lang-wiki.js +53 -0
- data/google-code-prettify/src/lang-yaml.js +27 -0
- data/google-code-prettify/src/prettify.css +44 -0
- data/google-code-prettify/src/prettify.js +1508 -0
- data/google-code-prettify/tests/large_input_test.html +122 -0
- data/google-code-prettify/tests/prettify_test.html +2772 -0
- data/google-code-prettify/tests/test_base.js +132 -0
- data/google-code-prettify/tests/test_styles.css +5 -0
- data/hello.c +7 -0
- data/index.en.html +221 -120
- data/index.ja.html +182 -115
- data/lib/ulmul.rb +477 -276
- data/test/unit/ulmul_test.rb +21 -0
- data/ulmul-slidy.css +21 -8
- data/ulmul.gemspec +9 -5
- data/ulmul2html5.css +19 -5
- data/ulmul2xhtml.css +17 -1
- metadata +90 -12
- data/tests/ulmul_test.rb +0 -14
@@ -0,0 +1,53 @@
|
|
1
|
+
// Copyright (C) 2010 Nicky Sandhu.
|
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
|
+
* @fileoverview
|
18
|
+
* Registers a language handler for Fortran code
|
19
|
+
* <p>
|
20
|
+
* This file could be used by google code to allow syntax highlighting.
|
21
|
+
* Use <pre class="prettyprint lang-fortran"> inject fortran code here <pre>
|
22
|
+
* <p>
|
23
|
+
* Known Limitations
|
24
|
+
* <ol>
|
25
|
+
* <li> Cannot handle case of comments on first line of file. The reason is that it matches
|
26
|
+
* for an end of line followed by a character to indicate comment (fortran reserves the first 6 columns
|
27
|
+
* for special meaning) </li>
|
28
|
+
* </ol>
|
29
|
+
* @author karajdaar@gmail.com
|
30
|
+
*/
|
31
|
+
|
32
|
+
PR.registerLangHandler(
|
33
|
+
PR.createSimpleLexer(
|
34
|
+
[
|
35
|
+
// A single quoted string
|
36
|
+
[PR.PR_STRING, /^'([^\'\\]|\\[\s\S])*(?:\'|$)/, null, '\''],
|
37
|
+
],
|
38
|
+
[
|
39
|
+
// A line comment that starts with after a new line with *,c or ! or ! anywhere on the line and ends on end of line
|
40
|
+
[PR.PR_COMMENT, /^(([\n]+([*|c|!]))|[!]).*(?=[\n]*)/i],
|
41
|
+
// A number is a hex integer literal, a decimal real literal, or in scientific notation.
|
42
|
+
[PR.PR_LITERAL, /^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:[e|d][+\-]?\d+)?))/i],
|
43
|
+
// a boolean literal
|
44
|
+
[PR.PR_LITERAL, /^([\.](TRUE|FALSE)[\.])/i],
|
45
|
+
// type keywords
|
46
|
+
[PR.PR_TYPE, /^(?:\s)+(CHARACTER|COMPLEX|DATA|DIMENSION|DOUBLE|DOUBLEPRECISION|EQUIVALENCE|EXTERNAL|INTEGER|INTRINSIC|PARAMETER|POINTER|PRECISION|LOGICAL|PURE|REAL)(\*(\d+))?(?:(\s|\(|$))/i,null],
|
47
|
+
// reserved keywords
|
48
|
+
[PR.PR_KEYWORD, /^(?:\s)(ALLOCATABLE|ALLOCATE|ASSIGNMENT|BACKSPACE|BLOCK|BLOCKDATA|CALL|CASE|CLOSE|COMMON|COMPLEX|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DEFAULT|DIMENSION|DO|ELEMENTAL|ELSE|ELSEIF|ELSEWHERE|END(BLOCK(DATA)?|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)?|ENTRY|EQUIVALENCE|ERR|EXIT|EXTERNAL|FOR(ALL|MAT)|GO(TO)?|IF|IMPLICIT|INCLUDE|INQUIRE|INTENT|INTERFACE|INTRINSIC|MODULE|NAMELIST|NONE|NULL(IFY)?|ONLY|OPEN|OPERATOR|OPTIONAL|PRECISION|PRINT|PRIVATE|PROCEDURE|PROGRAM|PUBLIC|READ|RECURSIVE|RESULT|RETURN|REWIND|SAVE|SELECT|SELECTCASE|SEQUENCE|STOP|SUBROUTINE|TARGET|THEN|TO|TYPE|USE|WHERE|WHILE|WRITE)(?=[^\w-]|$)/i,null],
|
49
|
+
// continuation marker
|
50
|
+
[PR.PR_PUNCTUATION, /^([\n]+[ ]{5}[\&])/],
|
51
|
+
]),
|
52
|
+
['fortran']);
|
53
|
+
|
@@ -0,0 +1,101 @@
|
|
1
|
+
// Copyright (C) 2009 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 Haskell.
|
20
|
+
*
|
21
|
+
*
|
22
|
+
* To use, include prettify.js and this file in your HTML page.
|
23
|
+
* Then put your code in an HTML tag like
|
24
|
+
* <pre class="prettyprint lang-hs">(my lisp code)</pre>
|
25
|
+
* The lang-cl class identifies the language as common lisp.
|
26
|
+
* This file supports the following language extensions:
|
27
|
+
* lang-cl - Common Lisp
|
28
|
+
* lang-el - Emacs Lisp
|
29
|
+
* lang-lisp - Lisp
|
30
|
+
* lang-scm - Scheme
|
31
|
+
*
|
32
|
+
*
|
33
|
+
* I used http://www.informatik.uni-freiburg.de/~thiemann/haskell/haskell98-report-html/syntax-iso.html
|
34
|
+
* as the basis, but ignore the way the ncomment production nests since this
|
35
|
+
* makes the lexical grammar irregular. It might be possible to support
|
36
|
+
* ncomments using the lookbehind filter.
|
37
|
+
*
|
38
|
+
*
|
39
|
+
* @author mikesamuel@gmail.com
|
40
|
+
*/
|
41
|
+
|
42
|
+
PR.registerLangHandler(
|
43
|
+
PR.createSimpleLexer(
|
44
|
+
[
|
45
|
+
// Whitespace
|
46
|
+
// whitechar -> newline | vertab | space | tab | uniWhite
|
47
|
+
// newline -> return linefeed | return | linefeed | formfeed
|
48
|
+
[PR.PR_PLAIN, /^[\t\n\x0B\x0C\r ]+/, null, '\t\n\x0B\x0C\r '],
|
49
|
+
// Single line double and single-quoted strings.
|
50
|
+
// char -> ' (graphic<' | \> | space | escape<\&>) '
|
51
|
+
// string -> " {graphic<" | \> | space | escape | gap}"
|
52
|
+
// escape -> \ ( charesc | ascii | decimal | o octal
|
53
|
+
// | x hexadecimal )
|
54
|
+
// charesc -> a | b | f | n | r | t | v | \ | " | ' | &
|
55
|
+
[PR.PR_STRING, /^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,
|
56
|
+
null, '"'],
|
57
|
+
[PR.PR_STRING, /^\'(?:[^\'\\\n\x0C\r]|\\[^&])\'?/,
|
58
|
+
null, "'"],
|
59
|
+
// decimal -> digit{digit}
|
60
|
+
// octal -> octit{octit}
|
61
|
+
// hexadecimal -> hexit{hexit}
|
62
|
+
// integer -> decimal
|
63
|
+
// | 0o octal | 0O octal
|
64
|
+
// | 0x hexadecimal | 0X hexadecimal
|
65
|
+
// float -> decimal . decimal [exponent]
|
66
|
+
// | decimal exponent
|
67
|
+
// exponent -> (e | E) [+ | -] decimal
|
68
|
+
[PR.PR_LITERAL,
|
69
|
+
/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,
|
70
|
+
null, '0123456789']
|
71
|
+
],
|
72
|
+
[
|
73
|
+
// Haskell does not have a regular lexical grammar due to the nested
|
74
|
+
// ncomment.
|
75
|
+
// comment -> dashes [ any<symbol> {any}] newline
|
76
|
+
// ncomment -> opencom ANYseq {ncomment ANYseq}closecom
|
77
|
+
// dashes -> '--' {'-'}
|
78
|
+
// opencom -> '{-'
|
79
|
+
// closecom -> '-}'
|
80
|
+
[PR.PR_COMMENT, /^(?:(?:--+(?:[^\r\n\x0C]*)?)|(?:\{-(?:[^-]|-+[^-\}])*-\}))/],
|
81
|
+
// reservedid -> case | class | data | default | deriving | do
|
82
|
+
// | else | if | import | in | infix | infixl | infixr
|
83
|
+
// | instance | let | module | newtype | of | then
|
84
|
+
// | type | where | _
|
85
|
+
[PR.PR_KEYWORD, /^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^a-zA-Z0-9\']|$)/, null],
|
86
|
+
// qvarid -> [ modid . ] varid
|
87
|
+
// qconid -> [ modid . ] conid
|
88
|
+
// varid -> (small {small | large | digit | ' })<reservedid>
|
89
|
+
// conid -> large {small | large | digit | ' }
|
90
|
+
// modid -> conid
|
91
|
+
// small -> ascSmall | uniSmall | _
|
92
|
+
// ascSmall -> a | b | ... | z
|
93
|
+
// uniSmall -> any Unicode lowercase letter
|
94
|
+
// large -> ascLarge | uniLarge
|
95
|
+
// ascLarge -> A | B | ... | Z
|
96
|
+
// uniLarge -> any uppercase or titlecase Unicode letter
|
97
|
+
[PR.PR_PLAIN, /^(?:[A-Z][\w\']*\.)*[a-zA-Z][\w\']*/],
|
98
|
+
// matches the symbol production
|
99
|
+
[PR.PR_PUNCTUATION, /^[^\t\n\x0B\x0C\r a-zA-Z0-9\'\"]+/]
|
100
|
+
]),
|
101
|
+
['hs']);
|
@@ -0,0 +1,93 @@
|
|
1
|
+
// Copyright (C) 2008 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 Common Lisp and related languages.
|
20
|
+
*
|
21
|
+
*
|
22
|
+
* To use, include prettify.js and this file in your HTML page.
|
23
|
+
* Then put your code in an HTML tag like
|
24
|
+
* <pre class="prettyprint lang-lisp">(my lisp code)</pre>
|
25
|
+
* The lang-cl class identifies the language as common lisp.
|
26
|
+
* This file supports the following language extensions:
|
27
|
+
* lang-cl - Common Lisp
|
28
|
+
* lang-el - Emacs Lisp
|
29
|
+
* lang-lisp - Lisp
|
30
|
+
* lang-scm - Scheme
|
31
|
+
*
|
32
|
+
*
|
33
|
+
* I used http://www.devincook.com/goldparser/doc/meta-language/grammar-LISP.htm
|
34
|
+
* as the basis, but added line comments that start with ; and changed the atom
|
35
|
+
* production to disallow unquoted semicolons.
|
36
|
+
*
|
37
|
+
* "Name" = 'LISP'
|
38
|
+
* "Author" = 'John McCarthy'
|
39
|
+
* "Version" = 'Minimal'
|
40
|
+
* "About" = 'LISP is an abstract language that organizes ALL'
|
41
|
+
* | 'data around "lists".'
|
42
|
+
*
|
43
|
+
* "Start Symbol" = [s-Expression]
|
44
|
+
*
|
45
|
+
* {Atom Char} = {Printable} - {Whitespace} - [()"\'']
|
46
|
+
*
|
47
|
+
* Atom = ( {Atom Char} | '\'{Printable} )+
|
48
|
+
*
|
49
|
+
* [s-Expression] ::= [Quote] Atom
|
50
|
+
* | [Quote] '(' [Series] ')'
|
51
|
+
* | [Quote] '(' [s-Expression] '.' [s-Expression] ')'
|
52
|
+
*
|
53
|
+
* [Series] ::= [s-Expression] [Series]
|
54
|
+
* |
|
55
|
+
*
|
56
|
+
* [Quote] ::= '' !Quote = do not evaluate
|
57
|
+
* |
|
58
|
+
*
|
59
|
+
*
|
60
|
+
* I used <a href="http://gigamonkeys.com/book/">Practical Common Lisp</a> as
|
61
|
+
* the basis for the reserved word list.
|
62
|
+
*
|
63
|
+
*
|
64
|
+
* @author mikesamuel@gmail.com
|
65
|
+
*/
|
66
|
+
|
67
|
+
PR.registerLangHandler(
|
68
|
+
PR.createSimpleLexer(
|
69
|
+
[
|
70
|
+
['opn', /^\(/, null, '('],
|
71
|
+
['clo', /^\)/, null, ')'],
|
72
|
+
// A line comment that starts with ;
|
73
|
+
[PR.PR_COMMENT, /^;[^\r\n]*/, null, ';'],
|
74
|
+
// Whitespace
|
75
|
+
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'],
|
76
|
+
// A double quoted, possibly multi-line, string.
|
77
|
+
[PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"']
|
78
|
+
],
|
79
|
+
[
|
80
|
+
[PR.PR_KEYWORD, /^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/, null],
|
81
|
+
[PR.PR_LITERAL,
|
82
|
+
/^[+\-]?(?:0x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],
|
83
|
+
// A single quote possibly followed by a word that optionally ends with
|
84
|
+
// = ! or ?.
|
85
|
+
[PR.PR_LITERAL,
|
86
|
+
/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],
|
87
|
+
// A word that optionally ends with = ! or ?.
|
88
|
+
[PR.PR_PLAIN,
|
89
|
+
/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],
|
90
|
+
// A printable non-space non-special character
|
91
|
+
[PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0()\"\\\';]+/]
|
92
|
+
]),
|
93
|
+
['cl', 'el', 'lisp', 'scm']);
|
@@ -0,0 +1,59 @@
|
|
1
|
+
// Copyright (C) 2008 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 Lua.
|
20
|
+
*
|
21
|
+
*
|
22
|
+
* To use, include prettify.js and this file in your HTML page.
|
23
|
+
* Then put your code in an HTML tag like
|
24
|
+
* <pre class="prettyprint lang-lua">(my Lua code)</pre>
|
25
|
+
*
|
26
|
+
*
|
27
|
+
* I used http://www.lua.org/manual/5.1/manual.html#2.1
|
28
|
+
* Because of the long-bracket concept used in strings and comments, Lua does
|
29
|
+
* not have a regular lexical grammar, but luckily it fits within the space
|
30
|
+
* of irregular grammars supported by javascript regular expressions.
|
31
|
+
*
|
32
|
+
* @author mikesamuel@gmail.com
|
33
|
+
*/
|
34
|
+
|
35
|
+
PR.registerLangHandler(
|
36
|
+
PR.createSimpleLexer(
|
37
|
+
[
|
38
|
+
// Whitespace
|
39
|
+
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'],
|
40
|
+
// A double or single quoted, possibly multi-line, string.
|
41
|
+
[PR.PR_STRING, /^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/, null, '"\'']
|
42
|
+
],
|
43
|
+
[
|
44
|
+
// A comment is either a line comment that starts with two dashes, or
|
45
|
+
// two dashes preceding a long bracketed block.
|
46
|
+
[PR.PR_COMMENT, /^--(?:\[(=*)\[[\s\S]*?(?:\]\1\]|$)|[^\r\n]*)/],
|
47
|
+
// A long bracketed block not preceded by -- is a string.
|
48
|
+
[PR.PR_STRING, /^\[(=*)\[[\s\S]*?(?:\]\1\]|$)/],
|
49
|
+
[PR.PR_KEYWORD, /^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/, null],
|
50
|
+
// A number is a hex integer literal, a decimal real literal, or in
|
51
|
+
// scientific notation.
|
52
|
+
[PR.PR_LITERAL,
|
53
|
+
/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],
|
54
|
+
// An identifier
|
55
|
+
[PR.PR_PLAIN, /^[a-z_]\w*/i],
|
56
|
+
// A run of punctuation
|
57
|
+
[PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0][^\w\t\n\r \xA0\"\'\-\+=]*/]
|
58
|
+
]),
|
59
|
+
['lua']);
|
@@ -0,0 +1,56 @@
|
|
1
|
+
// Copyright (C) 2008 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 OCaml, SML, F# and similar languages.
|
20
|
+
*
|
21
|
+
* Based on the lexical grammar at
|
22
|
+
* http://research.microsoft.com/fsharp/manual/spec2.aspx#_Toc202383715
|
23
|
+
*
|
24
|
+
* @author mikesamuel@gmail.com
|
25
|
+
*/
|
26
|
+
|
27
|
+
PR.registerLangHandler(
|
28
|
+
PR.createSimpleLexer(
|
29
|
+
[
|
30
|
+
// Whitespace is made up of spaces, tabs and newline characters.
|
31
|
+
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'],
|
32
|
+
// #if ident/#else/#endif directives delimit conditional compilation
|
33
|
+
// sections
|
34
|
+
[PR.PR_COMMENT,
|
35
|
+
/^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i,
|
36
|
+
null, '#'],
|
37
|
+
// A double or single quoted, possibly multi-line, string.
|
38
|
+
// F# allows escaped newlines in strings.
|
39
|
+
[PR.PR_STRING, /^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/, null, '"\'']
|
40
|
+
],
|
41
|
+
[
|
42
|
+
// Block comments are delimited by (* and *) and may be
|
43
|
+
// nested. Single-line comments begin with // and extend to
|
44
|
+
// the end of a line.
|
45
|
+
// TODO: (*...*) comments can be nested. This does not handle that.
|
46
|
+
[PR.PR_COMMENT, /^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/],
|
47
|
+
[PR.PR_KEYWORD, /^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/],
|
48
|
+
// A number is a hex integer literal, a decimal real literal, or in
|
49
|
+
// scientific notation.
|
50
|
+
[PR.PR_LITERAL,
|
51
|
+
/^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],
|
52
|
+
[PR.PR_PLAIN, /^(?:[a-z_]\w*[!?#]?|``[^\r\n\t`]*(?:``|$))/i],
|
53
|
+
// A printable non-space non-special character
|
54
|
+
[PR.PR_PUNCTUATION, /^[^\t\n\r \xA0\"\'\w]+/]
|
55
|
+
]),
|
56
|
+
['fs', 'ml']);
|
@@ -0,0 +1,35 @@
|
|
1
|
+
// Copyright (C) 2006 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
|
+
* @fileoverview
|
18
|
+
* Registers a language handler for Protocol Buffers as described at
|
19
|
+
* http://code.google.com/p/protobuf/.
|
20
|
+
*
|
21
|
+
* Based on the lexical grammar at
|
22
|
+
* http://research.microsoft.com/fsharp/manual/spec2.aspx#_Toc202383715
|
23
|
+
*
|
24
|
+
* @author mikesamuel@gmail.com
|
25
|
+
*/
|
26
|
+
|
27
|
+
PR.registerLangHandler(PR.sourceDecorator({
|
28
|
+
keywords: (
|
29
|
+
'bool bytes default double enum extend extensions false fixed32 '
|
30
|
+
+ 'fixed64 float group import int32 int64 max message option '
|
31
|
+
+ 'optional package repeated required returns rpc service '
|
32
|
+
+ 'sfixed32 sfixed64 sint32 sint64 string syntax to true uint32 '
|
33
|
+
+ 'uint64'),
|
34
|
+
cStyleComments: true
|
35
|
+
}), ['proto']);
|
@@ -0,0 +1,54 @@
|
|
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
|
+
* @fileoverview
|
18
|
+
* Registers a language handler for Scala.
|
19
|
+
*
|
20
|
+
* Derived from http://lampsvn.epfl.ch/svn-repos/scala/scala-documentation/trunk/src/reference/SyntaxSummary.tex
|
21
|
+
*
|
22
|
+
* @author mikesamuel@gmail.com
|
23
|
+
*/
|
24
|
+
|
25
|
+
PR.registerLangHandler(
|
26
|
+
PR.createSimpleLexer(
|
27
|
+
[
|
28
|
+
// Whitespace
|
29
|
+
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'],
|
30
|
+
// A double or single quoted string
|
31
|
+
// or a triple double-quoted multi-line string.
|
32
|
+
[PR.PR_STRING,
|
33
|
+
/^(?:"(?:(?:""(?:""?(?!")|[^\\"]|\\.)*"{0,3})|(?:[^"\r\n\\]|\\.)*"?))/,
|
34
|
+
null, '"'],
|
35
|
+
[PR.PR_LITERAL, /^`(?:[^\r\n\\`]|\\.)*`?/, null, '`'],
|
36
|
+
[PR.PR_PUNCTUATION, /^[!#%&()*+,\-:;<=>?@\[\\\]^{|}~]+/, null,
|
37
|
+
'!#%&()*+,-:;<=>?@[\\]^{|}~']
|
38
|
+
],
|
39
|
+
[
|
40
|
+
// A symbol literal is a single quote followed by an identifier with no
|
41
|
+
// single quote following
|
42
|
+
// A character literal has single quotes on either side
|
43
|
+
[PR.PR_STRING, /^'(?:[^\r\n\\']|\\(?:'|[^\r\n']+))'/],
|
44
|
+
[PR.PR_LITERAL, /^'[a-zA-Z_$][\w$]*(?!['$\w])/],
|
45
|
+
[PR.PR_KEYWORD, /^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/],
|
46
|
+
[PR.PR_LITERAL, /^(?:true|false|null|this)\b/],
|
47
|
+
[PR.PR_LITERAL, /^(?:(?:0(?:[0-7]+|X[0-9A-F]+))L?|(?:(?:0|[1-9][0-9]*)(?:(?:\.[0-9]+)?(?:E[+\-]?[0-9]+)?F?|L?))|\\.[0-9]+(?:E[+\-]?[0-9]+)?F?)/i],
|
48
|
+
// Treat upper camel case identifiers as types.
|
49
|
+
[PR.PR_TYPE, /^[$_]*[A-Z][_$A-Z0-9]*[a-z][\w$]*/],
|
50
|
+
[PR.PR_PLAIN, /^[$a-zA-Z_][\w$]*/],
|
51
|
+
[PR.PR_COMMENT, /^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/],
|
52
|
+
[PR.PR_PUNCTUATION, /^(?:\.+|\/)/]
|
53
|
+
]),
|
54
|
+
['scala']);
|