This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
Home
Flyparse-mode is an emacs minor-mode designed to support the creation of programming-language major-modes.
Flyparse uses external parsers to generate s-expression ASTs for language files, as they are being edited. Language modes are then able to query these ASTs using a declarative search syntax.
Features:
- Pluggable architecture. It doesn’t matter how you implement the parser, as long as it supports the flyparse protocol.
- Simple and unobtrusive. Can be used to compliment an existing language mode.
- Provides an intuitive query language for accessing the parse-trees. For example, to get a list of all javascript function names in a file, you might say: (flyparse-query-all ’(“PROGRAM” “FUNCTION_DECLARATION” “FUNCTION_NAME” “IDENT”)).
- Supports cross-file queries; it’s very simple to implement a ‘jump to definition’ helper.
- Provides helper functions to pretty-print a buffer’s syntax tree or to overlay a shaded depth representation over the buffer (see images below).
- Includes parsers for javascript, css and actionscript 3.
- Allows for the creation of robust, readable language helpers.
Pictures are a lot more fun, so here’s some eye-candy. First off, prototype.js (that’s *3000*+ lines of hairy javascript) – flyparse is currently able to parse and load this AST in about 2 seconds (remember, emacs is not blocked):
Here’s the parse tree – pretty printed:
And here’s a colorized visualization of the code structure:






