Commit 0afb06ce authored by di68kap's avatar di68kap
Browse files

optimization for Alternative-Parsers: TextAlternative

parent fe5c5921
......@@ -1474,7 +1474,8 @@ from DHParser.parse import Parser, Grammar, mixin_comment, mixin_nonempty, Forwa
Text, Capture, Retrieve, Pop, optional_last_value, GrammarError, Whitespace, Always, Never, \
INFINITE, matching_bracket, ParseFunc, update_scanner, CombinedParser
from DHParser.preprocess import nil_preprocessor, PreprocessorFunc
from DHParser.syntaxtree import Node, RootNode, WHITESPACE_PTYPE, TOKEN_PTYPE
from DHParser.syntaxtree import Node, RootNode, WHITESPACE_PTYPE, TOKEN_PTYPE, ZOMBIE_TAG, \
flatten_sxpr
from DHParser.toolkit import load_if_file, escape_re, escape_ctrl_chars, md5, \
sane_parser_name, re, expand_table, unrepr, compile_python_object, DHPARSER_PARENTDIR, \
cython
......@@ -3906,7 +3907,10 @@ class EBNFCompiler(Compiler):
i.e. repeated n or n up to m times.
"""
assert node.tag_name == 'counted'
assert len(node.children) == 2
if len(node.children) != 2:
self.tree.new_error(node, f'Wrong number of arguments for repetition: '
f'{len(node.children)} (two expected)!')
return Node(ZOMBIE_TAG, ''), (0, 0)
rng = node.get('range', None)
if rng:
r = self.extract_range(rng)
......
......@@ -7,7 +7,7 @@ import os
import sys
LOGGING = 'LOGS'
DEBUG = False
DEBUG = True
TEST_DIRNAME = 'tests_grammar'
scriptpath = os.path.dirname(__file__)
......
This diff is collapsed.
\vspace {-0.3\baselineskip }
\vspace {2ex}
\contentsline {chapter}{Titelblatt der Originalausgabe}{5}
\vspace {1ex}
\vspace {2ex}
\contentsline {chapter}{Einleitung des Herausgebers}{7}
\vspace {1ex}
\contentsline {section}{\numberline {1.}Der Ausgangstext}{7}
\contentsline {section}{\numberline {2.}Die Autorschaft}{7}
\contentsline {section}{\numberline {3.}Die Textgestaltung}{8}
\vspace {2ex}
\contentsline {chapter}{Titelblatt der Originalausgabe}{11}
\vspace {1ex}
\vspace {2ex}\normalfont \large \noindent Bolzano's Wissenschaftslehre und Religions- \\ wissenschaft in einer beurtheilenden \"Ubersicht\par
\normalfont
\normalfont
\vspace {3ex}\begin {center}\normalfont \large \ensuremath {[}0.\\ Einleitung\ensuremath {]}\par \end {center}
\small
\small
\normalfont
\normalfont
\vspace {3ex}\begin {center}\normalfont \large I.\\ Uebersicht der Wissenschaftslehre.\par \end {center}
\small
\small
\contentsline {section}{WL I \IeC {\S }.\tmspace +\thinmuskip {.1667em}1--120}{34}
\contentsline {section}{WL II \IeC {\S }.\tmspace +\thinmuskip {.1667em}121--268}{63}
\contentsline {section}{WL III \IeC {\S }.\tmspace +\thinmuskip {.1667em}269--391}{86}
\contentsline {section}{WL IV \IeC {\S }.\tmspace +\thinmuskip {.1667em}392--718}{99}
\normalfont
\normalfont
\vspace {3ex}\begin {center}\normalfont \large II.\\ Uebersicht der Religionswissenschaft\par \end {center}
\small
\small
\contentsline {section}{RW I \IeC {\S }.\tmspace +\thinmuskip {.1667em}1--177}{137}
\contentsline {section}{RW II \IeC {\S }.\tmspace +\thinmuskip {.1667em}1--83}{169}
\contentsline {section}{RW IIIa \IeC {\S }.\tmspace +\thinmuskip {.1667em}1--166}{180}
\contentsline {section}{RW IIIb \IeC {\S }.\tmspace +\thinmuskip {.1667em}167--303}{198}
\normalfont
This diff is collapsed.
\documentclass[10pt,ngerman,final]{book}
\overfullrule=1mm
\newif\ifosu
\global\osutrue
\newif\ifnackt
\global\nacktfalse
\usepackage{BU_Makros}
%---Teilkompilation
%\includeonly{RW2}
%
\begin{document}
%---Literaturverweise, automatisiert
\ifnackt\else%
\citealiasesdefinieren{Literatur.csv}
%
%---Zusätzliche Indexverweise
% \index{bibel}{1\,Mos|see{Gen}}
%
%---Titelei---
%\include{BU_titel}
\input{BU_titel}
%
%---Inhaltsverzeichnis---
\normalsize
\RWch*{Inhaltsverzeichnis}\label{IhvzAnfang}\markboth{\kopfzeilenfmt{Inhaltsverzeichnis}}{\kopfzeilenfmt{Inhaltsverzeichnis}}
\ptocauslesen{}\ctaddtocontents{dummy}{\protect\vspace{-0.3\baselineskip}}\label{IhvzEnde}
%
%%---Einleitung---
%\include{intro}
%
%---Zwischentitelei---
% \include{BU_zwititel}
\input{BU_zwititel}
%
%
%---Einleitung---
\RWch{Einleitung des Herausgebers}\hbox{}\par\noindent\markboth{\kopfzeilenfmt{Einleitung des Herausgebers}}{\kopfzeilenfmt{Christian Tapp}}%
% \include{BU_intro}
\input{BU_intro}
%
%---Zwischentitelei---
% \include{BU_Zwititel}
\input{BU_Zwititel}
%
% Fußnoten umstellen
\makeatletter
\renewcommand{\@makefntext}[1]{\noindent \@makefnmark\hspace{0.33em}#1}
\makeatother
\haupttexttrue%
%
\ctaddtocontents{ptoc}{\protect\vspace{2ex}\protect\normalfont\protect\large\noindent Bolzano's Wissenschaftslehre und Religions- \\ wissenschaft in einer beurtheilenden Übersicht\protect\par}%
%---HAUPTTEXT---
\setcounter{footnote}{0}\renewcommand{\thefootnote}{\fnsymbol{footnote}}%
\tocgross\pagestyle{normal}
\RWteil{I}{\ensuremath{[}0.}{Einleitung\ensuremath{]}}{\seitenwohne{1}}
\tocklein
\fi
\input{BU0}
\ifnackt\else
\tocgross
\RWteil{II}{I.}{Uebersicht der Wissenschaftslehre.}{\seitenwohne{17}}
\tocklein
\fi
\input{BU1}
\ifnackt\else
\tocgross
\RWteil{III}{II.}{Uebersicht der Religionswissenschaft}{\seitenwohne{119}}
\tocklein
\fi
\input{BU2}
\ifnackt\else
\tocgross%
\nolinenumbers%
\end{document}
%---Anmerkungen---
\haupttextfalse%
% \RWch{Anmerkungen des Herausgebers}\label{Anmerkungen}\markboth{\kopfzeilenfmt{Anmerkungen des Herausgebers}}{\kopfzeilenfmt{Christian Tapp}}%
% \setcounter{footnoteA}{0}%
%\input{Anm1-35}
%\input{Anm36-70}
% \pagestyle{empty}\thispagestyle{normal}
%
%---Literaturverzeichnis---
\newpage%
\neuerechteseite%
\PdUtoc{chapter}{Literaturverzeichnis}
\def\bibstart{\pagestyle{normal}\markboth{\kopfzeilenfmt{Literaturverzeichnis}}{\kopfzeilenfmt{Literaturverzeichnis}}\item\parbox{\textwidth}{BGA = \textit{Bernard Bolzano-Gesamtausgabe}. Hrsg. v. Eduard Winter, Jan Berg u.\,a. Stuttgart-Bad Cannstatt: Frommann / Frommann-Holzboog 1969--\textsymmdots}}
\bibliographie{Literatur.csv}\pagestyle{normal}
%\bibliographie{LiteraturB.csv}\pagestyle{normal}
%
%---Index---
\newpage%
\neuerechteseite%
\PdUtoc{chapter}{Index}
\footnotesize%\printindex
\RWch{Register}\markboth{\kopfzeilenfmt{Register}}{\kopfzeilenfmt{Register}}
\printindex{allg}{}
\RWch{Verzeichnis der Bibelstellen}\markboth{\kopfzeilenfmt{Verzeichnis der Bibelstellen}}{\kopfzeilenfmt{Verzeichnis der Bibelstellen}}
\printindex{bibel}{}
\RWch{Verzeichnis der griechischen Zitate}\markboth{\kopfzeilenfmt{Zusatz-Verzeichnis}}{\kopfzeilenfmt{Zusatz-Verzeichnis}}
\printindex{zusatz}{}
\fi
\end{document}
\ No newline at end of file
\documentclass[10pt,ngerman,final]{book}
\overfullrule=1mm
\newif\ifosu
\global\osutrue
\newif\ifnackt
\global\nacktfalse
\usepackage{BU_Makros}
%---Teilkompilation
%\includeonly{RW2}
%
\begin{document}
%---Literaturverweise, automatisiert
\ifnackt\else%
\citealiasesdefinieren{Literatur.csv}
%
%---Zustzliche Indexverweise
% \index{bibel}{1\,Mos|see{Gen}}
%
%---Titelei---
%\include{BU_titel}
\input{BU_titel}
%
%---Inhaltsverzeichnis---
\normalsize
\RWch*{Inhaltsverzeichnis}\label{IhvzAnfang}\markboth{\kopfzeilenfmt{Inhaltsverzeichnis}}{\kopfzeilenfmt{Inhaltsverzeichnis}}
\ptocauslesen{}\ctaddtocontents{dummy}{\protect\vspace{-0.3\baselineskip}}\label{IhvzEnde}
%
%%---Einleitung---
%\include{intro}
%
%---Zwischentitelei---
% \include{BU_zwititel}
\input{BU_zwititel}
%
%
%---Einleitung---
\RWch{Einleitung des Herausgebers}\hbox{}\par\noindent\markboth{\kopfzeilenfmt{Einleitung des Herausgebers}}{\kopfzeilenfmt{Christian Tapp}}%
% \include{BU_intro}
\input{BU_intro}
%
%---Zwischentitelei---
% \include{BU_Zwititel}
\input{BU_Zwititel}
%
% Funoten umstellen
\makeatletter
\renewcommand{\@makefntext}[1]{\noindent \@makefnmark\hspace{0.33em}#1}
\makeatother
\haupttexttrue%
%
\ctaddtocontents{ptoc}{\protect\vspace{2ex}\protect\normalfont\protect\large\noindent Bolzano's Wissenschaftslehre und Religions- \\ wissenschaft in einer beurtheilenden bersicht\protect\par}%
%---HAUPTTEXT---
\setcounter{footnote}{0}\renewcommand{\thefootnote}{\fnsymbol{footnote}}%
\tocgross\pagestyle{normal}
\RWteil{I}{\ensuremath{[}0.}{Einleitung\ensuremath{]}}{\seitenwohne{1}}
\tocklein
\fi
\input{BU0}
\ifnackt\else
\tocgross
\RWteil{II}{I.}{Uebersicht der Wissenschaftslehre.}{\seitenwohne{17}}
\tocklein
\fi
\input{BU1}
\ifnackt\else
\tocgross
\RWteil{III}{II.}{Uebersicht der Religionswissenschaft}{\seitenwohne{119}}
\tocklein
\fi
\input{BU2}
\ifnackt\else
\tocgross%
\nolinenumbers%
\end{document}
%---Anmerkungen---
\haupttextfalse%
% \RWch{Anmerkungen des Herausgebers}\label{Anmerkungen}\markboth{\kopfzeilenfmt{Anmerkungen des Herausgebers}}{\kopfzeilenfmt{Christian Tapp}}%
% \setcounter{footnoteA}{0}%
%\input{Anm1-35}
%\input{Anm36-70}
% \pagestyle{empty}\thispagestyle{normal}
%
%---Literaturverzeichnis---
\newpage%
\neuerechteseite%
\PdUtoc{chapter}{Literaturverzeichnis}
\def\bibstart{\pagestyle{normal}\markboth{\kopfzeilenfmt{Literaturverzeichnis}}{\kopfzeilenfmt{Literaturverzeichnis}}\item\parbox{\textwidth}{BGA = \textit{Bernard Bolzano-Gesamtausgabe}. Hrsg. v. Eduard Winter, Jan Berg u.\,a. Stuttgart-Bad Cannstatt: Frommann / Frommann-Holzboog 1969--\textsymmdots}}
\bibliographie{Literatur.csv}\pagestyle{normal}
%\bibliographie{LiteraturB.csv}\pagestyle{normal}
%
%---Index---
\newpage%
\neuerechteseite%
\PdUtoc{chapter}{Index}
\footnotesize%\printindex
\RWch{Register}\markboth{\kopfzeilenfmt{Register}}{\kopfzeilenfmt{Register}}
\printindex{allg}{}
\RWch{Verzeichnis der Bibelstellen}\markboth{\kopfzeilenfmt{Verzeichnis der Bibelstellen}}{\kopfzeilenfmt{Verzeichnis der Bibelstellen}}
\printindex{bibel}{}
\RWch{Verzeichnis der griechischen Zitate}\markboth{\kopfzeilenfmt{Zusatz-Verzeichnis}}{\kopfzeilenfmt{Zusatz-Verzeichnis}}
\printindex{zusatz}{}
\fi
\end{document}
\ No newline at end of file
[main]
.\BU.tex
[texfiles]
.-----.tex
.\BU_Makros.sty
.\BU_Makros_alt.sty
.-----.tex
.\BU_titel.tex
.\BU_intro.tex
.\BU_zwititel.tex
.-----.tex
.\BU0.tex
.\BU1.tex
.\BU2.tex
.-----.tex
.\BU_2auf1.tex
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
\documentclass[a4paper,landscape]{article}
\usepackage{pdfpages}
\usepackage{multicol}
\usepackage[top=0cm, left=0cm, right=0cm, bottom=0cm]{geometry}
\usepackage{fancyhdr}
\usepackage[latin1]{inputenc}
\usepackage[extendedchars]{grffile}
\newcounter{ctbis}
\newcounter{ctvon}
\newcounter{ctakt}
\usepackage{forloop}
\newif\ifrechts\rechtsfalse
\makeatletter
\long\def\wennleer#1#2#3{\def\@tempa{#1}\ifx\@tempa\empty#2\else#3\fi}
\long\def\wenngleich#1#2#3#4{\def\@tempa{#1}\def\@tempb{#2}\ifx\@tempa\@tempb #3\else#4\fi}
\makeatother
\newcounter{hilfsc}
\newcommand{\zweiaufeins}[4][]{%
\def\datei{#4}%
\wennleer{#2}{\setcounter{ctvon}{1}}{\setcounter{ctvon}{#2}}%
\wennleer{#3}{\pdfximage{\datei}\setcounter{ctbis}{\the \pdflastximagepages}}{\setcounter{ctbis}{#3}}%
\forloop{hilfsc}{\value{ctvon}}{\value{hilfsc} < \value{ctbis} \or \value{hilfsc} = \value{ctbis}}%
{\mbox{}\vfill\includegraphics*[page=\value{hilfsc},#1]{\datei}%
\vfill\par\ifrechts\newpage\rechtsfalse\else\columnbreak\mbox{}\rechtstrue\fi}}
\begin{document}
\pagestyle{empty}
\begin{multicols}{2}
\centering
\mbox{}\columnbreak\rechtstrue
\zweiaufeins[viewport=4.7cm 5cm 16.3cm 25cm]{}{255}{BÜ.pdf}
\end{multicols}
\end{document}
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment