summaryrefslogtreecommitdiff
path: root/trunk/src/examples/matchPreviousDemo.py
diff options
context:
space:
mode:
authorptmcg <ptmcg@9bf210a0-9d2d-494c-87cf-cfb32e7dff7b>2016-08-09 00:23:49 +0000
committerptmcg <ptmcg@9bf210a0-9d2d-494c-87cf-cfb32e7dff7b>2016-08-09 00:23:49 +0000
commitb2c3ade75384efe76b8774b607e17fe98fab92ef (patch)
treeb162262f3f0a4bc976d45bed08ccfc6cc9a2eb23 /trunk/src/examples/matchPreviousDemo.py
parent0be19d2d8545f1ac4b93ffd0d10524613837ba39 (diff)
downloadpyparsing-b2c3ade75384efe76b8774b607e17fe98fab92ef.tar.gz
TagTag for 2.1.6 release
git-svn-id: svn://svn.code.sf.net/p/pyparsing/code/tags/pyparsing_2.1.6@402 9bf210a0-9d2d-494c-87cf-cfb32e7dff7b
Diffstat (limited to 'trunk/src/examples/matchPreviousDemo.py')
-rw-r--r--trunk/src/examples/matchPreviousDemo.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/trunk/src/examples/matchPreviousDemo.py b/trunk/src/examples/matchPreviousDemo.py
new file mode 100644
index 0000000..f0812e9
--- /dev/null
+++ b/trunk/src/examples/matchPreviousDemo.py
@@ -0,0 +1,33 @@
+#
+# matchPreviousDemo.py
+#
+
+from pyparsing import *
+
+src = """
+class a
+...
+end a;
+
+class b
+...
+end b;
+
+class c
+...
+end d;"""
+
+
+identifier = Word(alphas)
+
+classIdent = identifier("classname") # note that this also makes a copy of identifier
+classHead = "class" + classIdent
+classBody = "..."
+classEnd = "end" + matchPreviousLiteral(classIdent) + ';'
+classDefn = classHead + classBody + classEnd
+
+# use this form to catch syntax error
+# classDefn = classHead + classBody - classEnd
+
+for tokens in classDefn.searchString(src):
+ print(tokens.classname) \ No newline at end of file