https://wikemacs.org/api.php?action=feedcontributions&user=91.52.102.109&feedformat=atomWikEmacs - User contributions [en]2024-03-28T17:21:59ZUser contributionsMediaWiki 1.35.14https://wikemacs.org/index.php?title=Semantic&diff=3427Semantic2012-10-12T21:59:39Z<p>91.52.102.109: /* Language Parsers */</p>
<hr />
<div>{{Package<br />
|name=Semantic<br />
|description=infrastructure for parser based text analysis<br />
|author=David Ponce<br />
|maintainer=David Ponce<br />
|source=http://cedet.sourceforge.net/semantic.shtml<br />
}}<br />
<br />
'''Semantic''' is an infrastructure for parser based text analysis in Emacs. It is a lexer, parser-generator, and parser. It is written in Emacs Lisp and is customized to the way Emacs thinks about language files, and is optimized to use Emacs' parsing capabilities.<br />
<br />
Semantic's goal is to provide an intermediate API for authors of language agnostic tools who want to deal with languages in a generic way. It also provides a simple way for Mode Authors who are experts in their language, to provide a parser for those tool authors, without knowing anything about those tools.<br />
<br />
== Parser Infrastructure ==<br />
<br />
=== Lexical Analyzer & Preprocessor ===<br />
Converts a language into a token stream. Preprocessor support with lexical macro replacement (C/C++).<br />
=== Parser ===<br />
Converts a lexical token stream into a table of tags defined by the language.<br />
=== Parser Generator with Bison ===<br />
David Ponce has ported Bison to Emacs Lisp. New languages can be supported via the wisent parser.<br />
=== Language Parsers ===<br />
Parsers that have already been implemented:<br />
Emacs Lisp, Java, C/C++, C#, Python, Erlang, awk, Makefile, Scheme, HTML, Texinfo, Javascript, dot.<br />
Also: Semantic's own grammar format (.by or .wy)<br />
<br />
=== Incremental parser ===<br />
Reparses minimal parts of a buffer as you edit.<br />
=== Idle service manager ===<br />
Reparses buffers in idle time, and also call other services.<br />
<br />
== Coding Tools ==<br />
<br />
Semantic supports a wide range of user interface tools.<br />
=== Smart Completion ===<br />
Completes symbols actually available in a given context. Some tools call this intellisense.<br />
<br />
=== Speedbar Browser ===<br />
Code for browsing tag lists with Speedbar.<br />
=== Documentation Generator ===<br />
Identifies inline documentation in source code, and can convert it to texinfo. It can also create inline documenation.<br />
=== Stickyfunc mode ===<br />
Locks the function declaration you are editing in the header line. (Emacs only).<br />
=== Imenu ===<br />
Create hierarchical [[imenu]] menus from parsed files.<br />
<br />
=== Navigator ===<br />
Senator is a navigator that permits simple navigation through the parsed language. It also includes token highlighting, and magic cut & paste.<br />
=== Decoration Modes ===<br />
Decorate buffers using more than regular expressions, such as overlines for functions, highlight header files Emacs can't find.<br />
=== Smart Bookmarking ===<br />
Emacs tracks what you edit, and allows quick navigation by name.<br />
=== Highlight bad code ===<br />
text which does not fit the language is underlined.<br />
=== Charting ===<br />
Draw a chart of some things semantic can quantify.<br />
=== Analyzer ===<br />
Examines code, and references those names against a database of pre-parsed files to provide detailed information.<br />
<br />
= Helpful keybindings =<br />
<br />
; {{Keys|C-n}}<br />
: Move to next helm suggestion.<br />
<br />
; {{Keys|C-p}}<br />
: Move to previous helm suggestion.<br />
<br />
= Common Customization =<br />
<br />
= See Also =<br />
<br />
[[Speedbar]]<br />
<br />
= Project Pages =<br />
* [http://cedet.sourceforge.net/semantic.shtml Project Site]<br />
* [http://www.randomsample.de/cedetdocs/semantic/semantic/ Official Manual]</div>91.52.102.109