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

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

?? content.py

?? ft235 freetype 2.3. 5 freetype 2.3.5
?? PY
?? 第 1 頁 / 共 2 頁
字號:
#  Content (c) 2002, 2004, 2006, 2007 David Turner <david@freetype.org>##  This file contains routines used to parse the content of documentation#  comment blocks and build more structured objects out of them.#from sources import *from utils import *import string, re# this regular expression is used to detect code sequences. these# are simply code fragments embedded in '{' and '}' like in:##  {#    x = y + z;#    if ( zookoo == 2 )#    {#      foobar();#    }#  }## note that indentation of the starting and ending accolades must be# exactly the same. the code sequence can contain accolades at greater# indentation#re_code_start = re.compile( r"(\s*){\s*$" )re_code_end   = re.compile( r"(\s*)}\s*$" )# this regular expression is used to isolate identifiers from# other text#re_identifier = re.compile( r'(\w*)' )############################################################################### The DocCode class is used to store source code lines.##   'self.lines' contains a set of source code lines that will be dumped as#   HTML in a <PRE> tag.##   The object is filled line by line by the parser; it strips the leading#   "margin" space from each input line before storing it in 'self.lines'.#class DocCode:    def __init__( self, margin, lines ):        self.lines  = []        self.words  = None        # remove margin spaces        for l in lines:            if string.strip( l[:margin] ) == "":                l = l[margin:]            self.lines.append( l )    def dump( self, prefix = "", width=60 ):        lines = self.dump_lines( 0, width )        for l in lines:            print prefix + l    def dump_lines( self, margin=0, width=60 ):        result = []        for l in self.lines:            result.append( " "*margin + l )        return result############################################################################### The DocPara class is used to store "normal" text paragraph.##   'self.words' contains the list of words that make up the paragraph#class DocPara:    def __init__( self, lines ):        self.lines = None        self.words = []        for l in lines:            l = string.strip(l)            self.words.extend( string.split( l ) )    def dump( self, prefix = "", width = 60 ):        lines = self.dump_lines( 0, width )        for l in lines:            print prefix + l    def dump_lines( self, margin=0, width = 60 ):        cur    = ""  # current line        col    = 0   # current width        result = []        for word in self.words:            ln = len(word)            if col > 0:                ln = ln+1            if col + ln > width:                result.append( " "*margin + cur )                cur = word                col = len(word)            else:                if col > 0:                    cur = cur + " "                cur = cur + word                col = col + ln        if col > 0:            result.append( " "*margin + cur )        return result###############################################################################  The DocField class is used to store a list containing either DocPara or#  DocCode objects. Each DocField also has an optional "name" which is used#  when the object corresponds to a field or value definition#class DocField:    def __init__( self, name, lines ):        self.name  = name  # can be None for normal paragraphs/sources        self.items = []     # list of items        mode_none  = 0   # start parsing mode        mode_code  = 1   # parsing code sequences        mode_para  = 3   # parsing normal paragraph        margin     = -1  # current code sequence indentation        cur_lines  = []        # now analyze the markup lines to see if they contain paragraphs,        # code sequences or fields definitions        #        start = 0        mode  = mode_none        for l in lines:            # are we parsing a code sequence ?            if mode == mode_code:                m = re_code_end.match( l )                if m and len(m.group(1)) <= margin:                    # that's it, we finised the code sequence                    code = DocCode( 0, cur_lines )                    self.items.append( code )                    margin    = -1                    cur_lines = []                    mode      = mode_none                else:                    # nope, continue the code sequence                    cur_lines.append( l[margin:] )            else:                # start of code sequence ?                m = re_code_start.match( l )                if m:                    # save current lines                    if cur_lines:                        para = DocPara( cur_lines )                        self.items.append( para )                        cur_lines = []                    # switch to code extraction mode                    margin = len(m.group(1))                    mode   = mode_code                else:                    if not string.split( l ) and cur_lines:                        # if the line is empty, we end the current paragraph,                        # if any                        para = DocPara( cur_lines )                        self.items.append( para )                        cur_lines = []                    else:                        # otherwise, simply add the line to the current                        # paragraph                        cur_lines.append( l )        if mode == mode_code:            # unexpected end of code sequence            code = DocCode( margin, cur_lines )            self.items.append( code )        elif cur_lines:            para = DocPara( cur_lines )            self.items.append( para )    def dump( self, prefix = "" ):        if self.field:            print prefix + self.field + " ::"            prefix = prefix + "----"        first = 1        for p in self.items:            if not first:                print ""            p.dump( prefix )            first = 0    def dump_lines( self, margin=0, width=60 ):        result = []        nl     = None        for p in self.items:            if nl:                result.append( "" )            result.extend( p.dump_lines( margin, width ) )            nl = 1        return result# this regular expression is used to detect field definitions#re_field  = re.compile( r"\s*(\w*|\w(\w|\.)*\w)\s*::" )class DocMarkup:    def __init__( self, tag, lines ):        self.tag       = string.lower(tag)        self.fields    = []        cur_lines = []        field     = None        mode      = 0        for l in lines:            m = re_field.match( l )            if m:                # we detected the start of a new field definition                # first, save the current one                if cur_lines:                    f = DocField( field, cur_lines )                    self.fields.append( f )                    cur_lines = []                    field     = None                field     = m.group(1)   # record field name                ln        = len(m.group(0))                l         = " "*ln + l[ln:]                cur_lines = [ l ]            else:                cur_lines.append( l )        if field or cur_lines:            f = DocField( field, cur_lines )            self.fields.append( f )    def get_name( self ):        try:            return self.fields[0].items[0].words[0]        except:            return None    def get_start( self ):        try:            result = ""            for word in self.fields[0].items[0].words:                result = result + " " + word            return result[1:]        except:            return "ERROR"    def dump( self, margin ):        print " "*margin + "<" + self.tag + ">"        for f in self.fields:            f.dump( "  " )        print " "*margin + "</" + self.tag + ">"class DocChapter:    def __init__( self, block ):        self.block    = block        self.sections = []        if block:            self.name     = block.name            self.title    = block.get_markup_words( "title" )            self.order    = block.get_markup_words( "sections" )        else:            self.name     = "Other"

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜视频在线观看| 伊人色综合久久天天人手人婷| 亚洲超碰97人人做人人爱| 91九色最新地址| 亚洲欧美成人一区二区三区| 日本精品视频一区二区三区| 亚洲国产中文字幕| 日韩一区二区电影网| 韩国女主播一区二区三区| 久久久久久久久久看片| 国产91清纯白嫩初高中在线观看 | 在线视频欧美区| 亚洲成av人片在线| 精品1区2区在线观看| 成人动漫一区二区在线| 亚洲成av人片在线| 久久综合九色综合97婷婷女人| 不卡一区中文字幕| 亚洲国产精品久久不卡毛片| 欧美成人精品1314www| 成a人片国产精品| 午夜视频久久久久久| 国产亚洲综合色| 欧美综合亚洲图片综合区| 理论片日本一区| 亚洲三级小视频| 日韩欧美一级片| 一本一道久久a久久精品 | 高清在线成人网| 亚洲综合视频网| 久久九九久久九九| 欧美性生活久久| 国产精品一区二区在线播放| 亚洲一区在线电影| 国产欧美一区在线| 欧美精品少妇一区二区三区| 成人深夜视频在线观看| 亚洲h在线观看| 国产精品欧美一区二区三区| 欧美狂野另类xxxxoooo| 懂色av一区二区在线播放| 日韩黄色一级片| 国产精品亲子乱子伦xxxx裸| 日韩欧美国产wwwww| 99久久亚洲一区二区三区青草| 日韩中文字幕亚洲一区二区va在线| 国产精品国产精品国产专区不蜜| 欧美一区二区不卡视频| 欧美在线视频全部完| 懂色av中文字幕一区二区三区| 美日韩一区二区| 亚洲成人激情av| 亚洲色欲色欲www| 久久久99精品久久| 精品国产三级电影在线观看| 欧美肥妇bbw| 欧美性猛交xxxxxxxx| 97国产一区二区| 成人一级片网址| 韩日av一区二区| 精品中文字幕一区二区小辣椒| 日韩国产欧美一区二区三区| 夜夜夜精品看看| 亚洲蜜臀av乱码久久精品| 国产精品视频一二| 国产三级一区二区| 国产日本一区二区| 国产欧美日韩精品在线| 久久久久久久综合色一本| 久久综合久久综合亚洲| 26uuu久久综合| 久久理论电影网| 久久综合色综合88| 久久九九久精品国产免费直播| 久久一区二区三区四区| www国产精品av| 久久久久久久综合色一本| 久久久久久久久久看片| 国产校园另类小说区| 国产欧美精品区一区二区三区| 国产欧美精品国产国产专区| 国产精品毛片a∨一区二区三区| 国产午夜精品久久久久久免费视| 国产无人区一区二区三区| 国产欧美一区二区精品秋霞影院| 欧美韩日一区二区三区四区| 国产精品美女久久久久aⅴ国产馆| 成人免费在线视频观看| 亚洲精品综合在线| 性做久久久久久| 毛片一区二区三区| 国产成人aaa| 91老师国产黑色丝袜在线| 欧美亚洲自拍偷拍| 91.com视频| 久久综合久久鬼色中文字| 久久久久久久久久美女| 亚洲人成精品久久久久| 性做久久久久久久免费看| 老司机午夜精品| 成人精品亚洲人成在线| 欧美性生交片4| 欧美电视剧免费全集观看| 欧美激情在线观看视频免费| 亚洲视频免费在线观看| 日本成人在线视频网站| 国产成人精品www牛牛影视| 色综合天天综合狠狠| 欧美一区二区三区视频| 国产精品免费人成网站| 亚洲午夜精品久久久久久久久| 韩国av一区二区| 色综合色综合色综合色综合色综合| 欧美日韩久久久| 国产日韩欧美不卡在线| 亚洲一二三区不卡| 国产在线播放一区二区三区| 91麻豆国产在线观看| 精品久久久久av影院| 亚洲欧美激情插| 国产一区二区三区四| 欧美中文字幕一二三区视频| 久久综合色天天久久综合图片| 亚洲一区av在线| 国产成人午夜视频| 欧美久久久久久久久| 国产精品美女久久久久av爽李琼 | 欧美日韩一区不卡| 久久视频一区二区| 亚洲成人资源在线| 国产成人精品一区二区三区四区 | 亚洲福利视频一区| 国产1区2区3区精品美女| 91精品国产欧美一区二区成人| 国产精品嫩草影院com| 久久精品国产亚洲5555| 欧美性生活久久| 国产精品久久久久久久久久久免费看 | 欧美在线观看视频在线| 国产精品国产精品国产专区不蜜| 久久激情五月激情| 欧美日韩dvd在线观看| 亚洲柠檬福利资源导航| 成人动漫av在线| 久久亚洲免费视频| 蜜乳av一区二区| 欧美一级国产精品| 午夜精品视频一区| 精品视频1区2区| 一区二区视频在线| 91在线视频网址| 中文字幕一区二区三区精华液 | 午夜电影一区二区三区| 91在线观看下载| 日本一区二区视频在线观看| 久久精品免费观看| 91精选在线观看| 日本成人在线一区| 91.com在线观看| 日本成人中文字幕在线视频 | 91在线观看高清| 中文字幕欧美一| 91性感美女视频| 专区另类欧美日韩| 色婷婷综合久久久久中文一区二区| 国产精品理伦片| 91在线无精精品入口| 亚洲精品亚洲人成人网 | 欧美日韩电影一区| 亚洲午夜久久久久| 欧美美女一区二区在线观看| 五月激情综合婷婷| 91精品蜜臀在线一区尤物| 日本sm残虐另类| 日韩欧美成人一区二区| 极品少妇xxxx精品少妇| 久久久亚洲精华液精华液精华液| 国产呦精品一区二区三区网站| 久久婷婷国产综合精品青草| 大陆成人av片| 亚洲精品视频一区二区| 欧美日韩国产综合一区二区 | 国产亲近乱来精品视频| 丁香婷婷综合网| 亚洲欧美另类久久久精品| 欧美日韩国产一级二级| 免费成人在线观看| 久久精品夜夜夜夜久久| 成人app网站| 亚洲国产视频网站| 日韩视频免费观看高清完整版在线观看| 免费在线看成人av| 国产日韩欧美精品电影三级在线| 91丨国产丨九色丨pron| 午夜激情久久久| 国产婷婷一区二区| 91福利小视频| 精品亚洲成a人| 亚洲视频免费看| 精品国产一二三|