\input texinfo
@setfilename ../../info/semantic
@set TITLE Semantic Manual
-@set AUTHOR Eric M. Ludlam and David Ponce
+@set AUTHOR Eric M. Ludlam, David Ponce, and Richard Y. Kim
@settitle @value{TITLE}
@c *************************************************************************
@copying
This manual documents the Semantic library and utilities.
-Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007,
-2009 Free Software Foundation, Inc.
+Copyright @copyright{} 1999-2005, 2007, 2009-2011 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@end quotation
@end copying
-@ifinfo
-@format
-START-INFO-DIR-ENTRY
-* Semantic: (semantic). Source code parser library and utilities.
-END-INFO-DIR-ENTRY
-@end format
-@end ifinfo
+@dircategory Emacs misc features
+@direntry
+* Semantic: (semantic). Source code parser library and utilities.
+@end direntry
@titlepage
@center @titlefont{Semantic}
@macro obsolete{old,new}
@sp 1
@strong{Compatibility}:
-@code{\new\} introduced in @semantic{} version 2.0 supercedes
+@code{\new\} introduced in @semantic{} version 2.0 supersedes
@code{\old\} which is now obsolete.
@end macro
+---------------+ | COMMON | | COMMON |<--- SPEEDBAR
Java --->| JAVA PARSER |--->| PARSE | | |
+---------------+ | TREE | | PARSE |<--- SEMANTICDB
- +---------------+ | FORMAT | | API |<--- ecb
- Scheme --->| SCHEME PARSER |--->| | | |
+ +---------------+ | FORMAT | | API |
+ Scheme --->| SCHEME PARSER |--->| | | |<--- ecb
+---------------+ | | | |
+---------------+ | | | |
Texinfo --->| TEXI. PARSER |--->| | | |
... ... ... ...
- +---------------+ | | | |<--- app. 1
- Lang. A --->| A Parser |--->| | | |
- +---------------+ | | | |<--- app. 2
- +---------------+ | | | |
- Lang. B --->| B Parser |--->| | | |<--- app. 3
- +---------------+ | | | |
-
- ... ... ... ... ...
-
+---------------+ | | | |
Lang. Y --->| Y Parser |--->| | | |<--- app. ?
+---------------+ | | | |
@chapter Semantic Internals
This chapter provides an overview of the internals of @semantic{}.
-This information would not be needed by neither application developers
-nor grammar developers.
-
-It would be useful mostly for the hackers who would like to learn
-more about how @semantic{} works.
+This information is usually not needed by application developers or
+grammar developers; it is useful mostly for the hackers who would like
+to learn more about how @semantic{} works.
@menu
-* Parser code :: Code used for the parsers
-* Tag handling :: Code used for manipulating tags
-* Semanticdb internals :: Code used in the semantic database
-* Analyzer :: Code used in the code analyzer
+* Parser code :: Code used for the parsers
+* Tag handling :: Code used for manipulating tags
+* Semanticdb Internals :: Code used in the semantic database
+* Analyzer Internals :: Code used in the code analyzer
* Tools :: Code used in user tools
* Tests :: Code used for testing
@end menu
@end table
-@node Semanticdb internals
-@section Semanticdb internals
+@node Semanticdb Internals
+@section Semanticdb Internals
@acronym{Semanticdb} complexity is certainly an issue. It is a rather
hairy problem to try and solve.
@end table
-@node Analyzer
-@section Analyzer
+@node Analyzer Internals
+@section Analyzer Internals
The @semantic{} analyzer is a complex engine which has been broken
down across several modules. When the @semantic{} analyzer fails,