Skip to content

Fixes #45

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions parser.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
# -*- coding: utf8 -*-
# -*- coding: utf-8 -*-

import time
start_time = time.time()

import os
dir = os.path.dirname(__file__)

# get the parser
from pijnu import makeParser
preprocessorGrammar = file("preprocessor.pijnu").read()
preprocessorGrammar = file(os.path.join(dir, "preprocessor.pijnu")).read()
makeParser(preprocessorGrammar)

mediawikiGrammar = file("mediawiki.pijnu").read()
mediawikiGrammar = file(os.path.join(dir, "mediawiki.pijnu")).read()
makeParser(mediawikiGrammar)

allowed_tags = ['p', 'span', 'b', 'i', 'small', 'center']
Expand Down Expand Up @@ -67,4 +70,4 @@
file("article.htm", "w").write(output.encode('UTF-8'))

end_time = time.time()
print "Parsed and rendered in", end_time - start_time, "s."
print "Parsed and rendered in", end_time - start_time, "s."
6 changes: 3 additions & 3 deletions preprocessor.pijnu
Original file line number Diff line number Diff line change
Expand Up @@ -81,11 +81,11 @@ def replace_by_space(node):
optional_value : parameter_value?
parameter_equal : SPACETABEOL* EQUAL SPACETABEOL*
parameter_name : (!(esc_char/parameter_equal) raw_char)+ : join
named_parameter : parameter_name parameter_equal optional_value
named_parameter : parameter_name parameter_equal html_comment* optional_value
standalone_parameter : value_content? : join
parameter : SPACETABEOL* PIPE SPACETABEOL* (named_parameter/standalone_parameter) : liftValue
parameter : SPACETABEOL* PIPE SPACETABEOL* (named_parameter/standalone_parameter) html_comment* : liftValue
parameters : parameter*
template : TEMPLATE_BEGIN page_name parameters SPACETABEOL* TEMPLATE_END : substitute_template
template : TEMPLATE_BEGIN page_name html_comment* parameters SPACETABEOL* TEMPLATE_END : substitute_template

# inline allows to have templates/links inside templates/links

Expand Down
12 changes: 6 additions & 6 deletions preprocessorParser.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,11 @@
optional_value : parameter_value?
parameter_equal : SPACETABEOL* EQUAL SPACETABEOL*
parameter_name : (!(esc_char/parameter_equal) raw_char)+ : join
named_parameter : parameter_name parameter_equal optional_value
named_parameter : parameter_name parameter_equal html_comment* optional_value
standalone_parameter : value_content? : join
parameter : SPACETABEOL* PIPE SPACETABEOL* (named_parameter/standalone_parameter) : liftValue
parameter : SPACETABEOL* PIPE SPACETABEOL* (named_parameter/standalone_parameter) html_comment* : liftValue
parameters : parameter*
template : TEMPLATE_BEGIN page_name parameters SPACETABEOL* TEMPLATE_END : substitute_template
template : TEMPLATE_BEGIN page_name html_comment* parameters SPACETABEOL* TEMPLATE_END : substitute_template

# inline allows to have templates/links inside templates/links

Expand Down Expand Up @@ -223,11 +223,11 @@ def replace_by_space(node):
optional_value = Option(parameter_value, expression='parameter_value?', name='optional_value')
parameter_equal = Sequence([Repetition(SPACETABEOL, numMin=False, numMax=False, expression='SPACETABEOL*'), EQUAL, Repetition(SPACETABEOL, numMin=False, numMax=False, expression='SPACETABEOL*')], expression='SPACETABEOL* EQUAL SPACETABEOL*', name='parameter_equal')
parameter_name = Repetition(Sequence([NextNot(Choice([esc_char, parameter_equal], expression='esc_char/parameter_equal'), expression='!(esc_char/parameter_equal)'), raw_char], expression='!(esc_char/parameter_equal) raw_char'), numMin=1, numMax=False, expression='(!(esc_char/parameter_equal) raw_char)+', name='parameter_name')(toolset['join'])
named_parameter = Sequence([parameter_name, parameter_equal, optional_value], expression='parameter_name parameter_equal optional_value', name='named_parameter')
named_parameter = Sequence([parameter_name, parameter_equal, Repetition(html_comment, numMin=False, numMax=False, expression='html_comment*'), optional_value], expression='parameter_name parameter_equal html_comment* optional_value', name='named_parameter')
standalone_parameter = Option(value_content, expression='value_content?', name='standalone_parameter')(toolset['join'])
parameter = Sequence([Repetition(SPACETABEOL, numMin=False, numMax=False, expression='SPACETABEOL*'), PIPE, Repetition(SPACETABEOL, numMin=False, numMax=False, expression='SPACETABEOL*'), Choice([named_parameter, standalone_parameter], expression='named_parameter/standalone_parameter')], expression='SPACETABEOL* PIPE SPACETABEOL* (named_parameter/standalone_parameter)', name='parameter')(toolset['liftValue'])
parameter = Sequence([Repetition(SPACETABEOL, numMin=False, numMax=False, expression='SPACETABEOL*'), PIPE, Repetition(SPACETABEOL, numMin=False, numMax=False, expression='SPACETABEOL*'), Choice([named_parameter, standalone_parameter], expression='named_parameter/standalone_parameter'), Repetition(html_comment, numMin=False, numMax=False, expression='html_comment*')], expression='SPACETABEOL* PIPE SPACETABEOL* (named_parameter/standalone_parameter) html_comment*', name='parameter')(toolset['liftValue'])
parameters = Repetition(parameter, numMin=False, numMax=False, expression='parameter*', name='parameters')
template = Sequence([TEMPLATE_BEGIN, page_name, parameters, Repetition(SPACETABEOL, numMin=False, numMax=False, expression='SPACETABEOL*'), TEMPLATE_END], expression='TEMPLATE_BEGIN page_name parameters SPACETABEOL* TEMPLATE_END', name='template')(toolset['substitute_template'])
template = Sequence([TEMPLATE_BEGIN, page_name, Repetition(html_comment, numMin=False, numMax=False, expression='html_comment*'), parameters, Repetition(SPACETABEOL, numMin=False, numMax=False, expression='SPACETABEOL*'), TEMPLATE_END], expression='TEMPLATE_BEGIN page_name html_comment* parameters SPACETABEOL* TEMPLATE_END', name='template')(toolset['substitute_template'])

# inline allows to have templates/links inside templates/links

Expand Down