+++ /dev/null
-# Begin -- grammar generated by Yapps
-import sys, re
-import yapps.yappsrt as yappsrt
-
-class wiki2beamerScanner(yappsrt.Scanner):
- patterns = [
- ('END', re.compile('$')),
- ('SPACE', re.compile('[ \\t]+')),
- ('NEWLINE', re.compile('\\r?\\n')),
- ('PARBREAK', re.compile('(\\r?\\n|^)((\\r?\\n)+)')),
- ('NUM', re.compile('[0-9]+')),
- ('WORD', re.compile('[a-zA-Z]+')),
- ('PUNCTUATION', re.compile('(,|\\.|\\?|:|;|"|\'|`|\xc2\xb4|\\\\[|\\\\]|\\\\<|\\\\>)+')),
- ('MINUS', re.compile('-')),
- ('COMMA', re.compile(',')),
- ('LATEX_COMMAND_NAME', re.compile('\\\\([a-zA-Z]+)')),
- ('BRACKET_CURLY_L', re.compile('{')),
- ('BRACKET_CURLY_R', re.compile('}')),
- ('BRACKET_ANGLE_L', re.compile('<')),
- ('BRACKET_ANGLE_R', re.compile('>')),
- ('BRACKET_SQUARE_L', re.compile('\\[')),
- ('BRACKET_SQUARE_R', re.compile('\\]')),
- ('W2B_H2_L', re.compile('==')),
- ('W2B_H2_R', re.compile('==')),
- ('W2B_H3_L', re.compile('===')),
- ('W2B_H3_R', re.compile('===')),
- ('W2B_H4_L', re.compile('====')),
- ('W2B_H4_R', re.compile('====')),
- ('W2B_ENDFRAME', re.compile('\\[frame\\]>')),
- ('OVERLAY_SPEC_SIMPLE', re.compile('[0-9-, \\t]+')),
- ('W2B_UL', re.compile('\\*')),
- ('W2B_OL', re.compile('#')),
- ('W2B_ESC_EXCLM', re.compile('\\\\!')),
- ('W2B_ALERT_L', re.compile('!')),
- ('W2B_ALERT_R', re.compile('!')),
- ('W2B_ALERT_IN', re.compile('[^!\\r\\n]*')),
- ('W2B_BOLD_L', re.compile("'''")),
- ('W2B_BOLD_R', re.compile("'''")),
- ('W2B_BOLD_IN', re.compile("[^'\\r\\n]*")),
- ('W2B_ITALIC_L', re.compile("''")),
- ('W2B_ITALIC_R', re.compile("''")),
- ('W2B_ITALIC_IN', re.compile("[^'\\r\\n]*")),
- ('W2B_ESC_AT', re.compile('\\\\@')),
- ('W2B_TEXTTT_L', re.compile('@')),
- ('W2B_TEXTTT_R', re.compile('@')),
- ('W2B_TEXTTT_IN', re.compile('[^@\\r\\n]*')),
- ('W2B_TEXTCOLOR_L', re.compile('_')),
- ('W2B_TEXTCOLOR_COLOR', re.compile('[^_\\r\\n]*')),
- ('W2B_TEXTCOLOR_MID', re.compile('_')),
- ('W2B_TEXTCOLOR_IN', re.compile('[^_\\r\\n]*')),
- ('W2B_TEXTCOLOR_R', re.compile('_')),
- ('W2B_VSPACE_L', re.compile('--')),
- ('W2B_VSPACE_R', re.compile('--')),
- ('W2B_VSPACE_IN', re.compile('[^-\\r\\n]*')),
- ('W2B_VSPACESTAR_L', re.compile('--\\*')),
- ('W2B_ENV_NAME', re.compile('[a-zA-Z]+')),
- ('W2B_ENV_OPEN_L', re.compile('<\\[')),
- ('W2B_ENV_OPEN_R', re.compile('\\]')),
- ('W2B_ENV_CLOSE_L', re.compile('\\[')),
- ('W2B_ENV_CLOSE_R', re.compile('\\]>')),
- ('W2B_AUTOTEMPLATE_OPEN', re.compile('<\\[[ \\t]*autotemplate[ \\t]*\\]')),
- ('W2B_AUTOTEMPLATE_CLOSE', re.compile('\\[[ \\t]*autotemplate[ \\t]*\\]>')),
- ('W2B_AUTOTEMPLATE_IN', re.compile('[\\n\\r\\sa-zA-Z]*')),
- ('W2B_NOWIKI_OPEN', re.compile('<\\[[ \\t]*nowiki[ \\t]*\\]')),
- ('W2B_NOWIKI_CLOSE', re.compile('\\[[ \\t]*nowiki[ \\t]*\\]>')),
- ('W2B_NOWIKI_IN', re.compile('(\\\\<|\\\\>|\\\\\\[|\\\\\\]|[^\\[\\]<>])*')),
- ]
- def __init__(self, str):
- yappsrt.Scanner.__init__(self,None,[],str)
-
-class wiki2beamer(yappsrt.Parser):
- Context = yappsrt.Context
- def document(self, _parent=None):
- _context = self.Context(_parent, self._scanner, self._pos, 'document', [])
- result = []
- while self._peek('END', 'PARBREAK', 'W2B_UL', 'W2B_OL', 'WORD', 'NUM', 'SPACE', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L') != 'END':
- _token = self._peek('PARBREAK', 'W2B_UL', 'W2B_OL', 'WORD', 'NUM', 'SPACE', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L')
- if _token == 'PARBREAK':
- PARBREAK = self._scan('PARBREAK')
- result.append(('PARBREAK', PARBREAK))
- else:
- paragraph = self.paragraph(_context)
- result.append(paragraph)
- if self._peek() not in ['END', 'PARBREAK', 'W2B_UL', 'W2B_OL', 'WORD', 'NUM', 'SPACE', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L']:
- raise yappsrt.SyntaxError(charpos=self._scanner.get_prev_char_pos(), context=_context, msg='Need one of ' + ', '.join(['PARBREAK', 'END', 'W2B_UL', 'W2B_OL', 'WORD', 'NUM', 'SPACE', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L']))
- END = self._scan('END')
- result.append(('END',))
- return result
-
- def paragraph(self, _parent=None):
- _context = self.Context(_parent, self._scanner, self._pos, 'paragraph', [])
- result = None
- _token = self._peek('W2B_UL', 'W2B_OL', 'WORD', 'NUM', 'SPACE', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L')
- if _token not in ['W2B_UL', 'W2B_OL']:
- w2b_textblock = self.w2b_textblock(_context)
- result = w2b_textblock
- else: # in ['W2B_UL', 'W2B_OL']
- w2b_listblock = self.w2b_listblock(_context)
- result = w2b_listblock
- return ('PARAGRAPH', result)
-
- def w2b_nowiki(self, _parent=None):
- _context = self.Context(_parent, self._scanner, self._pos, 'w2b_nowiki', [])
- W2B_NOWIKI_OPEN = self._scan('W2B_NOWIKI_OPEN')
- W2B_NOWIKI_IN = self._scan('W2B_NOWIKI_IN')
- W2B_NOWIKI_CLOSE = self._scan('W2B_NOWIKI_CLOSE')
- return ('W2B_NOWIKI', W2B_NOWIKI_IN)
-
- def w2b_autotemplate(self, _parent=None):
- _context = self.Context(_parent, self._scanner, self._pos, 'w2b_autotemplate', [])
- W2B_AUTOTEMPLATE_OPEN = self._scan('W2B_AUTOTEMPLATE_OPEN')
- W2B_AUTOTEMPLATE_IN = self._scan('W2B_AUTOTEMPLATE_IN')
- W2B_AUTOTEMPLATE_CLOSE = self._scan('W2B_AUTOTEMPLATE_CLOSE')
- return ('AUTOTEMPLATE', W2B_AUTOTEMPLATE_IN)
-
- def w2b_textblock(self, _parent=None):
- _context = self.Context(_parent, self._scanner, self._pos, 'w2b_textblock', [])
- result = []
- w2b_single_line = self.w2b_single_line(_context)
- result.append(w2b_single_line)
- if self._peek('NEWLINE', 'WORD', 'NUM', 'SPACE', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L', 'PARBREAK', 'END', 'W2B_UL', 'W2B_OL') == 'NEWLINE':
- NEWLINE = self._scan('NEWLINE')
- result.append(('NEWLINE', NEWLINE))
- while self._peek('WORD', 'NUM', 'SPACE', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L', 'PARBREAK', 'END', 'W2B_UL', 'W2B_OL') not in ['PARBREAK', 'END', 'W2B_UL', 'W2B_OL']:
- w2b_single_line = self.w2b_single_line(_context)
- result.append(w2b_single_line)
- if self._peek('NEWLINE', 'WORD', 'NUM', 'SPACE', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L', 'PARBREAK', 'END', 'W2B_UL', 'W2B_OL') == 'NEWLINE':
- NEWLINE = self._scan('NEWLINE')
- result.append(('NEWLINE', NEWLINE))
- if self._peek() not in ['WORD', 'NUM', 'SPACE', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L', 'PARBREAK', 'END', 'W2B_UL', 'W2B_OL']:
- raise yappsrt.SyntaxError(charpos=self._scanner.get_prev_char_pos(), context=_context, msg='Need one of ' + ', '.join(['WORD', 'NUM', 'SPACE', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L', 'PARBREAK', 'END', 'W2B_UL', 'W2B_OL']))
- return ('W2B_TEXTBLOCK', result)
-
- def w2b_listblock(self, _parent=None):
- _context = self.Context(_parent, self._scanner, self._pos, 'w2b_listblock', [])
- result = []
- _token = self._peek('W2B_UL', 'W2B_OL')
- if _token == 'W2B_UL':
- W2B_UL = self._scan('W2B_UL')
- result.append(('W2B_UL', W2B_UL))
- else: # == 'W2B_OL'
- W2B_OL = self._scan('W2B_OL')
- result.append(('W2B_OL', W2B_OL))
- while self._peek('W2B_UL', 'W2B_OL', 'SPACE', 'BRACKET_ANGLE_L', 'PARBREAK', 'END', 'WORD', 'NUM', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L') in ['W2B_UL', 'W2B_OL', 'SPACE', 'BRACKET_ANGLE_L']:
- while self._peek('W2B_UL', 'W2B_OL', 'SPACE', 'BRACKET_ANGLE_L') in ['W2B_UL', 'W2B_OL']:
- _token = self._peek('W2B_UL', 'W2B_OL')
- if _token == 'W2B_UL':
- W2B_UL = self._scan('W2B_UL')
- result.append(('W2B_UL', W2B_UL))
- else: # == 'W2B_OL'
- W2B_OL = self._scan('W2B_OL')
- result.append(('W2B_OL', W2B_OL))
- if self._peek() not in ['W2B_UL', 'W2B_OL', 'SPACE', 'BRACKET_ANGLE_L']:
- raise yappsrt.SyntaxError(charpos=self._scanner.get_prev_char_pos(), context=_context, msg='Need one of ' + ', '.join(['W2B_UL', 'W2B_OL', 'SPACE', 'BRACKET_ANGLE_L']))
- if self._peek('SPACE', 'BRACKET_ANGLE_L') == 'BRACKET_ANGLE_L':
- overlay_spec = self.overlay_spec(_context)
- result.append(overlay_spec)
- SPACE = self._scan('SPACE')
- result.append(('SPACE', SPACE))
- w2b_single_line = self.w2b_single_line(_context)
- result.append(w2b_single_line)
- if self._peek('NEWLINE', 'W2B_UL', 'W2B_OL', 'SPACE', 'BRACKET_ANGLE_L', 'PARBREAK', 'END', 'WORD', 'NUM', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L') == 'NEWLINE':
- NEWLINE = self._scan('NEWLINE')
- result.append(('NEWLINE', NEWLINE))
- _token = self._peek('W2B_UL', 'W2B_OL')
- if _token == 'W2B_UL':
- W2B_UL = self._scan('W2B_UL')
- result.append(('W2B_UL', W2B_UL))
- else: # == 'W2B_OL'
- W2B_OL = self._scan('W2B_OL')
- result.append(('W2B_OL', W2B_OL))
- if self._peek() not in ['W2B_UL', 'W2B_OL', 'SPACE', 'BRACKET_ANGLE_L', 'PARBREAK', 'END', 'WORD', 'NUM', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L']:
- raise yappsrt.SyntaxError(charpos=self._scanner.get_prev_char_pos(), context=_context, msg='Need one of ' + ', '.join(['W2B_UL', 'W2B_OL', 'SPACE', 'BRACKET_ANGLE_L', 'PARBREAK', 'END', 'WORD', 'NUM', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L']))
- return ('W2B_LIST_BLOCK', result)
-
- def w2b_single_line(self, _parent=None):
- _context = self.Context(_parent, self._scanner, self._pos, 'w2b_single_line', [])
- result = []
- _token = self._peek('WORD', 'NUM', 'SPACE', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L')
- if _token == 'WORD':
- WORD = self._scan('WORD')
- result.append(('WORD', WORD))
- elif _token == 'NUM':
- NUM = self._scan('NUM')
- result.append(('NUM', NUM))
- elif _token == 'SPACE':
- SPACE = self._scan('SPACE')
- result.append(('SPACE', SPACE))
- elif _token in ['W2B_ESC_AT', 'W2B_ESC_EXCLM']:
- w2b_escape_seq = self.w2b_escape_seq(_context)
- result.append(w2b_escape_seq)
- elif _token == 'W2B_ALERT_L':
- w2b_text_alert = self.w2b_text_alert(_context)
- result.append(w2b_text_alert)
- elif _token == 'W2B_BOLD_L':
- w2b_text_bold = self.w2b_text_bold(_context)
- result.append(w2b_text_bold)
- elif _token == 'W2B_ITALIC_L':
- w2b_text_italic = self.w2b_text_italic(_context)
- result.append(w2b_text_italic)
- elif _token == 'W2B_TEXTTT_L':
- w2b_text_texttt = self.w2b_text_texttt(_context)
- result.append(w2b_text_texttt)
- elif _token == 'W2B_TEXTCOLOR_L':
- w2b_text_textcolor = self.w2b_text_textcolor(_context)
- result.append(w2b_text_textcolor)
- elif _token == 'W2B_VSPACE_L':
- w2b_vspace = self.w2b_vspace(_context)
- result.append(w2b_vspace)
- elif _token == 'W2B_VSPACESTAR_L':
- w2b_vspacestar = self.w2b_vspacestar(_context)
- result.append(w2b_vspacestar)
- elif _token == 'W2B_ENV_OPEN_L':
- w2b_env_open = self.w2b_env_open(_context)
- result.append(w2b_env_open)
- elif _token == 'W2B_ENV_CLOSE_L':
- w2b_env_close = self.w2b_env_close(_context)
- result.append(w2b_env_close)
- elif _token == 'W2B_NOWIKI_OPEN':
- w2b_nowiki = self.w2b_nowiki(_context)
- result.append(w2b_nowiki)
- else: # == 'PUNCTUATION'
- PUNCTUATION = self._scan('PUNCTUATION')
- result.append(('PUNCTUATION', PUNCTUATION))
- while self._peek('WORD', 'NUM', 'SPACE', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L', 'NEWLINE', 'W2B_UL', 'W2B_OL', 'BRACKET_ANGLE_L', 'PARBREAK', 'END') not in ['NEWLINE', 'W2B_UL', 'W2B_OL', 'BRACKET_ANGLE_L', 'PARBREAK', 'END']:
- _token = self._peek('WORD', 'NUM', 'SPACE', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L')
- if _token == 'WORD':
- WORD = self._scan('WORD')
- result.append(('WORD', WORD))
- elif _token == 'NUM':
- NUM = self._scan('NUM')
- result.append(('NUM', NUM))
- elif _token == 'SPACE':
- SPACE = self._scan('SPACE')
- result.append(('SPACE', SPACE))
- elif _token in ['W2B_ESC_AT', 'W2B_ESC_EXCLM']:
- w2b_escape_seq = self.w2b_escape_seq(_context)
- result.append(w2b_escape_seq)
- elif _token == 'W2B_ALERT_L':
- w2b_text_alert = self.w2b_text_alert(_context)
- result.append(w2b_text_alert)
- elif _token == 'W2B_BOLD_L':
- w2b_text_bold = self.w2b_text_bold(_context)
- result.append(w2b_text_bold)
- elif _token == 'W2B_ITALIC_L':
- w2b_text_italic = self.w2b_text_italic(_context)
- result.append(w2b_text_italic)
- elif _token == 'W2B_TEXTTT_L':
- w2b_text_texttt = self.w2b_text_texttt(_context)
- result.append(w2b_text_texttt)
- elif _token == 'W2B_TEXTCOLOR_L':
- w2b_text_textcolor = self.w2b_text_textcolor(_context)
- result.append(w2b_text_textcolor)
- elif _token == 'W2B_VSPACE_L':
- w2b_vspace = self.w2b_vspace(_context)
- result.append(w2b_vspace)
- elif _token == 'W2B_VSPACESTAR_L':
- w2b_vspacestar = self.w2b_vspacestar(_context)
- result.append(w2b_vspacestar)
- elif _token == 'W2B_ENV_OPEN_L':
- w2b_env_open = self.w2b_env_open(_context)
- result.append(w2b_env_open)
- elif _token == 'W2B_ENV_CLOSE_L':
- w2b_env_close = self.w2b_env_close(_context)
- result.append(w2b_env_close)
- elif _token == 'W2B_NOWIKI_OPEN':
- w2b_nowiki = self.w2b_nowiki(_context)
- result.append(w2b_nowiki)
- else: # == 'PUNCTUATION'
- PUNCTUATION = self._scan('PUNCTUATION')
- result.append(('PUNCTUATION', PUNCTUATION))
- if self._peek() not in ['WORD', 'NUM', 'SPACE', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L', 'NEWLINE', 'W2B_UL', 'W2B_OL', 'BRACKET_ANGLE_L', 'PARBREAK', 'END']:
- raise yappsrt.SyntaxError(charpos=self._scanner.get_prev_char_pos(), context=_context, msg='Need one of ' + ', '.join(['WORD', 'NUM', 'SPACE', 'W2B_NOWIKI_OPEN', 'PUNCTUATION', 'W2B_ESC_AT', 'W2B_ESC_EXCLM', 'W2B_ALERT_L', 'W2B_BOLD_L', 'W2B_ITALIC_L', 'W2B_TEXTTT_L', 'W2B_TEXTCOLOR_L', 'W2B_VSPACE_L', 'W2B_VSPACESTAR_L', 'W2B_ENV_OPEN_L', 'W2B_ENV_CLOSE_L', 'NEWLINE', 'W2B_UL', 'W2B_OL', 'BRACKET_ANGLE_L', 'PARBREAK', 'END']))
- return ('W2B_SINGLE_LINE', result)
-
- def w2b_env_open(self, _parent=None):
- _context = self.Context(_parent, self._scanner, self._pos, 'w2b_env_open', [])
- W2B_ENV_OPEN_L = self._scan('W2B_ENV_OPEN_L')
- if self._peek('SPACE', 'W2B_ENV_NAME') == 'SPACE':
- SPACE = self._scan('SPACE')
- W2B_ENV_NAME = self._scan('W2B_ENV_NAME')
- if self._peek('SPACE', 'W2B_ENV_OPEN_R') == 'SPACE':
- SPACE = self._scan('SPACE')
- W2B_ENV_OPEN_R = self._scan('W2B_ENV_OPEN_R')
- return ('W2B_ENV_OPEN', W2B_ENV_NAME)
-
- def w2b_env_close(self, _parent=None):
- _context = self.Context(_parent, self._scanner, self._pos, 'w2b_env_close', [])
- W2B_ENV_CLOSE_L = self._scan('W2B_ENV_CLOSE_L')
- if self._peek('SPACE', 'W2B_ENV_NAME') == 'SPACE':
- SPACE = self._scan('SPACE')
- W2B_ENV_NAME = self._scan('W2B_ENV_NAME')
- if self._peek('SPACE', 'W2B_ENV_CLOSE_R') == 'SPACE':
- SPACE = self._scan('SPACE')
- W2B_ENV_CLOSE_R = self._scan('W2B_ENV_CLOSE_R')
- return ('W2B_ENV_CLOSE', W2B_ENV_NAME)
-
- def w2b_escape_seq(self, _parent=None):
- _context = self.Context(_parent, self._scanner, self._pos, 'w2b_escape_seq', [])
- result = None
- _token = self._peek('W2B_ESC_AT', 'W2B_ESC_EXCLM')
- if _token == 'W2B_ESC_AT':
- W2B_ESC_AT = self._scan('W2B_ESC_AT')
- result = ('W2B_ESC_AT', W2B_ESC_AT)
- else: # == 'W2B_ESC_EXCLM'
- W2B_ESC_EXCLM = self._scan('W2B_ESC_EXCLM')
- result = ('W2B_ESC_EXCLM', W2B_ESC_EXCLM)
- return result
-
- def w2b_text_alert(self, _parent=None):
- _context = self.Context(_parent, self._scanner, self._pos, 'w2b_text_alert', [])
- W2B_ALERT_L = self._scan('W2B_ALERT_L')
- W2B_ALERT_IN = self._scan('W2B_ALERT_IN')
- W2B_ALERT_R = self._scan('W2B_ALERT_R')
- return ('W2B_ALERT', W2B_ALERT_IN)
-
- def w2b_text_bold(self, _parent=None):
- _context = self.Context(_parent, self._scanner, self._pos, 'w2b_text_bold', [])
- W2B_BOLD_L = self._scan('W2B_BOLD_L')
- W2B_BOLD_IN = self._scan('W2B_BOLD_IN')
- W2B_BOLD_R = self._scan('W2B_BOLD_R')
- return ('W2B_BOLD', W2B_BOLD_IN)
-
- def w2b_text_italic(self, _parent=None):
- _context = self.Context(_parent, self._scanner, self._pos, 'w2b_text_italic', [])
- W2B_ITALIC_L = self._scan('W2B_ITALIC_L')
- W2B_ITALIC_IN = self._scan('W2B_ITALIC_IN')
- W2B_ITALIC_R = self._scan('W2B_ITALIC_R')
- return ('W2B_ITALIC', W2B_ITALIC_IN)
-
- def w2b_text_texttt(self, _parent=None):
- _context = self.Context(_parent, self._scanner, self._pos, 'w2b_text_texttt', [])
- W2B_TEXTTT_L = self._scan('W2B_TEXTTT_L')
- W2B_TEXTTT_IN = self._scan('W2B_TEXTTT_IN')
- W2B_TEXTTT_R = self._scan('W2B_TEXTTT_R')
- return ('W2B_TEXTTT', W2B_TEXTTT_IN)
-
- def w2b_text_textcolor(self, _parent=None):
- _context = self.Context(_parent, self._scanner, self._pos, 'w2b_text_textcolor', [])
- W2B_TEXTCOLOR_L = self._scan('W2B_TEXTCOLOR_L')
- W2B_TEXTCOLOR_COLOR = self._scan('W2B_TEXTCOLOR_COLOR')
- W2B_TEXTCOLOR_MID = self._scan('W2B_TEXTCOLOR_MID')
- W2B_TEXTCOLOR_IN = self._scan('W2B_TEXTCOLOR_IN')
- W2B_TEXTCOLOR_R = self._scan('W2B_TEXTCOLOR_R')
- return ('W2B_TEXTCOLOR', W2B_TEXTCOLOR_COLOR, W2B_TEXTCOLOR_IN)
-
- def w2b_vspace(self, _parent=None):
- _context = self.Context(_parent, self._scanner, self._pos, 'w2b_vspace', [])
- W2B_VSPACE_L = self._scan('W2B_VSPACE_L')
- W2B_VSPACE_IN = self._scan('W2B_VSPACE_IN')
- W2B_VSPACE_R = self._scan('W2B_VSPACE_R')
- return ('W2B_VSPACE', W2B_VSPACE_IN)
-
- def w2b_vspacestar(self, _parent=None):
- _context = self.Context(_parent, self._scanner, self._pos, 'w2b_vspacestar', [])
- W2B_VSPACESTAR_L = self._scan('W2B_VSPACESTAR_L')
- W2B_VSPACE_IN = self._scan('W2B_VSPACE_IN')
- W2B_VSPACE_R = self._scan('W2B_VSPACE_R')
- return ('W2B_VSPACESTAR', W2B_VSPACE_IN)
-
- def overlay_spec(self, _parent=None):
- _context = self.Context(_parent, self._scanner, self._pos, 'overlay_spec', [])
- BRACKET_ANGLE_L = self._scan('BRACKET_ANGLE_L')
- OVERLAY_SPEC_SIMPLE = self._scan('OVERLAY_SPEC_SIMPLE')
- BRACKET_ANGLE_R = self._scan('BRACKET_ANGLE_R')
- return ('OVERLAY_SPEC', OVERLAY_SPEC_SIMPLE)
-
-
-def parse(rule, text):
- P = wiki2beamer(wiki2beamerScanner(text))
- return yappsrt.wrap_error_reporter(P, rule)
-
-if __name__ == '__main__':
- from sys import argv, stdin
- if len(argv) >= 2:
- if len(argv) >= 3:
- f = open(argv[2],'r')
- else:
- f = stdin
- print parse(argv[1], f.read())
- else: print >>sys.stderr, 'Args: <rule> [<filename>]'
-# End -- grammar generated by Yapps