PATH: //opt/alt/python311/share/doc/alt-python311-pyparsing-doc/examples
FILE_BARU
CREATE
FOLDER_BARU
MKDIR
UPLOAD_FILE
GO
[ .. KEMBALI ]
📄 0README.html
↓
X
📄 AcManForm.dfm
↓
X
📄 LAparser.py
↓
X
📄 Setup.ini
↓
X
📄 SimpleCalc.py
↓
X
📄 SingleForm.dfm
↓
X
📄 TAP.py
↓
X
📄 __init__.py
↓
X
📁 __pycache__/
X
📄 adventureEngine.py
↓
X
📄 antlr_grammar.py
↓
X
📄 antlr_grammar_tests.py
↓
X
📄 apicheck.py
↓
X
📄 bigquery_view_parser.py
↓
X
📄 booleansearchparser.py
↓
X
📄 btpyparse.py
↓
X
📄 builtin_parse_action_demo.py
↓
X
📄 cLibHeader.py
↓
X
📄 chemicalFormulas.py
↓
X
📄 commasep.py
↓
X
📄 configParse.py
↓
X
📄 cpp_enum_parser.py
↓
X
📄 cuneiform_python.py
↓
X
📄 datetimeParseActions.py
↓
X
📄 decaf_parser.py
↓
X
📄 delta_time.py
↓
X
📄 dfmparse.py
↓
X
📄 dhcpd_leases_parser.py
↓
X
📄 dictExample.py
↓
X
📄 dictExample2.py
↓
X
📄 ebnf.py
↓
X
📄 ebnftest.py
↓
X
📄 eval_arith.py
↓
X
📄 excelExpr.py
↓
X
📄 fourFn.py
↓
X
📄 gen_ctypes.py
↓
X
📄 getNTPserversNew.py
↓
X
📄 greeting.py
↓
X
📄 greetingInGreek.py
↓
X
📄 greetingInKorean.py
↓
X
📄 groupUsingListAllMatches.py
↓
X
📄 holaMundo.py
↓
X
📄 htmlStripper.py
↓
X
📄 htmlTableParser.py
↓
X
📄 httpServerLogParser.py
↓
X
📄 idlParse.py
↓
X
📄 include_preprocessor.py
↓
X
📄 indentedGrammarExample.py
↓
X
📄 indented_block_example.py
↓
X
📄 invRegex.py
↓
X
📄 javascript_grammar.g
↓
X
📄 jsonParser.py
↓
X
📄 left_recursion.py
↓
X
📄 linenoExample.py
↓
X
📄 listAllMatches.py
↓
X
📄 lua_parser.py
↓
X
📄 lucene_grammar.py
↓
X
📄 macroExpander.py
↓
X
📄 make_diagram.py
↓
X
📄 matchPreviousDemo.py
↓
X
📄 mozilla.ics
↓
X
📄 mozillaCalendarParser.py
↓
X
📄 nested.py
↓
X
📄 nested_markup.py
↓
X
📄 number_words.py
↓
X
📄 numerics.py
↓
X
📄 oc.py
↓
X
📄 one_to_ninety_nine.py
↓
X
📄 parsePythonValue.py
↓
X
📄 parseResultsSumExample.py
↓
X
📄 parseTabularData.py
↓
X
📄 partial_gene_match.py
↓
X
📄 pgn.py
↓
X
📄 position.py
↓
X
📄 protobuf_parser.py
↓
X
📄 pymicko.py
↓
X
📄 pythonGrammarParser.py
↓
X
📄 railroad_diagram_demo.py
↓
X
📄 rangeCheck.py
↓
X
📄 readJson.py
↓
X
📄 removeLineBreaks.py
↓
X
📄 romanNumerals.py
↓
X
📄 rosettacode.py
↓
X
📄 scanExamples.py
↓
X
📄 searchParserAppDemo.py
↓
X
📄 searchparser.py
↓
X
📄 select_parser.py
↓
X
📄 sexpParser.py
↓
X
📄 shapes.py
↓
X
📄 simpleArith.py
↓
X
📄 simpleBool.py
↓
X
📄 simpleSQL.py
↓
X
📄 simpleWiki.py
↓
X
📄 snmp_api.h
↓
X
📄 sparser.py
↓
X
📄 sql2dot.py
↓
X
📄 stackish.py
↓
X
📁 statemachine/
X
📄 test_bibparse.py
↓
X
📄 unicode_denormalizer.py
↓
X
📄 urlExtractor.py
↓
X
📄 urlExtractorNew.py
↓
X
📁 verilog/
X
📄 verilogParse.py
↓
X
📄 withAttribute.py
↓
X
📄 wordsToNum.py
↓
X
SAVING...
BERHASIL DIUBAH!
EDITING: oc.py
# oc.py # # A subset-C parser, (BNF taken from 1996 International Obfuscated C Code Contest) # # Copyright, 2010, Paul McGuire # """ https://www.ioccc.org/1996/august.hint The following is a description of the OC grammar: OC grammar ========== Terminals are in quotes, () is used for bracketing. program: decl* decl: vardecl fundecl vardecl: type NAME ; type NAME "[" INT "]" ; fundecl: type NAME "(" args ")" "{" body "}" args: /*empty*/ ( arg "," )* arg arg: type NAME body: vardecl* stmt* stmt: ifstmt whilestmt dowhilestmt "return" expr ";" expr ";" "{" stmt* "}" ";" ifstmt: "if" "(" expr ")" stmt "if" "(" expr ")" stmt "else" stmt whilestmt: "while" "(" expr ")" stmt dowhilestmt: "do" stmt "while" "(" expr ")" ";" expr: expr binop expr unop expr expr "[" expr "]" "(" expr ")" expr "(" exprs ")" NAME INT CHAR STRING exprs: /*empty*/ (expr ",")* expr binop: "+" | "-" | "*" | "/" | "%" | "=" | "<" | "==" | "!=" unop: "!" | "-" | "*" type: "int" stars "char" stars stars: "*"* """ from pyparsing import * ParserElement.enablePackrat() LPAR, RPAR, LBRACK, RBRACK, LBRACE, RBRACE, SEMI, COMMA = map(Suppress, "()[]{};,") INT, CHAR, WHILE, DO, IF, ELSE, RETURN = map( Keyword, "int char while do if else return".split() ) NAME = Word(alphas + "_", alphanums + "_") integer = Regex(r"[+-]?\d+") char = Regex(r"'.'") string_ = dblQuotedString TYPE = Group((INT | CHAR) + ZeroOrMore("*")) expr = Forward() func_call = Group(NAME + LPAR + Group(Optional(delimitedList(expr))) + RPAR) operand = func_call | NAME | integer | char | string_ expr <<= infixNotation( operand, [ (oneOf("! - *"), 1, opAssoc.RIGHT), (oneOf("++ --"), 1, opAssoc.RIGHT), (oneOf("++ --"), 1, opAssoc.LEFT), (oneOf("* / %"), 2, opAssoc.LEFT), (oneOf("+ -"), 2, opAssoc.LEFT), (oneOf("< == > <= >= !="), 2, opAssoc.LEFT), (Regex(r"(?<!=)=(?!=)"), 2, opAssoc.LEFT), ], ) + Optional( LBRACK + expr + RBRACK | LPAR + Group(Optional(delimitedList(expr))) + RPAR ) stmt = Forward() ifstmt = IF - LPAR + expr + RPAR + stmt + Optional(ELSE + stmt) whilestmt = WHILE - LPAR + expr + RPAR + stmt dowhilestmt = DO - stmt + WHILE + LPAR + expr + RPAR + SEMI returnstmt = RETURN - expr + SEMI stmt << Group( ifstmt | whilestmt | dowhilestmt | returnstmt | expr + SEMI | LBRACE + ZeroOrMore(stmt) + RBRACE | SEMI ) vardecl = Group(TYPE + NAME + Optional(LBRACK + integer + RBRACK)) + SEMI arg = Group(TYPE + NAME) body = ZeroOrMore(vardecl) + ZeroOrMore(stmt) fundecl = Group( TYPE + NAME + LPAR + Optional(Group(delimitedList(arg))) + RPAR + LBRACE + Group(body) + RBRACE ) decl = fundecl | vardecl program = ZeroOrMore(decl) program.ignore(cStyleComment) # set parser element names for vname in ( "ifstmt whilestmt dowhilestmt returnstmt TYPE " "NAME fundecl vardecl program arg body stmt".split() ): v = vars()[vname] v.setName(vname) # ~ for vname in "fundecl stmt".split(): # ~ v = vars()[vname] # ~ v.setDebug() def main(): test = r""" /* A factorial program */ int putstr(char *s) { while(*s) putchar(*s++); } int fac(int n) { if (n == 0) return 1; else return n*fac(n-1); } int putn(int n) { if (9 < n) putn(n / 10); putchar((n%10) + '0'); } int facpr(int n) { putstr("factorial "); putn(n); putstr(" = "); putn(fac(n)); putstr("\n"); } int main() { int i; i = 0; if(a() == 1){} while(i < 10) facpr(i++); return 0; } """ ast = program.parseString(test, parseAll=True) ast.pprint() if __name__ == "__main__": main()
SIMPAN PERUBAHAN