Python应用:解析EditPlus的AS语法到FlashDevelop语法格式
FlashDevelop是最近偶尔发现的带代码提示功能的不错的轻量级AS编辑器。
不过其语法定义(在一个XML中)跟平时用的EditPlus不大一样,所以这里就可以用一个Python程序来转化一下语法格式。
一些主要的不同,就是EditPlus是每个关键字一行,FlashDevelop是若干个(约100个字符)一行,为尽可能与原格式保持一致,就用这个Py程序按照关键字分类重新组织一下:
[color="#008080"]# -=-=-=-=-=- read the file
[color="#000000"]sFnSrcStxFile[color="#00c600"]=[color="#000000"]r[color="#a6caf0"]"C:\Program Files\EditPlus 2\as2-dc_addLeapSter.stx"
[color="#000000"]fSrcStx[color="#00c600"]=[color="#808000"]file[color="#000000"](sFnSrcStxFile,[color="#a6caf0"]'r'[color="#000000"])
[color="#000000"]aSrcStx[color="#00c600"]=[color="#000000"]fSrcStx[color="#00c600"].[color="#808000"]readlines[color="#000000"]()
[color="#000000"]fSrcStx[color="#00c600"].[color="#808000"]close[color="#000000"]()
[color="#000000"]iLastLine[color="#00c600"]=[color="#000000"]796 [color="#008080"]# len(aSrcStx)-1
[color="#008080"]# -=-=-=-=-=- init the vars
[color="#000000"]iStartline[color="#00c600"]=[color="#000000"]42
[color="#000000"]iCurLine[color="#00c600"]=[color="#000000"]iStartline
[color="#000000"]sNewStx[color="#00c600"]=[color="#a6caf0"]''
[color="#000000"]iLineLenMax[color="#00c600"]=[color="#000000"]100
[color="#008080"]# -=-=-=-=-=- def
[color="#0000ff"]def [color="#000000"]produceByType():
[color="#0000ff"]global [color="#000000"]sNewStx,iCurLine
[color="#000000"]sNewStx[color="#00c600"]+=[color="#000000"]aSrcStx[iCurLine][color="#00c600"]+[color="#a6caf0"]'\n'
[color="#000000"]iCurLine[color="#00c600"]+=[color="#000000"]1
[color="#000000"]sLine[color="#00c600"]=[color="#a6caf0"]''
[color="#0000ff"]while [color="#00c600"]True[color="#000000"]:
[color="#0000ff"]print [color="#000000"]iLastLine
[color="#0000ff"]if[color="#000000"](iCurLine[color="#00c600"]>[color="#000000"]iLastLine):
[color="#0000ff"]return
[color="#0000ff"]if[color="#000000"](aSrcStx[iCurLine][color="#00c600"].[color="#800000"]find[color="#000000"]([color="#a6caf0"]"#KEYWORD"[color="#000000"])[color="#00c600"]==-[color="#000000"]1):
[color="#0000ff"]if[color="#000000"]([color="#808000"]len[color="#000000"](sLine)[color="#00c600"]+[color="#808000"]len[color="#000000"](aSrcStx[iCurLine])[color="#00c600"]-[color="#000000"]1)[color="#00c600"]