diff options
author | Andreas Rumpf <andreas@andreas-desktop> | 2009-12-10 23:59:19 +0100 |
---|---|---|
committer | Andreas Rumpf <andreas@andreas-desktop> | 2009-12-10 23:59:19 +0100 |
commit | 911c1cb301a8483e463772b785b0aee79cf2a68c (patch) | |
tree | d9f391bd6c1b56858663766c2635eb028aaf4526 | |
parent | 033c28f1115bafd901e9db656beeb05e7b6034c9 (diff) | |
download | Nim-911c1cb301a8483e463772b785b0aee79cf2a68c.tar.gz |
added configuration file for TeX
-rwxr-xr-x | config/nimdoc.tex.cfg | 123 | ||||
-rwxr-xr-x | lib/system.nim | 20 |
2 files changed, 143 insertions, 0 deletions
diff --git a/config/nimdoc.tex.cfg b/config/nimdoc.tex.cfg new file mode 100755 index 000000000..54a57e0fb --- /dev/null +++ b/config/nimdoc.tex.cfg @@ -0,0 +1,123 @@ +# This is the config file for the documentation generator that produces TeX +# output. +# (c) 2009 Andreas Rumpf +# Feel free to edit the templates as you need. + +split.item.toc = "20" +# too long entries in the table of contents wrap around +# after this number of characters + +doc.section = """ +\chapter{$sectionTitle}\label{$sectionID} +\begin{description} +$content +\end{description} +""" + +doc.section.toc = "" +# $sectionID $sectionTitleID $sectionTitle $content + +doc.item = """ +\item[\texttt{$header}\label{$itemID}]\mbox{~}\\* +$desc +""" + +doc.item.toc = "" +# \item $name\ref{$itemID} + +doc.toc = r"\tableofcontents \newpage" + +doc.body_toc = """ +$tableofcontents +$moduledesc +$content +""" + +doc.body_no_toc = """ +$moduledesc +$content +""" + +doc.file = """ +% This file was generated by Nimrod. +% Generated: $date $time UTC +\documentclass[a4paper]{article} +\usepackage[left=2cm,right=3cm,top=3cm,bottom=3cm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{graphicx} +\usepackage{lmodern} +\usepackage{fancyvrb, courier} +\usepackage{tabularx} +\usepackage{hyperref} + +\begin{document} +\title{$title $version} +\author{$author} + +\tolerance 1414 +\hbadness 1414 +\emergencystretch 1.5em +\hfuzz 0.3pt +\widowpenalty=10000 +\vfuzz \hfuzz +\raggedbottom + +\maketitle + +\newenvironment{rstpre}{\VerbatimEnvironment\begingroup\begin{Verbatim}[fontsize=\footnotesize , commandchars=\\\{\}]}{\end{Verbatim}\endgroup} + +% to pack tabularx into a new environment, special syntax is needed :-( +\newenvironment{rsttab}[1]{\tabularx{\linewidth}{#1}}{\endtabularx} + +\newcommand{\rstsub}[1]{\raisebox{-0.5ex}{\scriptsize{#1}}} +\newcommand{\rstsup}[1]{\raisebox{0.5ex}{\scriptsize{#1}}} + +\newcommand{\rsthA}[1]{\section{#1}} +\newcommand{\rsthB}[1]{\subsection{#1}} +\newcommand{\rsthC}[1]{\subsubsection{#1}} +\newcommand{\rsthD}[1]{\paragraph{#1}} +\newcommand{\rsthE}[1]{\paragraph{#1}} + +\newcommand{\rstovA}[1]{\section*{#1}} +\newcommand{\rstovB}[1]{\subsection*{#1}} +\newcommand{\rstovC}[1]{\subsubsection*{#1}} +\newcommand{\rstovD}[1]{\paragraph*{#1}} +\newcommand{\rstovE}[1]{\paragraph*{#1}} + +% Syntax highlighting: +\newcommand{\spanDecNumber}[1]{#1} +\newcommand{\spanBinNumber}[1]{#1} +\newcommand{\spanHexNumber}[1]{#1} +\newcommand{\spanOctNumber}[1]{#1} +\newcommand{\spanFloatNumber}[1]{#1} +\newcommand{\spanIdentifier}[1]{#1} +\newcommand{\spanKeyword}[1]{\textbf{#1}} +\newcommand{\spanStringLit}[1]{#1} +\newcommand{\spanLongStringLit}[1]{#1} +\newcommand{\spanCharLit}[1]{#1} +\newcommand{\spanEscapeSequence}[1]{#1} +\newcommand{\spanOperator}[1]{#1} +\newcommand{\spanPunctation}[1]{#1} +\newcommand{\spanComment}[1]{\emph{#1}} +\newcommand{\spanLongComment}[1]{\emph{#1}} +\newcommand{\spanRegularExpression}[1]{#1} +\newcommand{\spanTagStart}[1]{#1} +\newcommand{\spanTagEnd}[1]{#1} +\newcommand{\spanKey}[1]{#1} +\newcommand{\spanValue}[1]{#1} +\newcommand{\spanRawData}[1]{#1} +\newcommand{\spanAssembler}[1]{#1} +\newcommand{\spanPreprocessor}[1]{#1} +\newcommand{\spanDirective}[1]{#1} +\newcommand{\spanCommand}[1]{#1} +\newcommand{\spanRule}[1]{#1} +\newcommand{\spanHyperlink}[1]{#1} +\newcommand{\spanLabel}[1]{#1} +\newcommand{\spanReference}[1]{#1} +\newcommand{\spanOther}[1]{#1} +\newcommand{\spantok}[1]{\frame{#1}} + +$content +\end{document} +""" diff --git a/lib/system.nim b/lib/system.nim index 174d739cd..4dbc0a93d 100755 --- a/lib/system.nim +++ b/lib/system.nim @@ -219,6 +219,26 @@ type object of ESynch ## is raised if an object is converted to an incompatible ## object type. + EFloatingPoint* = object of ESynch ## base class for floating point exceptions + EFloatInvalidOp* {.compilerproc.} = + object of EFloatingPoint ## Invalid operation according to IEEE: Raised by + ## 0.0/0.0, sqrt(-1.0), and log(-37.8) for example. + EFloatDivByZero* {.compilerproc.} = + object of EFloatingPoint ## Division by zero. Divisor is zero and dividend + ## is a finite nonzero number + EFloatOverflow* {.compilerproc.} = + object of EFloatingPoint ## Overflow. Operation produces a result + ## that exceeds the range of the exponent + EFloatUnderflow* {.compilerproc.} = + object of EFloatingPoint ## Underflow. Operation produces a result + ## that is too small to be represented as + ## a normal number + EFloatInexact* {.compilerproc.} = + object of EFloatingPoint ## Inexact. Operation produces a result that cannot + ## be represented with infinite precision -- + ## for example, 2.0 / 3.0, log(1.1) + ## NOTE: Nimrod currently does not detect these! + TResult* = enum Failure, Success proc sizeof*[T](x: T): natural {.magic: "SizeOf", noSideEffect.} |