summaryrefslogtreecommitdiff
path: root/trunk/src/examples/ebnftest.py
diff options
context:
space:
mode:
authorptmcg <ptmcg@9bf210a0-9d2d-494c-87cf-cfb32e7dff7b>2016-08-09 21:50:19 +0000
committerptmcg <ptmcg@9bf210a0-9d2d-494c-87cf-cfb32e7dff7b>2016-08-09 21:50:19 +0000
commit0b19bb71ba5a4afa84e673a8239935426fa0db23 (patch)
treee9abae9c616fdfdfebd9a8a0931d8f21824f30d2 /trunk/src/examples/ebnftest.py
parentb2c3ade75384efe76b8774b607e17fe98fab92ef (diff)
downloadpyparsing_2.1.6.tar.gz
Remove incorrect tag directorypyparsing_2.1.6
git-svn-id: svn://svn.code.sf.net/p/pyparsing/code/tags/pyparsing_2.1.6@405 9bf210a0-9d2d-494c-87cf-cfb32e7dff7b
Diffstat (limited to 'trunk/src/examples/ebnftest.py')
-rw-r--r--trunk/src/examples/ebnftest.py66
1 files changed, 0 insertions, 66 deletions
diff --git a/trunk/src/examples/ebnftest.py b/trunk/src/examples/ebnftest.py
deleted file mode 100644
index 32c7fed..0000000
--- a/trunk/src/examples/ebnftest.py
+++ /dev/null
@@ -1,66 +0,0 @@
-print('Importing pyparsing...')
-from pyparsing import *
-
-print('Constructing EBNF parser with pyparsing...')
-import ebnf
-import sets
-
-
-grammar = '''
-syntax = (syntax_rule), {(syntax_rule)};
-syntax_rule = meta_identifier, '=', definitions_list, ';';
-definitions_list = single_definition, {'|', single_definition};
-single_definition = syntactic_term, {',', syntactic_term};
-syntactic_term = syntactic_factor,['-', syntactic_factor];
-syntactic_factor = [integer, '*'], syntactic_primary;
-syntactic_primary = optional_sequence | repeated_sequence |
- grouped_sequence | meta_identifier | terminal_string;
-optional_sequence = '[', definitions_list, ']';
-repeated_sequence = '{', definitions_list, '}';
-grouped_sequence = '(', definitions_list, ')';
-(*
-terminal_string = "'", character - "'", {character - "'"}, "'" |
- '"', character - '"', {character - '"'}, '"';
- meta_identifier = letter, {letter | digit};
-integer = digit, {digit};
-*)
-'''
-
-table = {}
-#~ table['character'] = Word(printables, exact=1)
-#~ table['letter'] = Word(alphas + '_', exact=1)
-#~ table['digit'] = Word(nums, exact=1)
-table['terminal_string'] = sglQuotedString
-table['meta_identifier'] = Word(alphas+"_", alphas+"_"+nums)
-table['integer'] = Word(nums)
-
-print('Parsing EBNF grammar with EBNF parser...')
-parsers = ebnf.parse(grammar, table)
-ebnf_parser = parsers['syntax']
-
-commentcharcount = 0
-commentlocs = sets.Set()
-def tallyCommentChars(s,l,t):
- global commentcharcount,commentlocs
- # only count this comment if we haven't seen it before
- if l not in commentlocs:
- charCount = ( len(t[0]) - len(list(filter(str.isspace, t[0]))) )
- commentcharcount += charCount
- commentlocs.add(l)
- return l,t
-
-#ordinarily, these lines wouldn't be necessary, but we are doing extra stuff with the comment expression
-ebnf.ebnfComment.setParseAction( tallyCommentChars )
-ebnf_parser.ignore( ebnf.ebnfComment )
-
-print('Parsing EBNF grammar with generated EBNF parser...\n')
-parsed_chars = ebnf_parser.parseString(grammar)
-parsed_char_len = len(parsed_chars)
-
-print("],\n".join(str( parsed_chars.asList() ).split("],")))
-
-#~ grammar_length = len(grammar) - len(filter(str.isspace, grammar))-commentcharcount
-
-#~ assert parsed_char_len == grammar_length
-
-print('Ok!')