Mercurial > ~dholland > hg > ag > index.cgi
view doc/misc/html/ugcont.html @ 7:57b2cc9b87f7
Use memcpy instead of strncpy when we know the length anyway.
Modern gcc seems to think it knows how to detect misuse of strncpy,
but it's wrong (in fact: very, very wrong) and the path of least
resistance is to not try to fight with it.
author | David A. Holland |
---|---|
date | Mon, 30 May 2022 23:47:52 -0400 |
parents | 13d2b8934445 |
children |
line wrap: on
line source
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD> <Title>AnaGram User's Guide - Table of Contents</Title> </HEAD> <BODY BGCOLOR="#ffffff" BACKGROUND="tilbl6h.gif" TEXT="#000000" LINK="#0033CC" VLINK="#CC0033" ALINK="#CC0099"> <P> <IMG ALIGN="right" SRC="images/agrsl6c.gif" ALT="AnaGram" WIDTH=124 HEIGHT=30> <BR CLEAR="RIGHT"> </P> Back to <A HREF="index.html">Index</A> <P> <IMG ALIGN="bottom" SRC="images/rbline6j.gif" ALT="----------------------" WIDTH=1010 HEIGHT=2 > <P> <H1> AnaGram User's Guide</H1> <H2>Table of Contents</H2> <IMG ALIGN="bottom" SRC="images/rbline6j.gif" ALT="----------------------" WIDTH=1010 HEIGHT=2 > <H3>Chapter 1: Introduction to AnaGram</H3> <H3>Chapter 2: Getting Started</H3> 2.1 Hardware and Software Requirements<BR> 2.2 Installation<BR> 2.3 Configuration<BR> 2.4 Familiarizing Yourself with AnaGram<BR> 2.5 Guide to this Manual<BR> 2.6 Examples<BR> <H3>Chapter 3: Running AnaGram</H3> 3.1 Overview<BR> 3.2 Executables<BR> 3.3 Input Files<BR> 3.4 Output Files<BR> 3.5 AnaGram's Help<BR> 3.6 Control Panel Components<BR> 3.6.1 Action Menu<BR> 3.6.2 Browse Menu<BR> 3.6.3 Options Menu<BR> 3.6.4 Windows Menu<BR> 3.6.5 Help Menu<BR> 3.6.6 Control Panel Toolbar<BR> 3.6.7 Status Indicator<BR> 3.6.8 Search<BR> 3.7 Statistical Summary<BR> 3.8 Auxiliary Windows Pop up Menu<BR> 3.9 Keyboard Control<BR> <H3>Chapter 4: Introduction to Syntax Directed Parsing</H3> 4.1 Describing an Input Sequence<BR> 4.2 How a Parser Works<BR> 4.3 A Note on Notation<BR> 4.4 Reduction Procedures<BR> 4.5 Building a Parser<BR> 4.6 Special Features of AnaGram<BR> <H3>Chapter 5: Exploring Your Grammar I: Traces</H3> 5.1 Introduction<BR> 5.2 Trace Windows<BR> 5.2.1 Parser Stack Pane<BR> 5.2.2 Rule Stack Pane<BR> 5.2.3 Reduction Choices Pane<BR> 5.2.4 Parse Status<BR> 5.3 File Trace<BR> 5.3.1 Starting File Trace<BR> 5.3.2 Test File Pane<BR> 5.3.3 File Trace Toolbar<BR> 5.4 Grammar Trace<BR> 5.4.1 Allowable Input Pane<BR> 5.4.2 Text Entry Field<BR> 5.4.3 Grammar Trace Toolbar<BR> 5.5 Other Traces<BR> 5.5.1 Error Trace<BR> 5.5.2 Conflict and Reduction Traces<BR> 5.5.3 Keyword Anomaly Trace<BR> 5.5.4 Auxiliary Trace<BR> 5.6 Trace Coverage<BR> <H3>Chapter 6: Exploring Your Grammar II: Grammar Tables</H3> 6.1 Purpose of This Chapter<BR> 6.2 Formats and Display Conventions<BR> 6.3 Character Sets<BR> 6.4 The Elements of Your Grammar<BR> 6.5 State Tables<BR> 6.6 Coverage Analysis Tables<BR> <H3>Chapter 7: Exploring Your Grammar III: Diagnostic Windows</H3> 7.1 The Warnings Window<BR> 7.2 The Conflicts Window<BR> 7.3 The Resolved Conflicts Window<BR> 7.4 Conflicts<BR> 7.4.1 Shift-Reduce Conflicts<BR> 7.4.2 Identifying Ambiguities<BR> 7.4.3 Rule and Token Derivation Windows<BR> 7.4.4 Resolving Ambiguities<BR> 7.4.5 Null Productions<BR> 7.4.6 Reduce-Reduce Conflicts<BR> 7.4.7 Identifying Reduce-Reduce Conflicts<BR> 7.4.8 Resolving Reduce-Reduce Conflicts<BR> 7.4.9 Conflicts due to LALR-1 Simplifications<BR> 7.5 Keyword Anomalies<BR> 7.5.1 The Keyword Anomalies Window<BR> 7.5.2 Dealing with Keyword Anomalies<BR> <H3>Chapter 8: Syntax Files</H3> 8.1 Lexical Conventions<BR> 8.1.1 Statements<BR> 8.1.2 Spaces and Tabs<BR> 8.1.3 Continuation Lines<BR> 8.1.4 Comments<BR> 8.1.5 Blank Lines and Form Feeds<BR> 8.2 Elements of Grammars<BR> 8.2.1 Names<BR> 8.2.2 Reserved Words<BR> 8.2.3 Variable Names<BR> 8.2.4 Terminal Tokens<BR> 8.2.5 Character Representations<BR> 8.2.6 Character Ranges<BR> 8.2.7 Character Sets<BR> 8.2.8 Keyword Strings<BR> 8.2.9 Type Specifications For Tokens<BR> 8.2.10 Productions<BR> 8.2.11 Grammar Token<BR> 8.2.12 Grammar Rules<BR> 8.2.13 Reduction Procedures<BR> 8.2.14 Immediate Actions<BR> 8.2.15 Virtual Productions<BR> 8.2.16 Definition Statements<BR> 8.2.17 Embedded C<BR> 8.2.18 Configuration Sections<BR> 8.2.19 Setting Configuration Parameters<BR> 8.2.20 Precedence Declarations<BR> 8.2.21 "Sticky" Declarations<BR> 8.2.22 Distinguish Keywords Statement<BR> 8.2.23 "Hidden" Declarations<BR> 8.2.24 Disregard Statement<BR> 8.2.25 Lexeme Statement<BR> 8.2.26 Enum Statement<BR> 8.2.27 Subgrammar Declarations<BR> 8.2.28 Reserve Keywords Declaration<BR> 8.2.29 Rename Macro Statement<BR> <H3>Chapter 9: Programming With AnaGram</H3> 9.1 General Aspects<BR> 9.1.1 Program Development<BR> 9.1.2 The Default Parser<BR> 9.1.3 The Content of the Parser and Header Files<BR> 9.1.4 Naming Output Files<BR> 9.1.5 Compiling Your Parser<BR> 9.1.6 Naming Your Parser<BR> 9.1.7 The Parser Control Block<BR> 9.1.8 Calling Your Parser<BR> 9.1.9 Parser Return Value<BR> 9.1.10 Defining Token Types<BR> 9.1.11 Debugging Your Parser<BR> 9.2 Providing Input to Your Parser<BR> 9.2.1 The GET_INPUT Macro<BR> 9.2.2 Pointer Input<BR> 9.2.3 Event Driven Parsers<BR> 9.2.4 Token Input<BR> 9.2.5 Identifying Tokens using Predefined Token Numbers<BR> 9.2.6 Identifying Tokens using AnaGram's Token Numbers<BR> 9.2.7 Providing Token Values<BR> 9.3 Error Handling<BR> 9.3.1 Implementation Errors<BR> - Stack Overflow<BR> - Reduction Token Error<BR> 9.3.2 Syntax Errors<BR> - Line and Column Tracking<BR> - Diagnostic Messages<BR> - Error Frame<BR> - SYNTAX_ERROR Macro<BR> 9.4 Error Recovery<BR> 9.4.1 Error Token Resynchronization<BR> 9.4.2 Automatic Resynchronization<BR> 9.4.3 Other Ways to Continue<BR> 9.5 Advanced Techniques<BR> 9.5.1 Semantically Determined Productions<BR> 9.5.2 Defining Parser Control Blocks<BR> 9.5.3 Multi-stage Parsing<BR> 9.5.4 Context Tracking<BR> 9.5.5 Coverage Analysis<BR> 9.5.6 Using Precedence Operators<BR> 9.5.7 Parser Performance<BR> <H3>Appendix A: Configuration Parameters</H3> <H3>Appendix B: Warning and Error Messages</H3> <H3>Appendix C: Alphabetic Listing of Windows</H3> <H3>Appendix D: Syntactic Building Blocks</H3> <H3>Appendix E: Parser Control Block</H3> <H3>Appendix F: Glossary</H3> <H3>Index</h3> <P> <BR> <IMG ALIGN="bottom" SRC="images/rbline6j.gif" ALT="----------------------" WIDTH=1010 HEIGHT=2 > <P> <IMG ALIGN="right" SRC="images/pslrb6d.gif" ALT="Parsifal Software" WIDTH=181 HEIGHT=25> <BR CLEAR="right"> Back to <A HREF="index.html">Index</A> <P> <ADDRESS><FONT SIZE="-1"> AnaGram User's Guide<BR> Table of Contents<BR> Copyright © 1993-1999, Parsifal Software. <BR> All Rights Reserved.<BR> </FONT></ADDRESS> </BODY> </HTML>