Mercurial > emacs
annotate doc/misc/semantic.texi @ 106534:cad98e90ecc5
* verilog-mode.el (verilog-vmm-begin-re, verilog-vmm-end-re,
verilog-vmm-statement-re, verilog-ovm-statement-re,
verilog-defun-level-not-generate-re, verilog-calculate-indent,
verilog-leap-to-head, verilog-backward-token): Fix
indenting VMM macros. Reported by Jonathan Ashbrook.
* verilog-mode.el (verilog-auto-lineup, verilog-nameable-item-re):
Cleanup user-visible spelling and documentation errors. One
reported by Gary Delp.
(verilog-submit-bug-report): Mention bug tracking and CC
co-author.
(verilog-read-decls): Fix AUTOWIRE with types declared in a
package, bug195. Reported by Pierre-David Pfister.
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Fri, 11 Dec 2009 02:31:49 +0000 |
parents | 3b90f039f42b |
children | c59fc4a754cc |
rev | line source |
---|---|
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
1 \input texinfo |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
2 @setfilename ../../info/semantic |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
3 @set TITLE Semantic Manual |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
4 @set AUTHOR Eric M. Ludlam and David Ponce |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
5 @settitle @value{TITLE} |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
6 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
7 @c ************************************************************************* |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
8 @c @ Header |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
9 @c ************************************************************************* |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
10 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
11 @c Merge all indexes into a single index for now. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
12 @c We can always separate them later into two or more as needed. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
13 @syncodeindex vr cp |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
14 @syncodeindex fn cp |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
15 @syncodeindex ky cp |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
16 @syncodeindex pg cp |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
17 @syncodeindex tp cp |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
18 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
19 @c @footnotestyle separate |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
20 @c @paragraphindent 2 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
21 @c @@smallbook |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
22 @c %**end of header |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
23 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
24 @copying |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
25 This manual documents the Semantic library and utilities. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
26 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
27 Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
28 2009 Free Software Foundation, Inc. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
29 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
30 @quotation |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
31 Permission is granted to copy, distribute and/or modify this document |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
32 under the terms of the GNU Free Documentation License, Version 1.3 or |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
33 any later version published by the Free Software Foundation; with no |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
34 Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
35 and with the Back-Cover Texts as in (a) below. A copy of the license |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
36 is included in the section entitled ``GNU Free Documentation License.'' |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
37 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
38 (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
39 modify this GNU manual. Buying copies from the FSF supports it in |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
40 developing GNU and promoting software freedom.'' |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
41 @end quotation |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
42 @end copying |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
43 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
44 @ifinfo |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
45 @format |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
46 START-INFO-DIR-ENTRY |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
47 * Semantic: (semantic). Source code parser library and utilities. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
48 END-INFO-DIR-ENTRY |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
49 @end format |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
50 @end ifinfo |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
51 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
52 @titlepage |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
53 @center @titlefont{Semantic} |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
54 @sp 4 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
55 @center by @value{AUTHOR} |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
56 @end titlepage |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
57 @page |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
58 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
59 @macro semantic{} |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
60 @i{Semantic} |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
61 @end macro |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
62 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
63 @macro keyword{kw} |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
64 @anchor{\kw\} |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
65 @b{\kw\} |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
66 @end macro |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
67 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
68 @macro obsolete{old,new} |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
69 @sp 1 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
70 @strong{Compatibility}: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
71 @code{\new\} introduced in @semantic{} version 2.0 supercedes |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
72 @code{\old\} which is now obsolete. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
73 @end macro |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
74 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
75 @c ************************************************************************* |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
76 @c @ Document |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
77 @c ************************************************************************* |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
78 @contents |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
79 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
80 @node top |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
81 @top @value{TITLE} |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
82 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
83 @semantic{} is a suite of Emacs libraries and utilities for parsing |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
84 source code. At its core is a lexical analyzer and two parser |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
85 generators (@code{bovinator} and @code{wisent}) written in Emacs Lisp. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
86 @semantic{} provides a variety of tools for making use of the parser |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
87 output, including user commands for code navigation and completion, as |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
88 well as enhancements for imenu, speedbar, whichfunc, eldoc, |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
89 hippie-expand, and several other parts of Emacs. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
90 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
91 To send bug reports, or participate in discussions about semantic, |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
92 use the mailing list cedet-semantic@@sourceforge.net via the URL: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
93 @url{http://lists.sourceforge.net/lists/listinfo/cedet-semantic} |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
94 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
95 @ifnottex |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
96 @insertcopying |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
97 @end ifnottex |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
98 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
99 @menu |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
100 * Introduction:: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
101 * Using Semantic:: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
102 * Semantic Internals:: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
103 * Glossary:: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
104 * GNU Free Documentation License:: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
105 * Index:: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
106 @end menu |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
107 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
108 @node Introduction |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
109 @chapter Introduction |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
110 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
111 This chapter gives an overview of @semantic{} and its goals. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
112 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
113 Ordinarily, Emacs uses regular expressions (and syntax tables) to |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
114 analyze source code for purposes such as syntax highlighting. This |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
115 approach, though simple and efficient, has its limitations: roughly |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
116 speaking, it only ``guesses'' the meaning of each piece of source code |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
117 in the context of the programming language, instead of rigorously |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
118 ``understanding'' it. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
119 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
120 @semantic{} provides a new infrastructure to analyze source code using |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
121 @dfn{parsers} instead of regular expressions. It contains two |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
122 built-in parser generators (an @acronym{LL} generator named |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
123 @code{Bovine} and an @acronym{LALR} generator named @code{Wisent}, |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
124 both written in Emacs Lisp), and parsers for several common |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
125 programming languages. It can also make use of @dfn{external |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
126 parsers}---programs such as GNU Global and GNU IDUtils. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
127 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
128 @semantic{} provides a uniform, language-independent @acronym{API} for |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
129 accessing the parser output. This output can be used by other Emacs |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
130 Lisp programs to implement ``syntax-aware'' behavior. @semantic{} |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
131 itself includes several such utilities, including user-level Emacs |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
132 commands for navigating, searching, and completing source code. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
133 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
134 The following diagram illustrates the structure of the @semantic{} |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
135 package: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
136 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
137 @table @strong |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
138 @item Please Note: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
139 The words in all-capital are those that @semantic{} itself provides. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
140 Others are current or future languages or applications that are not |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
141 distributed along with @semantic{}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
142 @end table |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
143 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
144 @example |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
145 Applications |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
146 and |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
147 Utilities |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
148 ------- |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
149 / \ |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
150 +---------------+ +--------+ +--------+ |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
151 C --->| C PARSER |--->| | | | |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
152 +---------------+ | | | | |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
153 +---------------+ | COMMON | | COMMON |<--- SPEEDBAR |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
154 Java --->| JAVA PARSER |--->| PARSE | | | |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
155 +---------------+ | TREE | | PARSE |<--- SEMANTICDB |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
156 +---------------+ | FORMAT | | API |<--- ecb |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
157 Scheme --->| SCHEME PARSER |--->| | | | |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
158 +---------------+ | | | | |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
159 +---------------+ | | | | |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
160 Texinfo --->| TEXI. PARSER |--->| | | | |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
161 +---------------+ | | | | |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
162 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
163 ... ... ... ... |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
164 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
165 +---------------+ | | | |<--- app. 1 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
166 Lang. A --->| A Parser |--->| | | | |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
167 +---------------+ | | | |<--- app. 2 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
168 +---------------+ | | | | |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
169 Lang. B --->| B Parser |--->| | | |<--- app. 3 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
170 +---------------+ | | | | |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
171 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
172 ... ... ... ... ... |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
173 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
174 +---------------+ | | | | |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
175 Lang. Y --->| Y Parser |--->| | | |<--- app. ? |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
176 +---------------+ | | | | |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
177 +---------------+ | | | |<--- app. ? |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
178 Lang. Z --->| Z Parser |--->| | | | |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
179 +---------------+ +--------+ +--------+ |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
180 @end example |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
181 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
182 @menu |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
183 * Semantic Components:: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
184 @end menu |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
185 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
186 @node Semantic Components |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
187 @section Semantic Components |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
188 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
189 In this section, we provide a more detailed description of the major |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
190 components of @semantic{}, and how they interact with one another. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
191 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
192 The first step in parsing a source code file is to break it up into |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
193 its fundamental components. This step is called lexical analysis: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
194 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
195 @example |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
196 syntax table, keywords list, and options |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
197 | |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
198 | |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
199 v |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
200 input file ----> Lexer ----> token stream |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
201 @end example |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
202 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
203 @noindent |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
204 The output of the lexical analyzer is a list of tokens that make up |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
205 the file. The next step is the actual parsing, shown below: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
206 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
207 @example |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
208 parser tables |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
209 | |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
210 v |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
211 token stream ---> Parser ----> parse tree |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
212 @end example |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
213 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
214 @noindent |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
215 The end result, the parse tree, is @semantic{}'s internal |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
216 representation of the language grammar. @semantic{} provides an |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
217 @acronym{API} for Emacs Lisp programs to access the parse tree. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
218 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
219 Parsing large files can take several seconds or more. By default, |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
220 @semantic{} automatically caches parse trees by saving them in your |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
221 @file{.emacs.d} directory. When you revisit a previously-parsed file, |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
222 the parse tree is automatically reloaded from this cache, to save |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
223 time. @xref{SemanticDB}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
224 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
225 @node Using Semantic |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
226 @chapter Using Semantic |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
227 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
228 @include sem-user.texi |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
229 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
230 @node Semantic Internals |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
231 @chapter Semantic Internals |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
232 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
233 This chapter provides an overview of the internals of @semantic{}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
234 This information would not be needed by neither application developers |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
235 nor grammar developers. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
236 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
237 It would be useful mostly for the hackers who would like to learn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
238 more about how @semantic{} works. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
239 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
240 @menu |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
241 * Parser code :: Code used for the parsers |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
242 * Tag handling :: Code used for manipulating tags |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106076
diff
changeset
|
243 * Semanticdb Internals :: Code used in the semantic database |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106076
diff
changeset
|
244 * Analyzer Internals :: Code used in the code analyzer |
106076
e142b685cd90
* semantic.texi (Semantic Internals, Glossary):
Juanma Barranquero <lekktu@gmail.com>
parents:
106061
diff
changeset
|
245 * Tools :: Code used in user tools |
e142b685cd90
* semantic.texi (Semantic Internals, Glossary):
Juanma Barranquero <lekktu@gmail.com>
parents:
106061
diff
changeset
|
246 * Tests :: Code used for testing |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
247 @end menu |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
248 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
249 @node Parser code |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
250 @section Parser code |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
251 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
252 @semantic{} parsing code is spread across a range of files. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
253 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
254 @table @file |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
255 @item semantic.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
256 The core infrastructure sets up buffers for parsing, and has all the |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
257 core parsing routines. Most parsing routines are overloadable, so the |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
258 actual implementation may be somewhere else. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
259 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
260 @item semantic-edit.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
261 Incremental reparse based on user edits. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
262 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
263 @item semantic-grammar.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
264 @itemx semantic-grammar.wy |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
265 Parser for the different grammar languages, and a major mode for |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
266 editing grammars in Emacs. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
267 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
268 @item semantic-lex.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
269 Infrastructure for implementing lexical analyzers. Provides macros |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
270 for creating individual analyzers for specific features, and a way to |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
271 combine them together. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
272 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
273 @item semantic-lex-spp.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
274 Infrastructure for a lexical symbolic preprocessor. This was written |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
275 to implement the C preprocessor, but could be used for other lexical |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
276 preprocessors. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
277 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
278 @item bovine/bovine-grammar.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
279 @itemx bovine/bovine-grammar-macros.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
280 @itemx bovine/semantic-bovine.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
281 The ``bovine'' grammar. This is the first grammar mode written for |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
282 @semantic{} and is useful for simple creating simple parsers. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
283 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
284 @item wisent/wisent.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
285 @itemx wisent/bison-wisent.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
286 @itemx wisent/semantic-wisent.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
287 @itemx wisent/semantic-debug-grammar.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
288 A port of bison to Emacs. This infrastructure lets you create LALR |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
289 based parsers for @semantic{}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
290 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
291 @item semantic-ast.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
292 Manage Abstract Syntax Trees for parsers. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
293 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
294 @item semantic-debug.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
295 Infrastructure for debugging grammars. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
296 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
297 @item semantic-util.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
298 Various utilities for manipulating tags, such as describing the tag |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
299 under point, adding labels, and the all important |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
300 @code{semantic-something-to-tag-table}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
301 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
302 @end table |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
303 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
304 @node Tag handling |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
305 @section Tag handling |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
306 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
307 A tag represents an individual item found in a buffer, such as a |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
308 function or variable. Tag handling is handled in several source |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
309 files. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
310 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
311 @table @file |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
312 @item semantic-tag.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
313 Basic tag creation, queries, cloning, binding, and unbinding. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
314 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
315 @item semantic-tag-write.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
316 Write a tag or tag list to a stream. These routines are used by |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
317 @file{semanticdb-file.el} when saving a list of tags. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
318 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
319 @item semantic-tag-file.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
320 Files associated with tags. Goto-tag, file for include, and file for |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
321 a prototype. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
322 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
323 @item semantic-tag-ls.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
324 Language dependant features of a tag, such as parent calculation, slot |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
325 protection, and other states like abstract, virtual, static, and leaf. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
326 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
327 @item semantic-dep.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
328 Include file handling. Contains the include path concepts, and |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
329 routines for looking up file names in the include path. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
330 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
331 @item semantic-format.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
332 Convert a tag into a nicely formatted and colored string. Use |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
333 @code{semantic-test-all-format-tag-functions} to test different output |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
334 options. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
335 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
336 @item semantic-find.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
337 Find tags matching different conditions in a tag table. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
338 These routines are used by @file{semanticdb-find.el} once the database |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
339 has been converted into a simpler tag table. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
340 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
341 @item semantic-sort.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
342 Sorting lists of tags in different ways. Includes sorting a plain |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
343 list of tags forward or backward. Includes binning tags based on |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
344 attributes (bucketize), and tag adoption for multiple references to |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
345 the same thing. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
346 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
347 @item semantic-doc.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
348 Capture documentation comments from near a tag. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
349 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
350 @end table |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
351 |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106076
diff
changeset
|
352 @node Semanticdb Internals |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106076
diff
changeset
|
353 @section Semanticdb Internals |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
354 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
355 @acronym{Semanticdb} complexity is certainly an issue. It is a rather |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
356 hairy problem to try and solve. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
357 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
358 @table @file |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
359 @item semanticdb.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
360 Defines a @dfn{database} and a @dfn{table} base class. You can |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
361 instantiate these classes, and use them, but they are not persistent. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
362 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
363 This file also provides support for @code{semanticdb-minor-mode}, |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
364 which automatically associates files with tables in databases so that |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
365 tags are @emph{saved} while a buffer is not in memory. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
366 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
367 The database and tables both also provide applicate cache information, |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
368 and cache flushing system. The semanticdb search routines use caches |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
369 to save datastructures that are complex to calculate. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
370 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
371 Lastly, it provides the concept of @dfn{project root}. It is a system |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
372 by which a file can be associated with the root of a project, so if |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
373 you have a tree of directories and source files, it can find the root, |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
374 and allow a tag-search to span all available databases in that |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
375 directory hierarchy. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
376 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
377 @item semanticdb-file.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
378 Provides a subclass of the basic table so that it can be saved to |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
379 disk. Implements all the code needed to unbind/rebind tags to a |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
380 buffer and writing them to a file. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
381 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
382 @item semanticdb-el.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
383 Implements a special kind of @dfn{system} database that uses Emacs |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
384 internals to perform queries. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
385 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
386 @item semanticdb-ebrowse.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
387 Implements a system database that uses Ebrowse to parse files into a |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
388 table that can be queried for tag names. Successful tag hits during a |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
389 find causes @semantic{} to pick up and parse the reference files to |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
390 get the full details. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
391 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
392 @item semanticdb-find.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
393 Infrastructure for searching groups @semantic{} databases, and dealing |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
394 with the search results format. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
395 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
396 @item semanticdb-ref.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
397 Tracks crossreferences. Cross references are needed when buffer is |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
398 reparsed, and must alert other tables that any dependant caches may |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
399 need to be flushed. References are in the form of include files. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
400 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
401 @end table |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
402 |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106076
diff
changeset
|
403 @node Analyzer Internals |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106076
diff
changeset
|
404 @section Analyzer Internals |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
405 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
406 The @semantic{} analyzer is a complex engine which has been broken |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
407 down across several modules. When the @semantic{} analyzer fails, |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
408 start with @code{semantic-analyze-debug-assist}, then dive into some |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
409 of these files. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
410 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
411 @table @file |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
412 @item semantic-analyze.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
413 The core analyzer for defining the @dfn{current context}. The |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
414 current context is an object that contains references to aspects of |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
415 the local context including the current prefix, and a tag list |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
416 defining what the prefix means. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
417 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
418 @item semantic-analyze-complete.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
419 Provides @code{semantic-analyze-possible-completions}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
420 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
421 @item semantic-analyze-debug.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
422 The analyzer debugger. Useful when attempting to get everything |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
423 configured. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
424 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
425 @item semantic-analyze-fcn.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
426 Various support functions needed by the analyzer. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
427 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
428 @item semantic-ctxt.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
429 Local context parser. Contains overloadable functions used to move |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
430 around through different scopes, get local variables, and collect the |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
431 current prefix used when doing completion. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
432 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
433 @item semantic-scope.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
434 Calculate @dfn{scope} for a location in a buffer. The scope includes |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
435 local variables, and tag lists in scope for various reasons, such as |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
436 C++ using statements. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
437 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
438 @item semanticdb-typecache.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
439 The typecache is part of @code{semanticdb}, but is used primarilly by |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
440 the analyzer to look up datatypes and complex names. The typecache is |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
441 bound across source files and builds a master lookup table for data |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
442 type names. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
443 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
444 @item semantic-ia.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
445 Interactive Analyzer functions. Simple routines that do completion or |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
446 lookups based on the results from the Analyzer. These routines are |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
447 meant as examples for application writers, but are quite useful as |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
448 they are. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
449 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
450 @item semantic-ia-sb.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
451 Speedbar support for the analyzer, displaying context info, and |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
452 completion lists. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
453 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
454 @end table |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
455 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
456 @node Tools |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
457 @section Tools |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
458 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
459 These files contain various tools a user can use. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
460 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
461 @table @file |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
462 @item semantic-idle.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
463 Idle scheduler for @semantic{}. Manages reparsing buffers after |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
464 edits, and large work tasks in idle time. Includes modes for showing |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
465 summary help and pop-up completion. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
466 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
467 @item senator.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
468 The @semantic{} navigator. Provides many ways to move through a |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
469 buffer based on the active tag table. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
470 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
471 @item semantic-decorate.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
472 A minor mode for decorating tags based on details from the parser. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
473 Includes overlines for functions, or coloring class fields based on |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
474 protection. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
475 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
476 @item semantic-decorate-include.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
477 A decoration mode for include files, which assists users in setting up |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
478 parsing for their includes. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
479 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
480 @item semantic-complete.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
481 Advanced completion prompts for reading tag names in the minibuffer, or |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
482 inline in a buffer. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
483 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
484 @item semantic-imenu.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
485 Imenu support for using @semantic{} tags in imenu. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
486 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
487 @item semantic-mru-bookmark.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
488 Automatic bookmarking based on tags. Jump to locations you've been |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
489 before based on tag name. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
490 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
491 @item semantic-sb.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
492 Support for @semantic{} tag usage in Speedbar. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
493 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
494 @item semantic-util-modes.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
495 A bunch of small minor-modes that exposes aspects of the semantic |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
496 parser state. Includes @code{semantic-stickyfunc-mode}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
497 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
498 @item document.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
499 @itemx document-vars.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
500 Create an update comments for tags. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
501 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
502 @item semantic-adebug.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
503 Extensions of @file{data-debug.el} for @semantic{}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
504 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
505 @item semantic-chart.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
506 Draw some charts from stats generated from parsing. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
507 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
508 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
509 @item semantic-elp.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
510 Profiler for helping to optimize the @semantic{} analyzer. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
511 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
512 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
513 @end table |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
514 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
515 @node Tests |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
516 @section Tests |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
517 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
518 @table @file |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
519 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
520 @item semantic-utest.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
521 Basic testing of parsing and incremental parsing for most supported |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
522 languages. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
523 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
524 @item semantic-ia-utest.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
525 Test the semantic analyzer's ability to provide smart completions. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
526 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
527 @item semantic-utest-c.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
528 Tests for the C parser's lexical pre-processor. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
529 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
530 @item semantic-regtest.el |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
531 Regression tests from the older Semantic 1.x API. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
532 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
533 @end table |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
534 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
535 @node Glossary |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
536 @appendix Glossary |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
537 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
538 @table @keyword |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
539 @item BNF |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
540 In semantic 1.4, a BNF file represented ``Bovine Normal Form'', the |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
541 grammar file used for the 1.4 parser generator. This was a play on |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
542 Backus-Naur Form which proved too confusing. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
543 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
544 @item bovinate |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
545 A verb representing what happens when a bovine parser parses a file. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
546 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
547 @item bovine lambda |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
548 In a bovine, or LL parser, the bovine lambda is a function to execute |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
549 when a specific set of match rules has succeeded in matching text from |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
550 the buffer. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
551 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
552 @item bovine parser |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
553 A parser using the bovine parser generator. It is an LL parser |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
554 suitible for small simple languages. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
555 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
556 @item context |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
557 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
558 @item LALR |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
559 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
560 @item lexer |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
561 A program which converts text into a stream of tokens by analyzing |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
562 them lexically. Lexers will commonly create strings, symbols, |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
563 keywords and punctuation, and strip whitespaces and comments. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
564 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
565 @item LL |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
566 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
567 @item nonterminal |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
568 A nonterminal symbol or simply a nonterminal stands for a class of |
106076
e142b685cd90
* semantic.texi (Semantic Internals, Glossary):
Juanma Barranquero <lekktu@gmail.com>
parents:
106061
diff
changeset
|
569 syntactically equivalent groupings. A nonterminal symbol name is used |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
570 in writing grammar rules. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
571 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
572 @item overloadable |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
573 Some functions are defined via @code{define-overload}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
574 These can be overloaded via .... |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
575 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
576 @item parser |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
577 A program that converts @b{tokens} to @b{tags}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
578 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
579 @item tag |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
580 A tag is a representation of some entity in a language file, such as a |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
581 function, variable, or include statement. In semantic, the word tag is |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
582 used the same way it is used for the etags or ctags tools. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
583 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
584 A tag is usually bound to a buffer region via overlay, or it just |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
585 specifies character locations in a file. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
586 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
587 @item token |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
588 A single atomic item returned from a lexer. It represents some set |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
589 of characters found in a buffer. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
590 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
591 @item token stream |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
592 The output of the lexer as well as the input to the parser. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
593 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
594 @item wisent parser |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
595 A parser using the wisent parser generator. It is a port of bison to |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
596 Emacs Lisp. It is an LALR parser suitable for complex languages. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
597 @end table |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
598 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
599 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
600 @node GNU Free Documentation License |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
601 @appendix GNU Free Documentation License |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
602 @include doclicense.texi |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
603 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
604 @node Index |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
605 @unnumbered Index |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
606 @printindex cp |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
607 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
608 @iftex |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
609 @contents |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
610 @summarycontents |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
611 @end iftex |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
612 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
613 @bye |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
614 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
615 @c Following comments are for the benefit of ispell. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
616 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
617 @c LocalWords: alist API APIs arg argc args argv asis assoc autoload Wisent |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
618 @c LocalWords: backquote bnf bovinate bovinates LALR |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
619 @c LocalWords: bovinating bovination bovinator bucketize |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
620 @c LocalWords: cb cdr charquote checkcache cindex CLOS |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
621 @c LocalWords: concat concocting const constantness ctxt Decl defcustom |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
622 @c LocalWords: deffn deffnx defun defvar destructor's dfn diff dir |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
623 @c LocalWords: doc docstring EDE EIEIO elisp emacsman emph enum |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
624 @c LocalWords: eq Exp EXPANDFULL expresssion fn foo func funcall |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
625 @c LocalWords: ia ids iff ifinfo imenu imenus init int isearch itemx java kbd |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
626 @c LocalWords: keymap keywordtable lang languagemode lexer lexing Ludlam |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
627 @c LocalWords: menubar metaparent metaparents min minibuffer Misc mode's |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
628 @c LocalWords: multitable NAvigaTOR noindent nomedian nonterm noselect |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
629 @c LocalWords: nosnarf obarray OLE OO outputfile paren parsetable POINT's |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
630 @c LocalWords: popup positionalonly positiononly positionormarker pre |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
631 @c LocalWords: printf printindex Programmatically pt punctuations quotemode |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
632 @c LocalWords: ref regex regexp Regexps reparse resetfile samp sb |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
633 @c LocalWords: scopestart SEmantic semanticdb setfilename setq |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
634 @c LocalWords: settitle setupfunction sexp sp SPC speedbar speedbar's |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
635 @c LocalWords: streamorbuffer struct subalist submenu submenus |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
636 @c LocalWords: subsubsection sw sym texi texinfo titlefont titlepage |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
637 @c LocalWords: tok TOKEN's toplevel typemodifiers uml unset untar |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
638 @c LocalWords: uref usedb var vskip xref yak |
106352 | 639 |
640 @ignore | |
641 arch-tag: cbc6e78c-4ff1-410e-9fc7-936487e39bbf | |
642 @end ignore |