From c2d9f470f01682b6420b546c4653817aa9b1d05c Mon Sep 17 00:00:00 2001 From: Gabriel Dos Reis Date: Tue, 16 Nov 2021 01:12:00 -0800 Subject: [PATCH] Fix typos (#27) As found by _Cspell_. Undoubtedly, more remains. --- ltx/attrs.tex | 8 ++++---- ltx/charts.tex | 16 ++++++++++++---- ltx/decls.tex | 11 +---------- ltx/exprs.tex | 50 +++++++++++++++++++++++++------------------------- ltx/file.tex | 10 +++++----- ltx/forms.tex | 4 ++-- ltx/ifc.tex | 2 +- ltx/names.tex | 2 +- ltx/parse.tex | 10 +++++----- ltx/srcloc.tex | 2 +- ltx/traits.tex | 8 ++++---- ltx/types.tex | 16 ++++++++-------- ltx/words.tex | 2 +- 13 files changed, 70 insertions(+), 71 deletions(-) diff --git a/ltx/attrs.tex b/ltx/attrs.tex index 6ac0483..5eb53d2 100644 --- a/ltx/attrs.tex +++ b/ltx/attrs.tex @@ -1,7 +1,7 @@ \label{sec:ifc-attrs} -Attributess are denotated by attribute references of type \type{AttrIndex}. +Attributes are denoted by attribute references of type \type{AttrIndex}. Like all abstract references, an \type{AttrIndex} value is 32-bit wide with alignment $4$. \begin{figure}[htbp] \centering @@ -65,7 +65,7 @@ \subsection{\valueTag{AttrSort::Scoped}} An \type{AttrIndex} reference with tag \valueTag{AtrSort::Scoped} denotes a scoped attribute, that is a basic attribute followed by ``\code{::}'' and another basic attribute. -For exampke, \code{gsl::suppress} in ``\code{[[gsl::suppress(type.1)]]}'' is a scoped attribute. +For example, \code{gsl::suppress} in ``\code{[[gsl::suppress(type.1)]]}'' is a scoped attribute. The \field{index} field of that abstract reference is an index into the scoped attribute partition. Each entry in that partition is a structure with the following layout % @@ -79,7 +79,7 @@ \subsection{\valueTag{AttrSort::Scoped}} \label{fig:ifc:AttrSort:Scoped} \end{figure} % -The \field{scope} field reprensents the word appearing before the ``\code{::}'' token. +The \field{scope} field represents the word appearing before the ``\code{::}'' token. The \field{member} field represents the word appearing after the ``\code{::}'' token. \partition{attr.scoped} @@ -202,7 +202,7 @@ \subsection{\valueTag{AttrSort::Elaborated}} \label{fig:ifc:AttrSort:Elaborated} \end{figure} % -The \field{expression} field denotes the result of the parsing and semantic analyzis of the +The \field{expression} field denotes the result of the parsing and semantic analysis of the source-level words making up the attributes. The input source level words are not retained. \partition{attr.elaborated} diff --git a/ltx/charts.tex b/ltx/charts.tex index 66f00ba..30d26bc 100644 --- a/ltx/charts.tex +++ b/ltx/charts.tex @@ -1,7 +1,11 @@ \label{sec:ifc-charts} -Parameterized declarations are entities that are either templates themselves, or templated in the sense that while not themselves templates they are declared in the lexical scopes of templates (e.g. non-template non-member friend functions lexically defined in a class-definition). The parameter list of such declarations or entities are represented by \emph{chart}s, each designated by a \type{ChartIndex} abstract reference. +Parameterized declarations are entities that are either templates themselves, or templated in the +sense that while not themselves templates they are declared in the lexical scopes of templates +(e.g. non-template non-member friend functions lexically defined in a class-definition). +The parameter list of such declarations or entities are represented by \emph{chart}s, each +designated by a \type{ChartIndex} abstract reference. Like all abstract references, it is a 32-bit value \begin{figure}[htbp] \centering @@ -22,7 +26,8 @@ \section{Chart structures} \subsection{\valueTag{ChartSort::None}} \label{sec:ifc:ChartSort:None} -A \type{ChartIndex} abstract reference with tag \valueTag{ChartSort::None} indicates an empty template parameter list, as in \code{template<>} +A \type{ChartIndex} abstract reference with tag \valueTag{ChartSort::None} indicates an empty template +parameter list, as in \code{template<>} at the C++ source level. There is no concrete parameter list stored in the IFC file. \partition{chart.none} @@ -30,7 +35,8 @@ \subsection{\valueTag{ChartSort::None}} \subsection{\valueTag{ChartSort::Unilevel}} \label{sec:ifc:ChartSort:Unilevel} -A \type{ChartIndex} abstract reference with tag \valueTag{ChartSort::Unilevel} designates a sequence non-empty sequence of parameters (\secref{sec:ifc:DeclSort:Parameter}). +A \type{ChartIndex} abstract reference with tag \valueTag{ChartSort::Unilevel} designates a sequence +non-empty sequence of parameters (\secref{sec:ifc:DeclSort:Parameter}). \begin{figure}[H] \centering @@ -53,7 +59,9 @@ \subsection{\valueTag{ChartSort::Unilevel}} \subsection{\valueTag{ChartSort::Multilevel}} \label{sec:ifc:ChartSort:Multilevel} -A \type{ChartIndex} abstract reference with tag \valueTag{ChartSort::Multilevel} indicates a set of template parameter lists, each of them either an empty template parameter list (tag \valueTag{ChartSort::None}) or a unilevel template parameter list (tag \valueTag{ChartSort::Unilevel}). +A \type{ChartIndex} abstract reference with tag \valueTag{ChartSort::Multilevel} indicates a set of template +parameter lists, each of them either an empty template parameter list (tag \valueTag{ChartSort::None}) or a unilevel +template parameter list (tag \valueTag{ChartSort::Unilevel}). \begin{figure}[H] \centering diff --git a/ltx/decls.tex b/ltx/decls.tex index f43c0e0..36124ee 100644 --- a/ltx/decls.tex +++ b/ltx/decls.tex @@ -95,7 +95,7 @@ \subsection{Reachable semantic properties} \label{sec:ifc-reachable-properties} In certain circumstances, the IFC stores more information than the bare minimum -required by the ISO C++ Modules specification. In such cases, it is necessarilyto know +required by the ISO C++ Modules specification. In such cases, it is necessary to know which semantic properties are reachable, outside the owning module, to the importers. In other circumstances, known such additional information is useful in performing additional checks such as ODR violation detection. The availability of such @@ -849,19 +849,10 @@ \subsubsection{Function traits} \begin{description} \item \code{FunctionTraits::None}: no property \item \code{FunctionTraits::Inline}: the function is declared \code{inline} -% \item \code{FunctionTraits::ForceInline}: the function is declared \code{\_\_forceinline} \item \code{FunctionTraits::Constexpr}: the function is declared \code{constexpr} \item \code{FunctionTraits::Explicit}: the function is declared \code{explicit} \item \code{FunctionTraits::Virtual}: the function is declared \code{virtual} \item \code{FunctionTraits::NoReturn}: the function is declared \code{[[noreturn]]} or \code{\_\_declspec(noreturn)} -% \item \code{FunctionTraits::Naked}: the function is declared \code{\_\_declspec(naked)} -% \item \code{FunctionTraits::NoAlias}: the function is declared \code{\_\_declspec(noalias)} -% \item \code{FunctionTraits::NoThrow}: the function is declared \code{\_\_declspec(nothrow)} -% \item \code{FunctionTraits::NoInline}: the function is declared \code{\_\_declspec(noinline)} -% \item \code{FunctionTraits::Restrict}: the function is declared \code{\_\_declspec(restrict)} -% \item \code{FunctionTraits::SafeBuffers}: the function is declared \code{\_\_declspec(safebuffers)} -% \item \code{FunctionTrsits::DllExport}: the function is declared \code{\_\_declspec(dllexport)} -% \item \code{FunctionTraits::CodeSegment}: the function is declared \code{\_\_declspec(code\_seg)} \item \code{FunctionTraits::PureVirtual}: the function is pure virtual, e.g. with \code{ = 0} \item \code{FunctionTraits::HiddenFriend}: the function is a hidden friend \item \code{FunctionTraits::Constrained} : the function has requires-constraints diff --git a/ltx/exprs.tex b/ltx/exprs.tex index bc2f5cc..4357a51 100644 --- a/ltx/exprs.tex +++ b/ltx/exprs.tex @@ -102,7 +102,7 @@ \subsection{\valueTag{ExprtSort::Empty}} \label{fig:ifc-empty-expression-structure} \end{figure} % -The \field{type} field is a reference to the type of the expresssion. +The \field{type} field is a reference to the type of the expression. The \field{locus} field is a reference to the source location. \partition{expr.empty} @@ -203,7 +203,7 @@ \subsection{\valueTag{ExprSort::Type}} Certain C++ source-level contexts permit both value expressions and type expressions. A \type{ExprIndex} value with tag \valueTag{ExprSort::Type} represents a reference to a type expression. The \field{index} field is an index into the type expression partition. -Each enty in that partition has two components: a \field{type} field, and a \field{locus} field. +Each entry in that partition has two components: a \field{type} field, and a \field{locus} field. % \begin{figure}[H] \centering @@ -349,12 +349,12 @@ \subsection{\valueTag{ExprSort::SimpleIdentifier}} \DeclareMember{type}{TypeIndex} \\ \DeclareMember{name}{NameIndex} \\ } - \caption{Structue of a simple-identifier expression} + \caption{Structure of a simple-identifier expression} \label{fig:ifc-simple-identifier-structure} \end{figure} % The \field{locus} field denotes the location of this expression. The \field{type}, if not null, denotes the -type of the expression. The \field{name} field desinates the simple identifier. +type of the expression. The \field{name} field designates the simple identifier. \partition{expr.simple-identifier} @@ -388,7 +388,7 @@ \subsection{\valueTag{ExprSort::QualifiedName}} An \type{ExprIndex} value with tag \valueTag{ExprSort::QualifiedName} designates a representation of C++ input source level grammar term \grammar{qualified-id}, typically in templated code that is not -yet sfully semantically analyzed. The \field{index} field of that abstract reference is an index into +yet fully semantically analyzed. The \field{index} field of that abstract reference is an index into the qualified name partition. Each entry of that partition has the following layout % \begin{figure}[H] @@ -404,8 +404,8 @@ \subsection{\valueTag{ExprSort::QualifiedName}} \end{figure} % The \field{elements} field designates the sequence of unqualified names (\sortref{UnqualifiedId}{ExprSort}) - in the source level construct. The \field{template\_keyword}, if not null, designates the present of - the \code{typename} keyword in the soure level to indicate to the parser that the qualified name names a type. + in the source level construct. The \field{template\_keyword}, if not null, designates the presence of + the \code{typename} keyword in the input source program to indicate to the parser that the qualified name actually names a type. \partition{expr.qualified-name} @@ -431,7 +431,7 @@ \subsection{\valueTag{ExprSort::Path}} \label{fig:ifc-path-expression-structure} \end{figure} % -The \field{scope} field denotes the qualifiying part of the expression. +The \field{scope} field denotes the qualifying part of the expression. The \field{member} field denotes the referenced member of the \field{scope}. The \field{locus} field denotes the source location. @@ -445,7 +445,7 @@ \subsection{\valueTag{ExprSort::Read}} a reference to an expression that reads from a given memory location. It is also used to represents so-called lvalue-to-rvalue conversions. The \field{index} field is an index into the read expression partition. -Each enty in that partition has three components: a \field{type} field, an \field{address} field, and a \field{locus} field. +Each entry in that partition has three components: a \field{type} field, an \field{address} field, and a \field{locus} field. % \begin{figure}[H] \centering @@ -495,7 +495,7 @@ \subsection{\valueTag{ExprtSort::Monad}} A \type{ExprIndex} value with tag \valueTag{ExprSort::Monad} represents the application of a (source-level) monadic operator to argument. The \field{index} field is an index into the monadic expression partition. -Each entry in that parrition has four components: a \field{type} field, a \field{opcat} field, an \field{argument} field, and a \field{locus} field. +Each entry in that partition has four components: a \field{type} field, a \field{opcat} field, an \field{argument} field, and a \field{locus} field. % \begin{figure}[H] \centering @@ -522,7 +522,7 @@ \subsection{\valueTag{ExprSort::Dyad}} A \type{ExprIndex} value with tag \valueTag{ExprSort::Monad} represents the application of a (source-level) dyadic operator (\secref{sec:ifc:OperatorSort:Dyadic}) to arguments. The \field{index} field is an index into the dyadic expression partition. -Each entry in that parrition has four components: a \field{type} field, a \field{opcat} field, an \field{arguments} field, and a \field{locus} field. +Each entry in that partition has four components: a \field{type} field, a \field{opcat} field, an \field{arguments} field, and a \field{locus} field. % \begin{figure}[H] \centering @@ -548,7 +548,7 @@ \subsection{\valueTag{ExprSort::Triad}} A \type{ExprIndex} value with tag \valueTag{ExprSort::Monad} represents the application of a (source-level) triadic operator (\secref{sec:ifc:OperatorSort:Triadic}) to arguments. The \field{index} field is an index into the triadic expression partition. -Each entry in that parrition has four components: a \field{type} field, a \field{opcat} field, an \field{arguments} field, and a \field{locus} field. +Each entry in that partition has four components: a \field{type} field, a \field{opcat} field, an \field{arguments} field, and a \field{locus} field. % \begin{figure}[H] \centering @@ -722,7 +722,7 @@ \subsection{\valueTag{ExprSort::MemberInitializer}} \label{sec:ifc:ExprSort:MemberInitializer} An \type{ExprIndex} value with tag \valueTag{ExprSort::MemberInitializer} designates the initialization of -a base-class subobject, or a non-static data member, or a call to a delagated constructor. The \field{index} +a base-class subobject, or a non-static data member, or a call to a delegated constructor. The \field{index} field of that abstract reference is an index into the member initializer partition. Each entry in that partition has the following layout % @@ -743,10 +743,10 @@ \subsection{\valueTag{ExprSort::MemberInitializer}} The \field{type} field denotes the type of the initialization. The \field{member} field, if not null, designates the non-static data member being initialized. The \field{base} field, if not null, designates the initialization of a base-class subobject. -Both fields \field{member} and \field{base} cannot be simulateneously non-null. -However, they can be simulateneously null; in that case, the expression is used +Both fields \field{member} and \field{base} cannot be simultaneously non-null. +However, they can be simultaneously null; in that case, the expression is used to represent a call to a delegated constructor. -The \field{initializer} field denotes the expression perfoming the initialization. +The \field{initializer} field denotes the expression performing the initialization. \partition{expr.member-initializer} @@ -815,7 +815,7 @@ \subsection{\valueTag{ExprSort::InitializerList}} An \type{ExprIndex} value with tag \valueTag{ExprSort::InitializerList} designates a brace-enclosed comma-separated sequence of expressions. -The \field{index} field is an index into the partition of initiliazer list expressions. +The \field{index} field is an index into the partition of initializer list expressions. Each entry in that partition is a structure with the following layout % \begin{figure}[H] @@ -839,7 +839,7 @@ \subsection{\valueTag{ExprSort::Cast}} \label{sec:ifc:ExprSort:Cast} An \type{ExprIndex} value with tag \valueTag{ExprSort::Cast} designates a conversion operation. -The conversion may be explicit (in the input source code) and implicit (as required by semantics analyzis). +The conversion may be explicit (in the input source code) and implicit (as required by semantics analysis). The \field{index} field of this abstract reference is a position into the partition of cast expressions. Each entry in that partition is a structure with the following layout % @@ -1173,7 +1173,7 @@ \subsection{\valueTag{ExprSort::Initializer}} \DeclareMember{expr}{ExprIndex} \\ \DeclareMember{sort}{InitializerSort} \\ } - \caption{Structure of an initialzer expression} + \caption{Structure of an initializer expression} \label{fig:ifc-initializer-structure} \end{figure} with \newtype{InitializerSort}{8} @@ -1309,8 +1309,8 @@ \subsection{\valueTag{ExprSort::ProductTypeValue}} \item \field{locus} denotes the source location of this expression. \item \field{type} denotes the type of this expression. \item \field{class} denotes the declaration of the class type of the object designated by this expression. - \item \field{members} denotes the sequence of direct non-baseclass subobjects of the object. - \item \field{base\_subobjects} denotes the sequence of baseclasse subobjects of the object. + \item \field{members} denotes the sequence of direct non-base class subobjects of the object. + \item \field{base\_subobjects} denotes the sequence of base class subobjects of the object. \end{itemize} \partition{expr.product-type-value} @@ -1546,7 +1546,7 @@ \subsection{\valueTag{ExprSort::TemplateReference}} \end{figure} % -The \field{member\_name} field designates the nane of the member; the \field{member\_locus} designates the source location where the member is declared. +The \field{member\_name} field designates the name of the member; the \field{member\_locus} designates the source location where the member is declared. The \field{scope} field designates the enclosing scope of the member. The \field{arguments} designates the set of template arguments to this member. The field \field{locus} is the source location where the expression appears. @@ -1677,7 +1677,7 @@ \subsection{\valueTag{ExprSort::Tokens}} A \type{ExprIndex} value with tag \valueTag{ExprSort::Tokens} represents an arbitrary token sequence (yet to be parsed) denoting an expression. The \field{index} field is an index into to the token sequence expression partition. -Each entry of that partition is a structure witht the following components: a \field{tokens} field, and a \field{locus} field. +Each entry of that partition is a structure with the following components: a \field{tokens} field, and a \field{locus} field. % \begin{figure}[H] \centering @@ -2410,7 +2410,7 @@ \subsection{Triadic operators} Source-level representation of ``\code{new(p) T(x)}'', where \begin{itemize} \item the first operand is the placement \code{p} - \item the second operand is the contructed type \code{T} + \item the second operand is the constructed type \code{T} \item the third operand is the initializing value \code{x} \end{itemize} @@ -2427,7 +2427,7 @@ \subsection{Storage operators} \label{sec:ifc:OperatorSort:Storage} A sort value \valueTag{OperatorSort::Storage} indicates a storage -allocation or deallocattion operator. The +allocation or deallocation operator. The value of the \field{index} is to be interpreted as a value of type \type{StorageOperator}, which is a set of $13$-bit values enumerated as follows. % diff --git a/ltx/file.tex b/ltx/file.tex index f24b368..5fb87aa 100644 --- a/ltx/file.tex +++ b/ltx/file.tex @@ -69,7 +69,7 @@ \section{Overview} \section{Multiple IFCs per file} \label{sec:ifc-multiple-ifcs-per-file} -The current specification only defines one IFC per containing file. However, the long term goal is to support multiple IFCs per contaning file. +The current specification only defines one IFC per containing file. However, the long term goal is to support multiple IFCs per containing file. Where there is a mention of "offset from the beginning of the file", it should be understood "offset from the beginning of the current IFC". \section{Type of IFC container} @@ -122,12 +122,12 @@ \subsection{File offset in bytes} \subsection{Cardinality: counting items} At various places, the IFC indicates how many elements there are in a given -table. That information is given by a 32-bit integer value abstacted as +table. That information is given by a 32-bit integer value abstracted as follows: \newtype{Cardinality}{32} \subsection{Extent of entities} \label{sec:ifc-entity-size} -At various places, in partitular in partition summaries (\secref{sec:ifc-partition}), the IFC needs to indicate +At various places, in particular in partition summaries (\secref{sec:ifc-partition}), the IFC needs to indicate the number of bytes contain in entity representation. That information is indicated by a 32-bit value of type \newtype{EntitySize}{32} @@ -296,7 +296,7 @@ \section{IFC File Header} \section{IFC Table of Contents} \label{sec:ifc-toc} -The data in an IFC are essentially homoegenous tables (called +The data in an IFC are essentially homogenous tables (called \emph{partitions}) with entries referencing each other. The table of @@ -342,7 +342,7 @@ \section{Elaboration vs. syntax tree} The IFC, like the IPR, is designed to represent all of C++, including extensions. This means representing faithfully non-template entities as well as template entities. An \term{elaboration} of an entity is the result of full semantics -anlysis (e.g. the result of name lookup, type checking, overload resolution, template specialization if needed, etc.) of that +analysis (e.g. the result of name lookup, type checking, overload resolution, template specialization if needed, etc.) of that entity. A node, in the abstract semantics graph of an IFC, representing a non-template is an elaboration. By contrast, semantics analysis of templates proceeds in two steps, by language definition. For example, in a template code where \code{T} is a type parameter, the meaning of the expression \code{T\{ 42 \}} depends both on the meaning and structure of the diff --git a/ltx/forms.tex b/ltx/forms.tex index a70c5d2..3687c07 100644 --- a/ltx/forms.tex +++ b/ltx/forms.tex @@ -235,7 +235,7 @@ \subsubsection{\valueTag{FormSort::Operator}} The field \field{locus} designates the source location of this form. The field \field{spelling} designates the sequence of characters making up that \grammar{preprocessing-op-or-punc}. The field \field{operator} designates the -soure-level preprocessing interpretation of that form. +source-level preprocessing interpretation of that form. \partition{pp.op} @@ -292,7 +292,7 @@ \subsubsection{\valueTag{FormSort::Parameter}} \label{sec:ifc:FormSort:Parameter} A \type{FormIndex} value with tag \valueTag{FormSort::Parameter} designates -the representation of a macro paramater. +the representation of a macro parameter. The \field{index} field is an index into the preprocessing parameter form partition. Each structure in that partition has the following layout diff --git a/ltx/ifc.tex b/ltx/ifc.tex index c8a0c1b..6971a10 100644 --- a/ltx/ifc.tex +++ b/ltx/ifc.tex @@ -33,7 +33,7 @@ %% Tag values \newcommand{\valueTag}[1]{\textsf{#1}} -%% Please don't show any of the stupid syntax hilighting stuff +%% Please don't show any of the stupid syntax highlighting stuff %\lstset{showstringspace=false} %% Turn off indentation of paragraph diff --git a/ltx/names.tex b/ltx/names.tex index 02a7048..0fe75a1 100644 --- a/ltx/names.tex +++ b/ltx/names.tex @@ -95,7 +95,7 @@ \subsection{\valueTag{NameSort::Literal}} \label{sec:ifc:NameSort:Literal} A \type{NameIndex} value with tag \valueTag{NameSort::Literal} represents a reference to a string literal operator name. -The \field{index} fied is an index into the string literal operator partition (\secref{sec:ifc-partition}). Each element in that +The \field{index} field is an index into the string literal operator partition (\secref{sec:ifc-partition}). Each element in that partition has two components: a \field{suffix} field, and an \field{encoded} field. % \begin{figure}[H] diff --git a/ltx/parse.tex b/ltx/parse.tex index 7bcb1fc..49a86f6 100644 --- a/ltx/parse.tex +++ b/ltx/parse.tex @@ -185,10 +185,10 @@ \subsubsection{\type{KeywordSort}} \ifcdoc{Public}{KeywordSort} Source-level keyword ``\code{public}''. \ifcdoc{Protected}{KeywordSort} Source-level keyword ``\code{protected}''. \ifcdoc{Private}{KeywordSort} Source-level keyword ``\code{private}''. -\ifcdoc{Default}{KeywordSort} Source-level keywprd ``\code{default}''. +\ifcdoc{Default}{KeywordSort} Source-level keyword ``\code{default}''. \ifcdoc{Delete}{KeywordSort} Source-level keyword ``\code{delete}''. \ifcdoc{Mutable}{KeywordSort} Source-level keyword ``\code{mutable}''. -\ifcdoc{Constexpr}{KeywordSort} Source-level keywprd ``\code{constexpr}''. +\ifcdoc{Constexpr}{KeywordSort} Source-level keyword ``\code{constexpr}''. \ifcdoc{Consteval}{KeywordSort} Source-level keyword ``\code{consteval}''. \ifcdoc{Typename}{KeywordSort} Source-level keyword ``\code{typename}''. @@ -258,7 +258,7 @@ \subsection{\valueTag{SyntaxSort::PlaceholderTypeSpecifier}} designates the source location of the syntax of the placeholder type (denoted by \code{auto} or \code{decltype(auto)}). Finally the \field{locus} field denotes the source location of the entire syntax for the placeholder type; -this source location may be different from that desinated by \field{keyword} +this source location may be different from that designated by \field{keyword} if there are additional constraints (as indicated by the use of a concept type). \partition{syntax.placeholder-type-specifier} @@ -509,7 +509,7 @@ \subsection{\valueTag{SyntaxSort::TypeId}} \label{sec:ifc:SyntaxSort:TypeId} A \type{SyntaxIndex} value with tag \valueTag{SyntaxSort::TypeId} designates the source-level -syntactic contruct \grammar{type-id} which is the syntax +syntactic construct \grammar{type-id} which is the syntax \grammar{type-specified-seq} optionally followed by \grammar{abstract-declarator}. The \field{index} field of that abstract reference is an index into the syntax of type-id partition. Each entry of that partition is a structure with the following layout: @@ -698,7 +698,7 @@ \subsection{\valueTag{SyntaxSort::ArrayOrFunctionDeclarator}} \end{figure} % The \field{declarator} field denotes the outer declarator, while the \field{next} field -denotes the innner declarator. +denotes the inner declarator. \partition{syntax.array-or-function-declarator} diff --git a/ltx/srcloc.tex b/ltx/srcloc.tex index db18358..2584bcf 100644 --- a/ltx/srcloc.tex +++ b/ltx/srcloc.tex @@ -2,7 +2,7 @@ At various places, especially in the description of declarations (\secref{sec:ifc-decls}), it is necessary to specify locations in input source code. Ideally, there should be distinction between source location as seen by the -user (before macro expansions), a span of source location, and location traking macro expansions. +user (before macro expansions), a span of source location, and location tracking macro expansions. For the time being, source location is described in a fairly simplistic way using the unsophisticated structure \type{SourceLocation} defined as follows: % diff --git a/ltx/traits.tex b/ltx/traits.tex index 83286d5..b9a4824 100644 --- a/ltx/traits.tex +++ b/ltx/traits.tex @@ -39,7 +39,7 @@ \section{Template specializations} The type \type{T} of the \field{trait} associated with \field{decl} is \type{Sequence} (\secref{sec:ifc-sequence}) of \type{Declaration}s (\figref{fig:ifc-declaration-structure}), -denothing the sequence of descriptions for each specialization of the template \field{decl}. The +denoting the sequence of descriptions for each specialization of the template \field{decl}. The value of the field \field{trait.start} is an index into the scope member partition (\secref{sec:ifc-scope-member}), and the field \field{trait.cardinality} gives the number of \type{Declaration}s in that sequence. @@ -57,7 +57,7 @@ \section{Friendship of a class} The type \type{T} of the \field{trait} associated with \field{decl} is \type{Sequence} (\secref{sec:ifc-sequence}) of \type{Declaration}s (\figref{fig:ifc-declaration-structure}), -denothing the sequence of descriptions for each declared friend of \field{decl}. The +denoting the sequence of descriptions for each declared friend of \field{decl}. The value of the field \field{trait.start} is an index into the scope member partition (\secref{sec:ifc-scope-member}), and the field \field{trait.cardinality} gives the number of \type{Declaration}s in that sequence. @@ -92,7 +92,7 @@ \section{Function Definition} \section{Template Alias} \label{sec:ifc-template-alias-trait} -MSVC, in its current form, uses syntax trees (\secref{sec:ifc-syntax-tree-table}) to represesent +MSVC, in its current form, uses syntax trees (\secref{sec:ifc-syntax-tree-table}) to represent declarations of template aliases. For each template alias declaration \field{decl}, the type \type{T} of the corresponding \field{trait} is \type{SyntaxIndex} (\figref{fig:ifc-syntax-index}). @@ -140,7 +140,7 @@ \section{MSVC vendor-specific traits} The MSVC compiler associates a certain set of vendor-specific traits to most declarations. These vendor-specific traits are represented by the 32-bit bitmask type \type{MsvcTraits} -idefined n \secref{sec:ifc-msvc-trait-bitset}. +defined in \secref{sec:ifc-msvc-trait-bitset}. \partition{.msvc.trait.vendor-traits} diff --git a/ltx/types.tex b/ltx/types.tex index 8399b58..daea39c 100644 --- a/ltx/types.tex +++ b/ltx/types.tex @@ -136,7 +136,7 @@ \subsubsection{Fundamental type basis} \subsubsection{Fundamental type precision} \label{sec:ifc-fundamental-type-precision} -The bit precision of a funamental type is a value of type \type{TypePrecision} defined as follows: +The bit precision of a fundamental type is a value of type \type{TypePrecision} defined as follows: % \begin{typedef}{TypePrecision}{} enum class TypePrecision : uint8_t { @@ -241,7 +241,7 @@ \subsection{\valueTag{TypeSort::Syntactic}} an abstract reference to type expressed at the C++ source-level as a type-id. Typical examples include a template-id designating a specialization. The \field{index} field is an index into the syntactic type partition. -Each entry in that partition is a structure wth a single component: the \field{expr} field. +Each entry in that partition is a structure with a single component: the \field{expr} field. % \begin{figure}[H] \centering @@ -411,7 +411,7 @@ \subsection{\valueTag{TypeSort::Function}} The \field{source} field denotes the parameter type list. A null \field{source} value indicates no parameter type. If the function type has at most one parameter type, the \field{source} denotes that type. Otherwise, it is a tuple type made of all the parameter types. -The \field{eh\_spec} denotes the C++ souce-level noexcept-specification. +The \field{eh\_spec} denotes the C++ source-level noexcept-specification. The \field{convention} field denotes the calling convention of the function type. The \field{traits} field denotes additional function type traits. @@ -434,7 +434,7 @@ \subsubsection{Function type traits} % with the following meaning \begin{itemize} - \item \code{FunctionTypeTraits::None}: the function type is that of a function that is not non-static member (either a non-menber function + \item \code{FunctionTypeTraits::None}: the function type is that of a function that is not non-static member (either a non-member function or a static member function). \item \code{FunctionTypeTraits::Const}: the function type is that of a function that is a non-static member function declared with a \code{const} qualifier. @@ -526,7 +526,7 @@ \subsection{\valueTag{TypeSort::Method}} one parameter type, the \field{source} denotes that type. Otherwise, it is a tuple type made of all the parameter types. The \field{scope} denotes the C++ source-level enclosing class type. -The \field{eh\_spec} denotes the C++ souce-level noexcept-specification. +The \field{eh\_spec} denotes the C++ source-level noexcept-specification. The \field{convention} field denotes the calling convention of the function type. The \field{traits} field denotes additional function type traits. @@ -586,7 +586,7 @@ \subsection{\valueTag{TypeSort::Qualified}} A \type{TypeIndex} value with tag \valueTag{TypeSort::Qualified} represents an abstract reference to a C++ source-level cv-qualified type. The \field{index} field is an index into the qualified type partition. -Each entrry in that partition is a structure with two components: the \field{unqualified} field, +Each entry in that partition is a structure with two components: the \field{unqualified} field, and the \field{qualifiers} field. % \begin{figure}[H] @@ -738,7 +738,7 @@ \subsection{\valueTag{TypeSort::Tuple}} A \type{TypeIndex} value with tag \valueTag{TypeSort::Tuple} represents an abstract reference to tuple type, i.e. finite sequence of types. The \field{index} field is an index into the tuple type partition. -Each entry in that partition is a structrure with two components: a \field{start} field, +Each entry in that partition is a structure with two components: a \field{start} field, and a \field{cardinality} field. % \begin{figure}[H] @@ -812,7 +812,7 @@ \subsection{\valueTag{TypeSort::SyntaxTree}} \label{sec:ifc:TypeSort:SyntaxTree} A \type{TypeIndex} value with tag \valueTag{TypeSort::SyntaxTree} represents an abstract -reference to a type designated by a raw syntax contruct (\secref{sec:ifc-syntax-tree-table}). +reference to a type designated by a raw syntax construct (\secref{sec:ifc-syntax-tree-table}). The \field{index} field is an index into the syntax tree type partition. Each entry in that partition is a structure with a single component: the \field{syntax} field: % diff --git a/ltx/words.tex b/ltx/words.tex index fc5639e..143af49 100644 --- a/ltx/words.tex +++ b/ltx/words.tex @@ -868,7 +868,7 @@ \subsubsection{\valueTag{WordSort::Keyword}} \ifcdoc{Msvc}{SourceKeyword} No reserved word of this value shall be produced. All MSVC-specific -reserved words have values greater than thi.s +reserved words have values greater than this. \ifcdoc{MsvcAsm}{SourceKeyword} A reserved word for the MSVC extension ``\code{__asm}''. \ifcdoc{MsvcAssume}{SourceKeyword} A reserved word for the MSVC extension ``\code{__assume}''.