use of us.parr.bookish.model.Join in project bookish by parrt.
the class Translator method visitSection.
@Override
public OutputModelObject visitSection(BookishParser.SectionContext ctx) {
String title = ctx.sec.getText();
title = title.substring(title.indexOf(' ') + 1).trim();
Pair<String, String> results = splitSectionTitle(title);
title = results.a;
String anchor = results.b;
EntityDef def = null;
if (anchor != null) {
def = document.getEntity(anchor);
if (def == null) {
System.err.printf("line %d: Unknown label '%s'\n", ctx.start.getLine(), anchor);
return null;
}
}
List<ContainerWithTitle> subsections = new ArrayList<>();
for (ParseTree el : ctx.subsection()) {
subsections.add((SubSection) visit(el));
}
Join sec = (Join) visitSection_content(ctx.section_content());
return new Section(def, title, anchor, sec.elements, subsections);
}
use of us.parr.bookish.model.Join in project bookish by parrt.
the class Translator method visitSubsubsection.
@Override
public OutputModelObject visitSubsubsection(BookishParser.SubsubsectionContext ctx) {
String title = ctx.sec.getText();
title = title.substring(title.indexOf(' ') + 1).trim();
Pair<String, String> results = splitSectionTitle(title);
title = results.a;
String anchor = results.b;
EntityDef def = null;
if (anchor != null) {
def = document.getEntity(anchor);
if (def == null) {
System.err.printf("line %d: Unknown label '%s'\n", ctx.start.getLine(), anchor);
}
}
Join sec = (Join) visitSection_content(ctx.section_content());
return new SubSubSection(def, title, anchor, sec != null ? sec.elements : null);
}
use of us.parr.bookish.model.Join in project bookish by parrt.
the class Translator method visitSection_content.
@Override
public OutputModelObject visitSection_content(BookishParser.Section_contentContext ctx) {
if (ctx.children == null) {
return null;
}
List<OutputModelObject> elements = new ArrayList<>();
for (ParseTree el : ctx.children) {
OutputModelObject m = visit(el);
elements.add(m);
}
return new Join(elements);
}
use of us.parr.bookish.model.Join in project bookish by parrt.
the class Translator method visitChapter.
@Override
public OutputModelObject visitChapter(BookishParser.ChapterContext ctx) {
String title = ctx.chap.getText();
title = title.substring(title.indexOf(' ') + 1).trim();
Pair<String, String> results = splitSectionTitle(title);
title = results.a;
String anchor = results.b;
EntityDef def = null;
if (anchor != null) {
def = document.getEntity(anchor);
if (def == null) {
System.err.printf("line %d: Unknown label '%s'\n", ctx.start.getLine(), anchor);
return null;
}
}
OutputModelObject auth = null;
if (ctx.author() != null) {
auth = visit(ctx.author());
}
OutputModelObject preabs = null;
if (ctx.preabstract() != null) {
preabs = visit(ctx.preabstract());
}
OutputModelObject abs = null;
if (ctx.abstract_() != null) {
abs = visit(ctx.abstract_());
}
List<ContainerWithTitle> sections = new ArrayList<>();
for (ParseTree el : ctx.children) {
if (el instanceof BookishParser.SectionContext) {
OutputModelObject m = visit(el);
sections.add((Section) m);
}
}
Join sec = (Join) visitSection_content(ctx.section_content());
Chapter chapter = new Chapter(def, title, null, (Author) auth, (PreAbstract) preabs, (Abstract) abs, sec != null ? sec.elements : null, sections);
return chapter;
}
use of us.parr.bookish.model.Join in project bookish by parrt.
the class Translator method visitAside.
@Override
public OutputModelObject visitAside(BookishParser.AsideContext ctx) {
Join content = (Join) visit(ctx.section_content());
TextBlock text = new TextBlock(content.elements);
return new Aside(text, ctx.attrs().attrMap);
}
Aggregations