Trees | Indices | Help |
|
---|
|
1 # 2 # 3 4 # Copyright (C) 2012 Google Inc. 5 # All rights reserved. 6 # 7 # Redistribution and use in source and binary forms, with or without 8 # modification, are permitted provided that the following conditions are 9 # met: 10 # 11 # 1. Redistributions of source code must retain the above copyright notice, 12 # this list of conditions and the following disclaimer. 13 # 14 # 2. Redistributions in binary form must reproduce the above copyright 15 # notice, this list of conditions and the following disclaimer in the 16 # documentation and/or other materials provided with the distribution. 17 # 18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 19 # IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 20 # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 22 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 23 # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 24 # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 25 # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 26 # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 27 # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 30 31 """Pygments lexer for our custom shell example sessions. 32 33 The lexer support the following custom markup: 34 35 - comments: # this is a comment 36 - command lines: '$ ' at the beginning of a line denotes a command 37 - variable input: %input% (works in both commands and screen output) 38 - otherwise, regular text output from commands will be plain 39 40 """ 41 42 from pygments.lexer import RegexLexer, bygroups, include 43 from pygments.token import Name, Text, Generic, Comment 44 4547 name = "ShellExampleLexer" 48 aliases = "shell-example" 49 filenames = [] 50 51 tokens = { 52 "root": [ 53 include("comments"), 54 include("userinput"), 55 # switch to state input on '$ ' at the start of the line 56 (r"^\$ ", Text, "input"), 57 (r"\s+", Text), 58 (r"[^#%\s\\]+", Text), 59 (r"\\", Text), 60 ], 61 "input": [ 62 include("comments"), 63 include("userinput"), 64 (r"[^#%\s\\]+", Generic.Strong), 65 (r"\\\n", Generic.Strong), 66 (r"\\", Generic.Strong), 67 # switch to prev state at non-escaped new-line 68 (r"\n", Text, "#pop"), 69 (r"\s+", Text), 70 ], 71 "comments": [ 72 (r"#.*\n", Comment.Single), 73 ], 74 "userinput": [ 75 (r"(\\)(%)", bygroups(None, Text)), 76 (r"(%)([^%]*)(%)", bygroups(None, Name.Variable, None)), 77 ], 78 }79 8082 app.add_lexer("shell-example", ShellExampleLexer())83
Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Mon Apr 4 13:44:24 2016 | http://epydoc.sourceforge.net |