c++正则表达式,python

一个python中国列表的朋友给的
------------------------------------------------------------------------------------------------------------------------------------------
C++ grammar summary

Execution parts:

Well-known definitions: (They do only their business, any stuff not belong to them will be not processed)
blank: /s*
strictblank: /s+
number: OR:
           r"[/d]+",r"[.][/d]+",r"[/d]+[.][/d]*",
             r"[/d]+[.]?e(?:[+]|-|)[/d]+",r"[.]?[/d]+(?:e|E)(?:[+]|-|)[/d]+",
             r"[/d]+[.][/d]*e(?:[+]|-|)[/d]+",
             r"0[xX][0-9a-fA-F]+", #Hex number
             r"0[0-8]+", #Octal number
             r"'[^']+'"
string: "(?:[^//]|//.)+"
value: [bool|number|string]
literal: [a-zA-Z_][0-9a-zA-Z_]*
bool: [true|false]

Semi-atom level definitions: (iterates will process all begin blank but no after blanks will be processed)
type: literal (blank :: blank literal)*
valueiterate: (blank(operators|operator,|value|literal| [(] strictvalueiterate blank [)]))*
strictvalueiterate: (blank(operators|operator,|value|literal| [(] strictvalueiterate blank [)]))+
passvalueiterate: (blank(operators|value|literal| [(] strictvalueiterate blank [)]))*
strictpassvalueiterate: (blank(operators|value|literal| [(] strictvalueiterate blank [)]))+
operators: OR:
               "new","delete","delete" blank [ blank ],"++","--","<<",">>",
               "!","&&","||",">=","<=",">","<","!=","==",
               "+=","-=","*=","/=","%=",
               "^=","&=","|=",
               "->",",",
               ".","::",
               "^","&","|","~",             
               "+","-","*","/","%",
               "[","]","(",")"

assignname: (blank [*|&])* blank literal (blank [ blank /d* blank ] )*

assignvaluector: blank [(] (blank strictpassvalueiterate (blank , blank strictpassvalueiterate)+)? [)]
assignvaluecopy: blank = blank strictpassvalueiterate
assignvaluevoid:
assignvalue: ( assignvaluector | assignvaluecopy | )
valuesingledefinition: blank type blank assignname (assignvaluector | assignvaluevoid)

functionspecifier: (blank [inline|virtual|explicit|auto|register|static|extern|mutable|extern|static])*

Atom level definitions: (Every thing that can be treated as a language sentence) (only begin either)
valueblock: valueiterate blank ;
if: blank "if/b" blank ( strictvalueiterate blank ) [sentencelite|sentenceblock]
for: blank "for/b" blank ( [valuesingledefinition|passvalueiterate] blank ; passvalueiterate blank ; passvalueiterate blank ) [sentencelite|sentenceblock]
while: blank "while/b" blank ( strictvalueiterate blank ) [sentencelite|sentenceblock]
do: blank "do/b" blank sentenceblock blank while blank ( strictvalueiterate blank ) blank ;
break: blank "break/b" blank ;
return: blank "return/b" [strictvalueiterate|] blank ;

sentencelite: blank [break|return|valueiterate blank ;]
valueassign: blank type blank assignname assignvalue (blank , assignname assignvalue)* blank ;
sentence: [sentencelite|valueassign]

Segments: (only begin either)
sentenceblock: blank { blank (sentence)* blank }
structblock: blank { blank [public:|private:|valueassign|function|struct|structdef] blank }

First class objects:
function: blank functionspecifier blank type blank ( blank (valuesingledefinition (blank , valuesingledefinition)* )? blank )
          [(blank : blank type blank "(" sentence blank ")" (blank , blank type blank "(" sentence blank ")")*)? sentenceblock|;|= blank 0 blank ;]
namespace: blank "namespace" blank literal blank { blank document blank }
usenamespace: blank use blank "namespace" blank literal blank ;
struct: blank ["struct"|class|union] blank literal [blank : (blank [public|private|protected|] blank literal (blank , blank [public|private|protected|] blank literal)*)? structblock ( blank assignname assignvalue (blank , assignname assignvalue)*)? blank ;
structdef: blank ["struct"|class|union] blank literal blank ;
document: (blank [ valueassign|function|namespace|struct|structdef ])* 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值