mirror of
https://github.com/dart-lang/sdk
synced 2024-11-02 14:32:24 +00:00
93f4f00719
Hash values are now computed for each "paragraph" starting with \LMHash (which includes subsequent grammar, dartCode, itemize blocks, but stops at \section-like commands). Now addlatexhash.dart expects three arguments (first the source latex file, then the destination simplified and hash-value-annotated latex source file, and finally a file name used to create the list of hash values emitted). Adjusted testing accordingly. Added a test for robustness of the hash value generation: It is checked that lots of different "unimportant" changes make no difference for the generated hash values (e.g., we can add/remove comments, change white space, add \commentary{..} etc. without changing the hash values). In order to ensure that all "structure" commands in the spec have a label, I added an \LMLabel{..} a handful of places, following the style which is used throughout the spec. In dart.sty, the \renewcommand that made \LMHash{} produce a fixed hash value has been removed such that the actual hash values are now inserted into the generated spec PDF/DVI file. Tests have been adjusted to handle this difference between the spec with and without hash values when comparing the two. R=gbracha@google.com, lrn@google.com, ricow@google.com Committed: https://code.google.com/p/dart/source/detail?r=41658 Reverted: https://code.google.com/p/dart/source/detail?r=41662 Review URL: https://codereview.chromium.org//652993005 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41687 260f80e4-7a28-3924-810f-c04153c831b5
147 lines
3.7 KiB
TeX
147 lines
3.7 KiB
TeX
\def\keyword#1{\textbf{#1}}
|
|
\def\builtinId#1{\textbf{#1}}
|
|
\def\comment#1{\textit{#1}}
|
|
\def\capt#1{\rmfamily \caption{#1}}
|
|
\newcommand{\cd}[1]{\textsf{#1}}
|
|
\def\lt{$<$}
|
|
\def\gt{$>$}
|
|
\def\<{$\langle$}
|
|
\def\>{$\rangle$}
|
|
|
|
\def\ABSTRACT{\builtinId{abstract}}
|
|
\def\AS{\builtinId{as}}
|
|
\def\ASSERT{\keyword{assert}}
|
|
\def\ASYNC{\keyword{async}}
|
|
\def\AWAIT{\keyword{await}}
|
|
\def\BOOLEAN{\keyword{boolean}}
|
|
\def\BREAK{\keyword{break}}
|
|
\def\CASE{\keyword{case}}
|
|
\def\CLASS{\keyword{class}}
|
|
\def\CALL{\keyword{call}}
|
|
\def\CATCH{\keyword{catch}}
|
|
\def\CONST{\keyword{const}}
|
|
\def\CONTINUE{\keyword{continue}}
|
|
\def\DEFAULT{\keyword{default}}
|
|
\def\DEFERRED{\keyword{deferred}}
|
|
\def\DYNAMIC{\builtinId{dynamic}}
|
|
\def\DO{\keyword{do}}
|
|
\def\ELSE{\keyword{else}}
|
|
\def\ENUM{\keyword{enum}}
|
|
\def\EQUALS{\keyword{equals}}
|
|
\def\EXPORT{\builtinId{export}}
|
|
\def\EXTENDS{\keyword{extends}}
|
|
\def\EXTERNAL{\builtinId{external}}
|
|
\def\FACTORY{\builtinId{factory}}
|
|
\def\FALSE{\keyword{false}}
|
|
\def\FINAL{\keyword{final}}
|
|
\def\FINALLY{\keyword{finally}}
|
|
\def\FOR{\keyword{for}}
|
|
\def\GET{\builtinId{get}}
|
|
\def\HIDE{\keyword{hide}}
|
|
\def\IF{\keyword{if}}
|
|
\def\IMPLEMENTS{\builtinId{implements}}
|
|
\def\IMPORT{\builtinId{import}}
|
|
\def\IN{\keyword{in}}
|
|
\def\INT{\keyword{int}}
|
|
\def\INTERFACE{\keyword{interface}}
|
|
\def\IS{\keyword{is}}
|
|
\def\LIBRARY{\builtinId{library}}
|
|
\def\NATIVE{\keyword{native}}
|
|
\def\NEGATE{\keyword{negate}}
|
|
\def\NEW{\keyword{new}}
|
|
\def\NULL{\keyword{null}}
|
|
\def\ON{\keyword{on}}
|
|
\def\OF{\keyword{of}}
|
|
\def\OPERATOR{\builtinId{operator}}
|
|
\def\PART{\builtinId{part}}
|
|
\def\PRIVATE{\keyword{private}}
|
|
\def\RETHROW{\keyword{rethrow}}
|
|
\def\RETURN{\keyword{return}}
|
|
\def\SET{\builtinId{set}}
|
|
\def\SHOW{\keyword{show}}
|
|
\def\SOURCE{\keyword{source}}
|
|
\def\STATIC{\builtinId{static}}
|
|
\def\SUPER{\keyword{super}}
|
|
\def\SWITCH{\keyword{switch}}
|
|
\def\SYNC{\keyword{sync}}
|
|
\def\THIS{\keyword{this}}
|
|
\def\THROW{\keyword{throw}}
|
|
\def\TRUE{\keyword{true}}
|
|
\def\TRY{\keyword{try}}
|
|
\def\TYPEDEF{\builtinId{typedef}}
|
|
\def\THIS{\keyword{this}}
|
|
\def\VAR{\keyword{var}}
|
|
\def\VOID{\keyword{void}}
|
|
\def\WHILE{\keyword{while}}
|
|
\def\WITH{\keyword{with}}
|
|
\def\YIELD{\keyword{yield}}
|
|
|
|
|
|
|
|
|
|
% \def\PUBLIC{\keyword{public}}
|
|
|
|
%\def\PROTECTED{\keyword{protected}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
% \def\OUTER{\keyword{outer}}
|
|
|
|
\def\TRUE{\keyword{true}}
|
|
|
|
|
|
\newenvironment{Q}[1]{{\bf #1}}
|
|
|
|
\newenvironment{rationale}[1]{{\it #1}}
|
|
|
|
\newenvironment{commentary}[1]{{\sf #1}}
|
|
|
|
\newenvironment{dartCode}[1][!ht] {
|
|
% \begin{verbatim}[#1]
|
|
\def\@programcr{\@addfield\strut}
|
|
\let\\=\@programcr
|
|
\relax\@vobeyspaces\obeylines
|
|
|
|
\sffamily
|
|
}{
|
|
%\end{verbatim}
|
|
}
|
|
|
|
|
|
% ----------------------------------------------------------------------
|
|
% Support for hash valued Location Markers
|
|
|
|
% very small font, to enable 40 char hash values in the margin
|
|
\makeatletter
|
|
\ifcase \@ptsize \relax% 10pt
|
|
\newcommand{\miniscule}{\@setfontsize\miniscule{2}{3}}% \tiny: 5/6
|
|
\or% 11pt
|
|
\newcommand{\miniscule}{\@setfontsize\miniscule{3}{4}}% \tiny: 6/7
|
|
\or% 12pt
|
|
\newcommand{\miniscule}{\@setfontsize\miniscule{3}{4}}% \tiny: 6/7
|
|
\fi
|
|
\makeatother
|
|
|
|
% white: location markers should not create visual noise
|
|
\definecolor{LMdim}{gray}{1.0}
|
|
|
|
% insert location marker showing hash value of following paragraph
|
|
\newcommand{\LMHash}[1]{%
|
|
\hspace{0pt}\marginpar{\raisebox{0.5ex}{\miniscule{\color{LMdim}#1}}}}
|
|
|
|
% support convenient renewcommand
|
|
\let\OriginalLMHash\LMHash
|
|
|
|
% define a label, and show the associated logical location marker
|
|
\newcommand{\LMLabel}[1]{%
|
|
\vspace{-\baselineskip}\hspace{0pt}\OriginalLMHash{\raisebox{10ex}{#1}}%
|
|
\label{#1}}
|
|
% ----------------------------------------------------------------------
|
|
|