All Projects → pascalh → Astview

pascalh / Astview

Licence: other
Astview is a graphical viewer for abstract syntax trees

Programming Languages

haskell
3896 projects

Projects that are alternatives of or similar to Astview

abstract-syntax-tree
A library for working with abstract syntax trees.
Stars: ✭ 77 (+285%)
Mutual labels:  parse, syntax-tree
astutils
Bare essentials for building abstract syntax trees, and skeleton classes for PLY lexers and parsers.
Stars: ✭ 13 (-35%)
Mutual labels:  parse, syntax-tree
asmdot
[Unstable] Fast, zero-copy and lightweight (Arm | Mips | x86) assembler in (C | C++ | C# | Go | Haskell | Javascript | Nim | OCaml | Python | Rust).
Stars: ✭ 23 (+15%)
Mutual labels:  parse
joern
Open-source code analysis platform for C/C++/Java/Binary/Javascript/Python/Kotlin based on code property graphs
Stars: ✭ 968 (+4740%)
Mutual labels:  syntax-tree
jgeXml
The Just-Good-Enough XML Toolkit
Stars: ✭ 20 (+0%)
Mutual labels:  parse
SACK
System Abstraction Component Kit
Stars: ✭ 18 (-10%)
Mutual labels:  generic
ParseCareKit
Securely synchronize any CareKit 2.1+ based app to a Parse Server Cloud. Compatible with parse-hipaa.
Stars: ✭ 28 (+40%)
Mutual labels:  parse
generic
generic streamlink plugin
Stars: ✭ 18 (-10%)
Mutual labels:  generic
xml-to-json
Simple API that converts dynamic XML feeds to JSON through a URL or pasting the raw XML data. Made 100% in PHP.
Stars: ✭ 38 (+90%)
Mutual labels:  parse
svg-quick-editor
SVG Quick Editor is a free and open-source SVG editing tool. It offers features such as editing SVG colors, viewing or deleting their paths.
Stars: ✭ 88 (+340%)
Mutual labels:  parse
php-simple-request
php-simple-request is a request parser library designed to simplify requests validation and filtering using annotations, generating at the same time an object representation from the request data.
Stars: ✭ 15 (-25%)
Mutual labels:  parse
QuickDB
A Generic CoreData Manager to accept any type of objects. Fastest way for adding a Database to your project.
Stars: ✭ 16 (-20%)
Mutual labels:  generic
elm-html-parser
Parse HTML in Elm!
Stars: ✭ 44 (+120%)
Mutual labels:  parse
Genumerics
Genumerics is a high-performance .NET library for generic numeric operations
Stars: ✭ 16 (-20%)
Mutual labels:  generic
android-tao-rest-data-processor
Android REST Data Processor library. Easy to build a REST request, to receive and processing data (XML, JSON, CSV and etc.) from REST requests, file system, assets.
Stars: ✭ 24 (+20%)
Mutual labels:  parse
c-compiler
A compiler that accepts any valid program written in C. It is made using Lex and Yacc. Returns a symbol table, parse tree, annotated syntax tree and intermediate code.
Stars: ✭ 37 (+85%)
Mutual labels:  syntax-tree
xml-spac
Handle streaming XML data with declarative, composable parsers
Stars: ✭ 39 (+95%)
Mutual labels:  parse
parse
Parse with an Eloquent-like interface for Laravel
Stars: ✭ 15 (-25%)
Mutual labels:  parse
icc
JavaScript module to parse International Color Consortium (ICC) profiles
Stars: ✭ 37 (+85%)
Mutual labels:  parse
generic
flexible data type for Go
Stars: ✭ 43 (+115%)
Mutual labels:  generic

Astview - Documentation Build Status

Astview (short for "abstract syntax tree view") is a little desktop program to be used by people that want to investigate syntax trees, e.g. students and lecturers in compiler construction courses. The program evolved as a case study in datatype-generic programming and building graphical user interfaces in Haskell.

Demo

Astview is under continuous development. The sources can be found at Github.

Developer documentation is located in the wiki.

User guide

Installing astview

First of all download the sources of astview, which can be easily achieved by

git clone https://github.com/pascalh/Astview

To install astview, just run stack install in the astview-directory.

Using Astview

You can open astview directly with a file by giving the filename at the command line:

astview path/to/mysource.hs

or simply start astview without arguments and open a file directly via the file menu.

Basic text editor functionality

The menu file offers the functionality to work with files. Saving a edited file works as usual: Ctrl-S saves, Save-As has to be done via the menu. After changing a file in astviews source editor, a star appears in the title bar next to the filename to indicate that the file has been changed.

Cut-and-Paste functionality works as usual (Ctrl-C/V/X), allowing to copy-paste source code around. The correspondent menu items can be found in menu Edit. You can use Ctrl-P to reparse the source code and refresh the tree (the shortcut is not displayed in the menu but works anyway).

Language and parser selection

Astview can be easily extended by new languages (see dev documentation). Every language can be associated with file extensions, which for example enables astview to directly apply the parser for Haskell if a file with extension hs is being opened. This automatic parser selection can be turned off by selecting a specific parser in the menu Language.

Source location specific functionality

If the current language supports source locations, one can jump from a selected text position in the source editor to the associated position in the abstract syntax tree by clicking on Navigate/>>>.

The menu entry Navigate/<<< highlights the corresponding interval in the source editor for the recently selected subtree.

Flattening lists

One note on the representation of Haskells lists in the tree: By default lists in the abstract syntax tree are flattened, which means that they are displayed as a n-ary tuple where n is the length of the list. If you like to see the exact Haskell term displayed in the tree view with all of its nested applications of the cons operator, you can disable flattening in menu Edit.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].