from pyparsing import * inum = Word(nums) ident = Word(alphas,alphas+nums) class Function(): def __init__(self,txt,func): self.func = func self.txt = txt print(str(self.txt),"-->",self.func.parseString(str(self.txt))) def Main_func(self): main = Word(alphanums)+Literal("main")+"("+")"+"{" return main# Не понял как сделать def Void_func(self): void = Literal("Void")+Regex(r"\w+")+"("+(Word(alphas)+ident+")")|")"+"{" return void def Bool_func(self): boolen = Literal("bool")+Regex(r"\w+")+"("+(Word(alphas)+ident+")")|")"+"{" return boolen class Parsing(): global inum, ident def __init__(self,txt,func): self.func = func self.txt = txt print(str(self.txt),"-->",self.func.parseString(str(self.txt))) def Include(self): include = Regex("#include")+"<"+Regex(".+>") return include def Using_namespace(self): using_namespace = Word(alphas)+Word(alphas)+Regex("\w+")+";" return using_namespace def Char(self): char = "char"+"["+(ident|inum)+"]"+";" return char def String(self): string = "string"+"("+(ident|inum)+")"+";" return string def Cout(self): cout = "cout"+"<<"+(sglQuotedString)+"<<"+";" return cout f = Function("Void qewe(int dfds){",Function.Void_func(0)) f = Function("bool qewe(int dfds){",Function.Bool_func(0)) f = Function("int main(){",Function.Void_func(0))# Не понял как сделать, не получилось print(f) p = Parsing("#include<sadfdsa/sfdsf.h>",Parsing.Include(0)) p = Parsing("using namespace std;",Parsing.Using_namespace(0)) p = Parsing("char[12];",Parsing.Char(0)) p = Parsing("string(123);",Parsing.String(0)) p = Parsing("cout<<'12'<<;",Parsing.Cout(0))
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question