diff options
Diffstat (limited to 'src/manual/scala/tools/docutil/ManPage.scala')
-rw-r--r-- | src/manual/scala/tools/docutil/ManPage.scala | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/manual/scala/tools/docutil/ManPage.scala b/src/manual/scala/tools/docutil/ManPage.scala new file mode 100644 index 0000000000..3d23d69064 --- /dev/null +++ b/src/manual/scala/tools/docutil/ManPage.scala @@ -0,0 +1,68 @@ +/* NSC -- new Scala compiler + * Copyright 2005-2006 LAMP/EPFL + * @author Stephane Micheloud + * Adapted from Lex Spoon's sbaz manual + */ +//$Id: $ + +package scala.tools.docutil + +object ManPage { + abstract class AbstractText { + def &(more: AbstractText) = SeqText(this, more) + } + + case class SeqText(components: AbstractText*) extends AbstractText + case class Text(text: String) extends AbstractText + case object MDash extends AbstractText + case object NDash extends AbstractText + case class Bold(contents: AbstractText) extends AbstractText + case class Italic(contents: AbstractText) extends AbstractText + case class Emph(contents: AbstractText) extends AbstractText + case class Mono(contents: AbstractText) extends AbstractText + case class Quote(contents: AbstractText) extends AbstractText + implicit def str2text(str: String) = Text(str) + + case class Definition(term: AbstractText, description: AbstractText) + case class DefinitionList(definitions: Definition*) extends AbstractText + case class Link(label: AbstractText, url: String) extends AbstractText + + case class DefnItem(header: String, text: AbstractText) + + abstract class Paragraph + case class TextParagraph(text: AbstractText) extends Paragraph + case class CodeSample(text: String) extends Paragraph + case class BlockQuote(text: AbstractText) extends Paragraph + implicit def text2para(text: AbstractText): Paragraph = TextParagraph(text) + implicit def str2para(str: String) = text2para(str2text(str)) + + case class BulletList(items: AbstractText*) extends Paragraph + case class NumberedList(items: AbstractText*) extends Paragraph + case class TitledPara(title: String, text: AbstractText) extends Paragraph + + case class EmbeddedSection(section: Section) extends Paragraph + implicit def section2Para(section: Section) = EmbeddedSection(section) + + case class Section(title: String, paragraphs: Paragraph*) + + object Category extends Enumeration { + val USER_COMMANDS = Value(1, "USER COMMANDS") + val SYSTEM_CALLS = Value(2, "SYSTEM CALLS") + val SUBROUTINES = Value(3, "SUBROUTINES") + val DEVICES = Value(4, "DEVICES") + val FILE_FORMATS = Value(5, "FILE FORMAT DESCRIPTIONS") + val GAMES = Value(6, "GAMES") + val MISCELLANEOUS = Value(7, "MISCELLANEOUS") + } + + abstract class Document { + import Category._ + var title: String = "" + var author: String = "" + var date: String = "" + var version: String = "" + var category: Value = USER_COMMANDS + var encoding: String = "iso-8859-1" + var sections: List[Section] = Nil + } +} |