\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename util_api.info
@include version.texi
@settitle Libmarpa @value{VERSION}
@finalout
@c %**end of header

@copying
This manual (@value{UPDATED})
is for Libmarpa @value{VERSION}.

Copyright @copyright{} 2014 Jeffrey Kegler.

@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the @acronym{GNU} Free Documentation License,
Version 1.3 or any later version published by the Free Software
Foundation.
A copy of the license is included in the section entitled
``@acronym{GNU} Free Documentation License.''
@end quotation
@end copying

@titlepage
@title Libmarpa accessories
@subtitle Version @value{VERSION}
@subtitle @value{UPDATED}
@author Jeffrey Kegler

@c The following two commands
@c start the copyright page.
@page
@vskip 0pt plus 1filll
@insertcopying

Published @value{UPDATED} by Jeffrey Kegler
@end titlepage
@c So the toc is printed at the start.
@contents

@ifnottex
@node Top, Copying, (dir), (dir)
@top Libmarpa accessories
@insertcopying
@end ifnottex

@menu
* Copying::                     
* About this document::         
* About Libmarpa::              
* Architecture::                
* Input::                       
* Semantics::                   
* Threads::                     
* Fatal Errors::                
* Introduction to the external interface::  
* Static methods::              
* Configuration methods::       
* Grammar methods::             
* Recognizer methods::          
* Progress reports::            
* Bocage methods::              
* Ordering methods::            
* Tree methods::                
* Value methods::               
* Events::                      
* Error methods macros and codes::  
* Design notes::                
* Work in Progress::            
* GNU Free Documentation License::  

@detailmenu
 --- The Detailed Node Listing ---

About this document

* How to read this document::   
* Prerequisites::               
* Parsing theory::              

Architecture

* Major objects::               
* Time objects::                
* Reference counting::          
* Numbered objects::            

Input

* Earlemes::                    
* Terminals::                   

Earlemes

* The traditional model::       
* The earleme variables::       
* The significances of the earleme variables::  
* The initial earleme settings::  
* The standard model of input::  
* Ambiguous input::             
* Variable length tokens::      
* The generalized model::       
* General rules for the earleme variables::  

Semantics

* How Libmarpa semantics work::  
* Valued and unvalued symbols::  

Introduction to the external interface

* About the overviews::         
* Return values::               
* Naming conventions::          

Grammar methods

* Grammar overview::            
* Grammar constructor::         
* Grammar reference counting::  
* Symbols::                     
* Rules::                       
* Sequences::                   
* Ranks::                       
* Grammar precomputation::      

Recognizer methods

* Recognizer overview::         
* Recognizer constructor::      
* Recognizer reference counting::  
* Recognizer life cycle mutators::  
* Location accessors::          
* Other parse status methods::  
* Untested recognizer methods::  

Bocage methods

* Bocage overview::             
* Bocage constructor::          
* Bocage reference counting::   
* Bocage accessor::             

Ordering methods

* Ordering overview::           
* Ordering constructor::        
* Ordering reference counting::  
* Order accessor::              
* Non-default ordering::        

Tree methods

* Tree overview::               
* Tree constructor::            
* Tree reference counting::     
* Tree iteration::              

Value methods

* Value overview::              
* How to use the valuator::     
* Advantages of step-driven valuation::  
* Maintaining the stack::       
* Valuator constructor::        
* Valuator reference counting::  
* Registering semantics::       
* Stepping through the valuator::  
* Valuator steps by type::      
* Basic step accessors::        
* Other step accessors::        

Maintaining the stack

* Sizing the stack::            
* Initializing locations in the stack::  

Events

* Events overview::             
* Event methods::               
* Event codes::                 

Error methods, macros and codes

* Error methods::               
* Error Macros::                
* External error codes::        
* Internal error codes::        

Design notes

* Why so many time objects::    
* Design of numbered objects::  
* LHS Terminals::               

Work in Progress

* Experimental methods::        
* Untested methods::            

@end detailmenu
@end menu

@node Copying, About this document, Top, Top
@unnumbered GNU LESSER GENERAL PUBLIC LICENSE
@include lgpl-3.0.texi

@node About this document, About Libmarpa, Copying, Top
@chapter About this document

@menu
* How to read this document::   
* Prerequisites::               
* Parsing theory::              
@end menu

@node About Libmarpa, Architecture, About this document, Top
@chapter About the SLIF

This document is in draft, and this interface is alpha
and experimental.
Currently all methods begin with @code{marpa__} to indicate this.
It contains ``accessory'' methods, macros, etc., for Libmarpa
and its associated librarires.

@node Untested methods,  , Experimental methods, Work in Progress
@section Methods

No methods as yet.

@node GNU Free Documentation License,  , Work in Progress, Top
@appendix GNU Free Documentation License

@include fdl-1.3.texi

@bye
@c vim: expandtab shiftwidth=4:
