<subsection|Sec 2.12: Precedence and Order of Evaluation>
+ <section|Ch3: Control Flow>
+
+ <subsection|Sec 3.1: Statements and Blocks>
+
+ <subsection|Sec 3.2: If-Else>
+
+ <subsection|Sec 3.3: Else-If>
+
+ <\description>
+ <item*|Exercise 3-1>Our binary search makes two tests inside th eloop,
+ when one would suffice (at the price of more tests outside). Write a
+ version with only one test inside the loop and measure the difference in
+ run-time.
+ </description>
+
+ <subsection|Sec 3.4: Switch>
+
+ <\description>
+ <item*|Exercise 3-2>Write a function <cpp|escape(s,t)> that converts
+ characters like newline and tab into visible escape sequences like
+ <cpp|\\n> and <cpp|\\t> as it copies the string <cpp|t> to <cpp|s>. Use a
+ <cpp|switch>. Write a function for the other direction as well,
+ converting escape sequences into the real characters.
+ </description>
+
+ <subsection|Sec 3.5: Loops>
+
+ <\description>
+ <item*|Exercise 3-3>Write a function <cpp|expand(s1,s2)> that expands
+ shorthand notations like <cpp|a-z> in the string <cpp|s1> into the
+ equivalent complete list <cpp|abc...xyz> in <cpp|s2>. Allow for letters
+ of either case and digits, and be prepared to handle cases like
+ <cpp|a-b-c> and <cpp|a-z0-9> and <cpp|-a-z>. Arrange that a leading or
+ trailing <cpp|-> is taken literally.
+ </description>
+
+ <\subsection>
+ Sec 3.6: Loops\UDo-while
+ </subsection>
+
+ <\description>
+ <item*|Exercise 3-4>In a two's complement number representation, our
+ version of <cpp|itoa> does not handle the largest negative number, that
+ is, the value of <cpp|n> equal to <math|-<around*|(|2<rsup|<text|wordsize>-1>|)>>.
+ Explain why not. Modify it to print that value correctly, regardless of
+ the machine on which it runs.
+
+ <item*|Exercise 3-5>Write the function <cpp|itob(n,s,b)> that converts
+ the integer <cpp|n> into a base <cpp|b> character representation in the
+ string <cpp|s>. In particular, <cpp|itob(n,s,16)> formats <cpp|n> as a
+ hexadecimal integer in <cpp|s>.
+
+ <item*|Exercise 3-6>Write a version of <cpp|itoa> that accepts three
+ arguments instead of two. The third argument is a minimum field width;
+ the converted number must be padded with blanks on the left if necessary
+ to make it wide enough.
+ </description>
+
+ <subsection|Sec 3.7: Break and Continue>
+
+ <subsection|Sec 3.8: Goto and Labels>
+
+ <section|Ch 4: The C Preprocessor>
+
+ <subsection|Sec 4.1: Basics of Functions>
+
+ <\description>
+ <item*|Exercise 4-1>Write the function <cpp|strrindex(s,t)>, which
+ returns the position of the <em|rightmost> occurence of <cpp|t> in
+ <cpp|s>, or <cpp|-1> if there is none.
+ </description>
+
+ <subsection|Sec 4.2: Functions Returning Non-integers>
+
+ <\description>
+ <item*|Exercise 4-2>Extend <cpp|atof> to handle scientific notation of
+ the form
+
+ <\cpp-code>
+ 123.45e-6
+ </cpp-code>
+
+ where a floating-point number may be followed by <cpp|e> or <cpp|E> and
+ an optionally signed exponent.
+ </description>
+
+ <subsection|Sec 4.3: External Variables>
+
+ <\description>
+ <item*|Exercise 4-3>Given the basic framework, it's straightforward to
+ extend the calculator. Add the modulus (<cpp|%>) operator and provisions
+ for negative numbers.
+
+ <item*|Exercise 4-4>Add commands to print the top element of the stack
+ without popping, to duplicate it, and to swap the top two elements. Add a
+ command to clear the stack.
+
+ <item*|Exercise 4-5>Add access to library functions like <cpp|sin>,
+ <cpp|exp>, and <cpp|pow>. See <cpp|\<less\>math.h\<gtr\>> in Appendix B,
+ Section 4.
+
+ <item*|Exercise 4-6>Add commands for handling variables. (It's easy to
+ provide twenty-six variables with single-letter names.) Add a variable
+ for the most recently printed value.
+
+ <item*|Exercise 4.7>Write a routine <cpp|ungets(s)> that will push back
+ an entire string onto the input. Should <cpp|ungets> know about <cpp|buf>
+ and <cpp|bufp>, or should it just use <cpp|ungetch>?
+
+ <item*|Exercise 4-8>Suppose that there will never be more than one
+ character of pushback. Modify <cpp|getch> and <cpp|ungetch> accordingly.
+
+ <item*|Exercise 4-9>Our <cpp|getch> and <cpp|ungetch> do not handle a
+ pushed-back <cpp|EOF> correctly. Decide what their properties ought to be
+ if an <cpp|EOF> is pushed back, then implement your design.
+
+ <item*|Exercise 4-10>An alternate organization uses <cpp|getline> to read
+ an entire input line; this makes <cpp|getch> andj <cpp|ungetch>
+ unnecessary. Revise the calculator to use this approach.
+ </description>
+
+ <subsection|Sec 4.4: Scope Rules>
+
+ <subsection|Sec 4.5: Header Files>
+
+ <subsection|Sec 4.6: Static Variables>
+
+ <subsection|Sec 4.7: Register Variables>
+
+ <subsection|Sec 4.8: Block Structure>
+
+ <subsection|Sec 4.9: Initialization>
+
+ <subsection|Sec 4.10: Recursion>
+
+ <\description>
+ <item*|Exercise 4-12>Adapt the ideas of <cpp|printd> to write a recursive
+ version of <cpp|itoa>; that is, convert an integer into a string by
+ calling a recursive routine.
+
+ <item*|Exercise 4-13>Write a recursive version of the function
+ <cpp|reverse(s)>, which reverses the string <cpp|s> in place.
+ </description>
+
+ <subsection|Sec 4.11: The C Preprocessor>
+
+ <subsubsection|Sec 4.11.1: File Inclusion>
+
+ <subsubsection|Sec 4.11.2: Macro Substitution>
+
+ <\description>
+ <item*|Exercise 4-14>Define a macro <cpp|swap(t,x,y)> that interchanges
+ two arguments of type <cpp|t>. (Block structure will help.)
+ </description>
+
+ <subsubsection|Sec 4.11.3: Conditional Inclusion>
+
+ <section|Ch 5: Pointers and Arrays>
+
+ <subsection|Sec 5.1: Pointers and Addresses>
+
+ <subsection|Sec 5.2: Pointers and Function Arguments>
+
+ <\description>
+ <item*|Exercise 5-1>As written, <cpp|getint> treats a <cpp|+> or <cpp|->
+ not followed by a digit as a valid representation of zero. Fix it to push
+ such a character back onto the input.
+
+ <item*|Exercise 5-2>Write <cpp|getfloat>, the floating-point analog of
+ <cpp|getint>. What type does <cpp|getfloat> return as its function value?
+ </description>
+
+ <subsection|Sec 5.3: Pointers and Arrays>
+
+ <subsection|Sec 5.4: Address Arithmetic>
+
+ <subsection|Sec 5.5: Character Pointers and Functions>
+
+ <\description>
+ <item*|Exercise 5-3>Write a pointer version of the function <cpp|strcat>
+ that we showed in Chapter 2: <cpp|strcat(s,t)> copies the string <cpp|t>
+ to the end of <cpp|s>.
+
+ <item*|Exercise 5-4>Write the function <cpp|strend(s,t)>, which returns
+ <cpp|1> if the string <cpp|t> occurs at the end of the string <cpp|s>,
+ and zero otherwise.
+
+ <item*|Exercise 5-5>Write versions of the library functions
+ <cpp|strncpy>, <cpp|strncat>, and <cpp|strncmp>, which operate on at most
+ the first <cpp|n> characters of their argument strings. For example,
+ <cpp|strncpy(s,t,n)> copies at most <cpp|n> characters of <cpp|t> to
+ <cpp|s>. Full descriptions are in Appendix B.
+
+ <item*|Exercise 5-6>Rewrite appropriate programs from earlier chapters
+ and exercises with pointers instead of array indexing. Good possibilities
+ include <cpp|getline> (Chapters 1 and 4), <cpp|atoi>, <cpp|itoa>, and
+ their variants (Chapters 2, 3, and 4), <cpp|reverse> (Chapter 3), and
+ <cpp|strindex> and <cpp|getop> (Chapter 4).
+ </description>
+
+ <subsection|Sec 5.6: Pointer Arrays; Pointers to Pointers>
+
+ <\description>
+ <item*|Exercise 5-7>Rewrite <cpp|readlines> to store lines in an array
+ supplied by <cpp|main>, rather than calling <cpp|alloc> to maintain
+ storage. How much faster is the program?
+ </description>
+
+ <subsection|Sec 5.7: Multi-dimensional Arrays>
+
+ <\description>
+ <item*|Exercise 5-8>There is no error checking in <cpp|day_of_year> or
+ <cpp|month_day>. Remedy this defect.
+ </description>
+
+ <subsection|Sec 5.8: Initialization of Pointer Arrays>
+
+ <subsection|Sec 5.9: Pointers vs. Multi-dimensional Arrays>
+
+ <\description>
+ <item*|Exercise 5-9>Rewrite the routines <cpp|day_of_year> and
+ <cpp|month_day> with pointers instead of reindexing.
+ </description>
+
+ <subsection|Sec 5.10: Command-line Arguments>
+
+ \;
+
+ <\description>
+ <item*|Exercise 5-10>Write the program <cpp|expr>, which evaluates a
+ reverse Polish expression fromt he command line, where each operator or
+ operand is a separate argument. For example,
+
+ <\cpp-code>
+ expr \ 2 \ 3 \ 4 \ + \ *
+ </cpp-code>
+
+ evaluates <math|2\<times\><around*|(|3+4|)>>.
+
+ <item*|Exercise 5-11>Modify the programs <cpp|entab> and <cpp|detab>
+ (written as exercises in Chapter 1) to accept a list of tab stops as
+ arguments. Use the default tab settings if there are no arguments.
+
+ <item*|Exercise 5-12>Extend <cpp|entab> and <cpp|detab> to accept the
+ shorthand
+
+ <\cpp-code>
+ entab -<text|<em|m>> +<text|<em|n>>
+ </cpp-code>
+
+ to mean tab stops every <em|n> columns, starting at column <em|m>. Choose
+ convenient (for the user) default behavior.
+
+ <item*|Exercise 5-13>Write the program <cpp|tail>, which prints the last
+ <em|n> lines of its input. By default, <em|n> is <math|10>, let us say,
+ but it canb e changed by an optional argument so that
+
+ <\cpp-code>
+ tail -<text|<em|n>>
+ </cpp-code>
+
+ prints the last <em|n> lines. The program should behave rationally no
+ matter how unreasonable the input or the value of <em|n>. Write the
+ program so it makes the best use of available storage; lines should be
+ stored as in the sorting program of Section 5.6, not in a two-dimensional
+ array of fixed size.
+ </description>
+
+ <subsection|Sec 5.11: Pointers to Functions>
+
+ <\description>
+ <item*|Exercise 5-14>Modify the sort program to handle a <cpp|-r> flag,
+ which indicates sorting in reverse (decreasing) order. Be sure that
+ <cpp|-r> works with <cpp|-n>.
+
+ <item*|Exercise 5-15>Add the option <cpp|-f> to fold upper and lower case
+ together, so that case distinctions are not made during sorting; for
+ example, <cpp|a> and <cpp|A> compare equal.
+
+ <item*|Exercise 5-16>Add the <cpp|-d> (\Pdirectory\Q) option, which makes
+ comparisons only on letters, numbers, and blanks. Make sure it works in
+ conjunction with <cpp|-f>.
+
+ <item*|Exercise 5-17>Add a field-handling capability, so sorting may be
+ done on fields within lines, each field sorted according to an
+ independent set of options. (The index for this book was sorted with
+ <cpp|-df> for the index category and <cpp|-n> for the page numbers.)
+ </description>
+
+ <subsection|Sec 5.12: Complicated Declarations>
+
+ <\description>
+ <item*|Exercise 5-18>Make <cpp|dcl> recover from input errors.
+
+ <item*|Exercise 5-19>Modify <cpp|undcl> so that it does not add redundant
+ parentheses to declarations.
+
+ <item*|Exercise 5-20>Expand <cpp|dcl> to handle declarations with
+ function argument types, qualifiers like <cpp|const>, and so on.
+ </description>
+
+ <section|Ch 6: Structures>
+
+ <subsection|Sec 6.1: Basics of Structures>
+
+ <subsection|Sec 6.2: Structures and Functions>
+
+ <subsection|Sec 6.3: Arrays of Structures>
+
+ <\description>
+ <item*|Exercise 6-1>Our version of <cpp|getword> does not properly handle
+ underscores, string constants, comments, or preprocessor control lines.
+ Write a better version.
+ </description>
+
+ <subsection|Sec 6.4: Pointers to Structures>
+
+ <subsection|Sec 6.5: Self-referential Structures>
+
+ <\description>
+ <item*|Exercise 6-2>Write a program that reads a <name|C> program and
+ prints in alphabetical order each group of variable names that are
+ identical in the first <math|6> characters, but different somewhere
+ thereafter. Don't count words within strings and comments. Make <math|6>
+ a parameter that can be set from the command line.
+
+ <item*|Exercise 6-3>Write a cross-referencer that prints a list of all
+ words in a document, and, for each word, a lis tof the line numbers on
+ which it occurs. Remove noise words like \Pthe\Q, \Pand\Q, and so on.
+
+ <item*|Exercise 6-4>Write a program that prints the distinct words in its
+ input sorted into decreasing order of frequency of occurrence. Precede
+ each word by its count.
+ </description>
+
+ <subsection|Sec 6.6: Table Lookup>
+
+ <\description>
+ <item*|Exercise 6-5>Write a function <cpp|undef> that will remove a name
+ and definition from the table maintained by <cpp|lookup> and
+ <cpp|install>.
+
+ <item*|Exercise 6-6>Implement a simple version of the <cpp|#define>
+ processor (i.e., no arguments) suitable for use with <name|C> programs,
+ based on the routines of this section. You may also find <cpp|getch> and
+ <cpp|ungetch> helpful.
+ </description>
+
+ <subsection|Sec 6.7: Typedef>
+
+ <subsection|Sec 6.8: Unions>
+
+ <subsection|Sec 6.9: Bit-fields>
+
+ <section|Ch 7: Input and Output>
+
+ <subsection|Sec 7.1: Standard Input and Output>
+
+ <\description>
+ <item*|Exercise 7-1>Write a program that converts upper case to lower or
+ lower case to upper, depending on the name it is invoked with, as found
+ in <cpp|argv[0]>.
+ </description>
+
+ <subsection|Sec 7.2: Formatted Output\UPrintf>
+
+ <\description>
+ <item*|Exercise 7-2>Write a program that will print arbitrary input in a
+ sensible way. AS a minimum, it ishould print non-graphic characters in
+ octal or hexadecimal according to local custom, and break long text
+ lines.
+ </description>
+
+ <subsection|Sec 7.3: Variable-length Argument Lists>
+
+ <\description>
+ <item*|Exercise 7-3>Revise <cpp|minprintf> to handle more of the other
+ facilities of <cpp|printf>.
+ </description>
+
+ <subsection|Sec 7.4: Formatted Input\UScanf>
+
+ <\description>
+ <item*|Exercise 7-4>Write a private version of <cpp|scanf> analogous to
+ <cpp|minprintf> from the previous section.
+
+ <item*|Exercise 7-5>Rewrite the postfix calculator of Chapter 4 to use
+ <cpp|scanf> and/or <cpp|sscanf> to do the input and number conversion.
+ </description>
+
+ <subsection|Sec 7.5: File Access>
+
+ <subsection|Sec 7.6: Error Handling\UStderr and Exit>
+
+ <subsection|Sec 7.7: Line Input and Output>
+
+ <\description>
+ <item*|Exercise 7-6>Write a program to compare two files, printing the
+ first line where they differ.
+
+ <item*|Exercise 7-7>Modify the pattern finding program of Chapter 5 to
+ take its input from a set of named files or, if no files are named as
+ arguments, from the standard input. Should the file name be printed when
+ a matching line is found?
+
+ <item*|Exercise 7-8>Write a program to print a set of files, starting
+ each new one on a new page, with a title and a running page count for
+ each file.
+ </description>
+
+ <subsection|Sec 7.8: Miscellaneous Functions>
+
+ <subsubsection|Sec 7.8.1: String Operations>
+
+ <subsubsection|Sec 7.8.2: Character Class Testing and Conversion>
+
+ <subsubsection|Sec 7.8.3: Ungetc>
+
+ <subsubsection|Sec 7.8.4: Command Execution>
+
+ <subsubsection|Sec 7.8.5: Storage Management>
+
+ <subsubsection|Sec 7.8.6: Mathematical Functions>
+
+ <subsubsection|Sec 7.8.7: Random Number Generation>
+
+ <\description>
+ <item*|Exercise 7-9>Functions like <cpp|isupper> can be implemented to
+ save space or to save time. Explore both possibilities.
+ </description>
+
+ <section|Ch 8: The UNIX System Interface>
+
+ <subsection|Sec 8.1: File Descriptors>
+
+ <subsection|Sec 8.2: Low Level I/O\URead and Write>
+
+ <subsection|Sec 8.3: Open, Creat, Close, Unlink>
+
+ <\description>
+ <item*|Exercise 8-1>Rewrite the program <cpp|cat> from Chapter 7 using
+ <cpp|read>, <cpp|write>, <cpp|open>, and <cpp|close> instead of their
+ standard library equivalents. Perform experiemnts to determine the
+ relative speeds of the two versions.
+ </description>
+
+ <subsection|Sec 8.4: Random Access\ULseek>
+
+ <subsection|Sec 8.5: Example\UAn Implementation of Fopen and Getc>
+
+ <\description>
+ <item*|Exercise 8-2>Rewrite <cpp|fopen> and <cpp|_fillbuf> with fields
+ instead of explicit bit operations. Compare code size and execution
+ speed.
+
+ <item*|Exercise 8-3>Design and write <cpp|_flushbuf>, <cpp|fflush>, and
+ <cpp|fclose>.
+
+ <item*|Exercise 8-4>The standard library function
+
+ <\cpp-code>
+ int fseek(FILE *fp, long offset, int origin)
+ </cpp-code>
+
+ is identical to <cpp|lseek> except that <cpp|fp> is a file pointer
+ instead of a file descriptor and the return value is an <cpp|int> status,
+ not a position. Write <cpp|fseek>. Make sure that your <cpp|fseek>
+ coordinates properly with the buffering done for the other functions of
+ the library.
+ </description>
+
+ <subsection|Sec 8.6: Example\UListing Directories>
+
+ <\description>
+ <item*|Exercise 8-5>Modify the <cpp|fsize> program to print the other
+ information contained in the inode entry.
+ </description>
+
+ <subsection|Sec 8.7: Example\UA Storage Allocator>
+
+ <\description>
+ <item*|Exercise 8-6>The standard library function <cpp|calloc(n,size)>
+ returns a pointer to <cpp|n> objects of size <cpp|size>, with the storage
+ initialized to zero. Write <cpp|calloc>, by calling <cpp|malloc> or by
+ modifying it.
+
+ <item*|Exercise 8-7><cpp|malloc> accepts a size request without checking
+ its plausibility; <cpp|free> believes that the block it is asked to free
+ contains a valid size field. Improve these routins so they take more
+ pains with error checking.
+
+ <item*|Exercise 8-8>Write a routine <cpp|bfree(p,n)> that will free an
+ arbitrary block <cpp|p> of <cpp|n> characters into the free list
+ maintained by <cpp|malloc> and <cpp|free>. By using <cpp|bfree>, a user
+ can add a static or external array to the free list at any time.
+ </description>
+
\;
\;
<\collection>
<associate|auto-1|<tuple|1|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
<associate|auto-10|<tuple|1.1.5.3|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-100|<tuple|1.8.7|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
<associate|auto-11|<tuple|1.1.5.4|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
<associate|auto-12|<tuple|1.1.6|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
<associate|auto-13|<tuple|1.1.7|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
<associate|auto-28|<tuple|1.2.11|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
<associate|auto-29|<tuple|1.2.12|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
<associate|auto-3|<tuple|1.1.1|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
- <associate|auto-30|<tuple|1.2.13|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-30|<tuple|1.3|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-31|<tuple|1.3.1|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-32|<tuple|1.3.2|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-33|<tuple|1.3.3|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-34|<tuple|1.3.4|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-35|<tuple|1.3.5|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-36|<tuple|1.3.6|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-37|<tuple|1.3.7|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-38|<tuple|1.3.8|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-39|<tuple|1.4|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
<associate|auto-4|<tuple|1.1.2|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-40|<tuple|1.4.1|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-41|<tuple|1.4.2|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-42|<tuple|1.4.3|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-43|<tuple|1.4.4|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-44|<tuple|1.4.5|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-45|<tuple|1.4.6|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-46|<tuple|1.4.7|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-47|<tuple|1.4.8|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-48|<tuple|1.4.9|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-49|<tuple|1.4.10|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
<associate|auto-5|<tuple|1.1.3|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-50|<tuple|1.4.11|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-51|<tuple|1.4.11.1|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-52|<tuple|1.4.11.2|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-53|<tuple|1.4.11.3|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-54|<tuple|1.5|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-55|<tuple|1.5.1|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-56|<tuple|1.5.2|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-57|<tuple|1.5.3|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-58|<tuple|1.5.4|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-59|<tuple|1.5.5|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
<associate|auto-6|<tuple|1.1.4|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-60|<tuple|1.5.6|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-61|<tuple|1.5.7|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-62|<tuple|1.5.8|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-63|<tuple|1.5.9|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-64|<tuple|1.5.10|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-65|<tuple|1.5.11|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-66|<tuple|1.5.12|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-67|<tuple|1.6|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-68|<tuple|1.6.1|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-69|<tuple|1.6.2|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
<associate|auto-7|<tuple|1.1.5|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-70|<tuple|1.6.3|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-71|<tuple|1.6.4|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-72|<tuple|1.6.5|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-73|<tuple|1.6.6|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-74|<tuple|1.6.7|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-75|<tuple|1.6.8|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-76|<tuple|1.6.9|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-77|<tuple|1.7|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-78|<tuple|1.7.1|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-79|<tuple|1.7.2|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
<associate|auto-8|<tuple|1.1.5.1|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-80|<tuple|1.7.3|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-81|<tuple|1.7.4|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-82|<tuple|1.7.5|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-83|<tuple|1.7.6|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-84|<tuple|1.7.7|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-85|<tuple|1.7.8|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-86|<tuple|1.7.8.1|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-87|<tuple|1.7.8.2|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-88|<tuple|1.7.8.3|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-89|<tuple|1.7.8.4|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
<associate|auto-9|<tuple|1.1.5.2|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-90|<tuple|1.7.8.5|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-91|<tuple|1.7.8.6|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-92|<tuple|1.7.8.7|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-93|<tuple|1.8|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-94|<tuple|1.8.1|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-95|<tuple|1.8.2|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-96|<tuple|1.8.3|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-97|<tuple|1.8.4|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-98|<tuple|1.8.5|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-99|<tuple|1.8.6|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
</collection>
</references>