亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sources.py

?? microwindows中文字體freetype-2.1.4.tar.gz
?? PY
字號:
## this file contains definitions of classes needed to decompose# C sources files into a series of multi-line "blocks". There are# two kinds of blocks:##   - normal blocks, which contain source code or ordinary comments##   - documentation blocks, which have restricted formatting, and#     whose text always start with a documentation markup tag like#     "<Function>", "<Type>", etc..## the routines used to process the content of documentation blocks# are not contained here, but in "content.py"## the classes and methods found here only deal with text parsing# and basic documentation block extraction#import fileinput, re, sys, os, string####################################################################  BLOCK FORMAT PATTERN####   A simple class containing compiled regular expressions used##   to detect potential documentation format block comments within##   C source code####   note that the 'column' pattern must contain a group that will##   be used to "unbox" the content of documentation comment blocks##class SourceBlockFormat:    def __init__( self, id, start, column, end ):        """create a block pattern, used to recognize special documentation blocks"""        self.id     = id        self.start  = re.compile( start, re.VERBOSE )        self.column = re.compile( column, re.VERBOSE )        self.end    = re.compile( end, re.VERBOSE )## format 1 documentation comment blocks look like the following:##    /************************************/#    /*                                  */#    /*                                  */#    /*                                  */#    /************************************/## we define a few regular expressions here to detect them#start = r'''  \s*       # any number of whitespace  /\*{2,}/  # followed by '/' and at least two asterisks then '/'  \s*$      # eventually followed by whitespace'''column = r'''  \s*      # any number of whitespace  /\*{1}   # followed by '/' and precisely one asterisk  ([^*].*) # followed by anything (group 1)  \*{1}/   # followed by one asterisk and a '/'  \s*$     # enventually followed by whitespace'''re_source_block_format1 = SourceBlockFormat( 1, start, column, start )## format 2 documentation comment blocks look like the following:##    /************************************ (at least 2 asterisks)#     *#     *#     *#     *#     **/       (1 or more asterisks at the end)## we define a few regular expressions here to detect them#start = r'''  \s*     # any number of whitespace  /\*{2,} # followed by '/' and at least two asterisks  \s*$    # eventually followed by whitespace'''column = r'''  \s*         # any number of whitespace  \*{1}       # followed by precisely one asterisk  (.*)        # then anything (group1)'''end = r'''  \s*     # any number of whitespace  \*+/    # followed by at least one asterisk, then '/''''re_source_block_format2 = SourceBlockFormat( 2, start, column, end )## the list of supported documentation block formats, we could add new ones# relatively easily#re_source_block_formats = [ re_source_block_format1, re_source_block_format2 ]## the following regular expressions corresponds to markup tags# within the documentation comment blocks. they're equivalent# despite their different syntax## notice how each markup tag _must_ begin a new line#re_markup_tag1 = re.compile( r'''\s*<(\w*)>''' )  # <xxxx> formatre_markup_tag2 = re.compile( r'''\s*@(\w*):''' )  # @xxxx: format## the list of supported markup tags, we could add new ones relatively# easily#re_markup_tags = [ re_markup_tag1, re_markup_tag2 ]## used to detect a cross-reference, after markup tags have been stripped#re_crossref = re.compile( r'@(\w*)' )## used to detect italic and bold styles in paragraph text#re_italic = re.compile( r'_(\w+)_' )re_bold   = re.compile( r'\*(\w+)\*' )## used to detect the end of commented source lines#re_source_sep = re.compile( r'\s*/\*\s*\*/' )## used to perform cross-reference within source output#re_source_crossref = re.compile( r'(\W*)(\w*)' )## a list of reserved source keywords#re_source_keywords = re.compile( '''( typedef |                                       struct |                                       enum   |                                       union  |                                       const  |                                       char   |                                       int    |                                       short  |                                       long   |                                       void   |                                       signed |                                       unsigned |                                       \#include |                                       \#define  |                                       \#undef   |                                       \#if      |                                       \#ifdef   |                                       \#ifndef  |                                       \#else    |                                       \#endif   )''', re.VERBOSE )####################################################################  SOURCE BLOCK CLASS####   A SourceProcessor is in charge or reading a C source file##   and decomposing it into a series of different "SourceBlocks".##   each one of these blocks can be made of the following data:####   - A documentation comment block that starts with "/**" and##     whose exact format will be discussed later####   - normal sources lines, include comments####   the important fields in a text block are the following ones:####     self.lines   : a list of text lines for the corresponding block####     self.content : for documentation comment blocks only, this is the##                    block content that has been "unboxed" from its##                    decoration. This is None for all other blocks##                    (i.e. sources or ordinary comments with no starting##                     markup tag)##class SourceBlock:    def __init__( self, processor, filename, lineno, lines ):        self.processor = processor        self.filename  = filename        self.lineno    = lineno        self.lines     = lines        self.format    = processor.format        self.content   = []        if self.format == None:            return        words = []        # extract comment lines        lines = []        for line0 in self.lines[1:]:            m = self.format.column.match( line0 )            if m:                lines.append( m.group(1) )        # now, look for a markup tag        for l in lines:            l = string.strip(l)            if len(l) > 0:                for tag in re_markup_tags:                    if tag.match( l ):                        self.content = lines                return    def location( self ):        return "(" + self.filename + ":" + repr(self.lineno) + ")"    # debugging only - not used in normal operations    def dump( self ):        if self.content:            print "{{{content start---"            for l in self.content:                print l            print "---content end}}}"            return        fmt = ""        if self.format:            fmt = repr(self.format.id) + " "        for line in self.lines:            print line####################################################################  SOURCE PROCESSOR CLASS####   The SourceProcessor is in charge or reading a C source file##   and decomposing it into a series of different "SourceBlock"##   objects.####   each one of these blocks can be made of the following data:####   - A documentation comment block that starts with "/**" and##     whose exact format will be discussed later####   - normal sources lines, include comments####class SourceProcessor:    def  __init__( self ):        """initialize a source processor"""        self.blocks   = []        self.filename = None        self.format   = None        self.lines    = []    def  reset( self ):        """reset a block processor, clean all its blocks"""        self.blocks = []        self.format = None    def  parse_file( self, filename ):        """parse a C source file, and adds its blocks to the processor's list"""        self.reset()        self.filename = filename        fileinput.close()        self.format    = None        self.lineno    = 0        self.lines     = []        for line in fileinput.input( filename ):            # strip trailing newlines, important on Windows machines !!            if  line[-1] == '\012':                line = line[0:-1]            if self.format == None:                self.process_normal_line( line )            else:                if self.format.end.match( line ):                    # that's a normal block end, add it to lines and                    # create a new block                    # self.lines.append( line )                    self.add_block_lines()                elif self.format.column.match( line ):                    # that's a normal column line, add it to 'lines'                    self.lines.append( line )                else:                    # humm.. this is an unexcepted block end,                    # create a new block, but don't process the line                    self.add_block_lines()                    # we need to process the line again                    self.process_normal_line( line )        # record the last lines        self.add_block_lines()    def process_normal_line( self, line ):        """process a normal line and check if it's the start of a new block"""        for f in re_source_block_formats:          if f.start.match( line ):            self.add_block_lines()            self.format = f            self.lineno = fileinput.filelineno()        self.lines.append( line )    def add_block_lines( self ):        """add the current accumulated lines, and create a new block"""        if self.lines != []:            block = SourceBlock( self, self.filename, self.lineno, self.lines )            self.blocks.append( block )            self.format = None            self.lines  = []    # debugging only, not used in normal operations    def dump( self ):        """print all blocks in a processor"""        for b in self.blocks:            b.dump()# eof

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲乱码国产乱码精品精98午夜| 国产精品国产三级国产aⅴ入口| 欧美变态口味重另类| 国产色91在线| 日av在线不卡| 亚洲男女毛片无遮挡| 成人免费视频视频| 欧美巨大另类极品videosbest | 国产综合色在线| 色先锋aa成人| 欧美国产在线观看| 久久精品国产在热久久| 欧美中文字幕久久| 中文字幕一区二区三区四区| 九九久久精品视频| 在线91免费看| 亚洲成av人影院在线观看网| 97久久超碰国产精品| 国产亚洲精品精华液| 精品一区二区免费视频| 欧美日韩国产高清一区二区 | 国产成人精品1024| 日韩精品资源二区在线| 日韩国产高清在线| 欧美亚洲另类激情小说| 亚洲人成小说网站色在线| 成人精品电影在线观看| 久久综合九色综合97婷婷| 日韩激情视频在线观看| 欧美日韩国产综合草草| 亚洲成人免费电影| 欧美日韩精品高清| 午夜成人在线视频| 欧美精品一级二级三级| 午夜视频一区二区三区| 欧美日韩精品二区第二页| 亚洲国产成人av网| 777久久久精品| 日韩精品欧美精品| 日韩美女主播在线视频一区二区三区| 日韩精品欧美精品| 精品国产免费一区二区三区四区 | 欧美精品日日鲁夜夜添| 亚洲大片免费看| 666欧美在线视频| 日本91福利区| 久久一区二区视频| 成人美女视频在线观看18| 最新国产の精品合集bt伙计| 91在线观看地址| 天天综合色天天| 精品美女在线播放| 成人美女视频在线看| 一区二区三区影院| 欧美一区二区成人6969| 国内精品自线一区二区三区视频| 国产女人18毛片水真多成人如厕 | 中文字幕第一区第二区| 97se亚洲国产综合自在线观| 亚洲国产另类av| 欧美精品一区二区三区蜜桃| 岛国av在线一区| 亚洲第四色夜色| 国产喷白浆一区二区三区| 99久久99久久综合| 日韩影院免费视频| 中文字幕国产一区二区| 欧美精品777| 国产成人高清在线| 天堂精品中文字幕在线| 久久亚洲综合av| 欧美性猛片aaaaaaa做受| 久久精品国产免费看久久精品| 中文在线免费一区三区高中清不卡| av影院午夜一区| 久久99精品久久久久久久久久久久| 日本一区二区三区四区| 欧美精品在欧美一区二区少妇| 成人一区二区三区视频| 天堂一区二区在线| 亚洲女同一区二区| 精品国产91乱码一区二区三区| av成人免费在线| 国产在线一区二区综合免费视频| 亚洲精品免费视频| 久久精品视频免费观看| 91麻豆精品国产91久久久久 | 久久精品一级爱片| 欧美酷刑日本凌虐凌虐| 成人18视频在线播放| 毛片基地黄久久久久久天堂| 亚洲精品乱码久久久久久日本蜜臀| 久久影院视频免费| 日韩一区二区精品葵司在线| 91日韩精品一区| 丰满少妇久久久久久久| 另类小说综合欧美亚洲| 亚洲va欧美va国产va天堂影院| 国产精品福利在线播放| 久久久不卡影院| 精品久久久久久久人人人人传媒 | 99精品一区二区| 国产精品亚洲视频| 久久成人综合网| 麻豆91在线播放| 全国精品久久少妇| 日韩精品久久理论片| 亚洲精品欧美专区| 亚洲视频资源在线| 中文字幕综合网| 国产精品三级电影| 国产视频一区二区三区在线观看| xnxx国产精品| 欧美精品一区二区三区在线播放| 日韩欧美国产1| 26uuu久久天堂性欧美| 欧美一区二区啪啪| 日韩欧美精品在线| 欧美成人a视频| 久久九九99视频| 国产欧美一区二区精品婷婷| 国产日韩精品一区二区三区在线| 国产午夜亚洲精品午夜鲁丝片| 2021久久国产精品不只是精品| 亚洲精品一区二区三区四区高清| 日韩欧美国产一区二区三区| 欧美tickling网站挠脚心| 日韩欧美国产电影| 久久精品无码一区二区三区| 中文字幕精品综合| 久久女同性恋中文字幕| 欧美xingq一区二区| 91精品视频网| 日韩女同互慰一区二区| 久久婷婷国产综合国色天香 | 久久―日本道色综合久久| 337p日本欧洲亚洲大胆精品 | 亚洲精品欧美专区| 五月婷婷久久综合| 久久99国产精品尤物| 国产suv精品一区二区三区| 成人午夜激情影院| 在线亚洲免费视频| 欧美一级生活片| 国产视频一区二区在线| 亚洲免费看黄网站| 日韩经典一区二区| 成人h动漫精品一区二区| 91久久香蕉国产日韩欧美9色| 91精品国产色综合久久ai换脸| 日本中文字幕一区| 欧美激情资源网| 国产精品久久毛片av大全日韩| 亚洲精品免费播放| 免费成人小视频| 北条麻妃国产九九精品视频| 欧美色图第一页| 欧美极品另类videosde| 夜夜精品浪潮av一区二区三区| 久久精品国产澳门| 在线观看日韩电影| 91久久精品一区二区三区| 91精品国产高清一区二区三区蜜臀| 久久久久国产精品麻豆| 亚洲第一狼人社区| 国产精品99久久久久久久vr | 久久se精品一区二区| 成人涩涩免费视频| 日韩免费视频一区| 亚洲激情图片一区| 国产98色在线|日韩| 欧美一级专区免费大片| 自拍偷自拍亚洲精品播放| 韩国午夜理伦三级不卡影院| 在线观看三级视频欧美| 中文一区在线播放| 国产九色sp调教91| 91精品国产91综合久久蜜臀| 亚洲美女免费视频| 成人激情免费网站| 久久亚洲一区二区三区明星换脸| 三级亚洲高清视频| 在线观看视频一区二区| 一色桃子久久精品亚洲| 高清国产午夜精品久久久久久| 精品国产乱码久久久久久久 | 4hu四虎永久在线影院成人| 亚洲视频中文字幕| k8久久久一区二区三区| 久久精品视频一区二区| 国产在线一区二区| 26uuu另类欧美| 国内外成人在线| 精品国内片67194| 精品一区二区国语对白| 日韩一级欧美一级| 蜜桃av一区二区在线观看| 欧美一区二区三区视频免费播放 | 国产精品久久毛片| 成人app软件下载大全免费|