An open API service indexing awesome lists of open source software.

https://github.com/vim-jp/vim-vimlparser

Vim script parser
https://github.com/vim-jp/vim-vimlparser

Last synced: 3 months ago
JSON representation

Vim script parser

Awesome Lists containing this project

README

          

# Vim script parsers

[![Build Status](https://github.com/vim-jp/vim-vimlparser/workflows/Test/badge.svg)](https://github.com/vim-jp/vim-vimlparser/actions?query=workflow%3A%22Test%22) [![codecov](https://codecov.io/gh/vim-jp/vim-vimlparser/branch/master/graph/badge.svg)](https://codecov.io/gh/vim-jp/vim-vimlparser)

This is Vim script language ([a.k.a. VimL](#about-project-name)) parsers.

## Features

The parser to make AST (Abstract Syntax Tree)

## Supported languages

This parser provide same feature for following languages.

* Vim script
* Python
* JavaScript

## Example

All of interfaces are provided from vimlparser module. VimLParser parse into AST using StringReader, and Compiler to compile nodes.

```vim
let s:VP = vimlparser#import()
let code = [
\ 'let s:message = printf("hello %d", 1+(2*3))'
\]
let r = s:VP.StringReader.new(code)
let p = s:VP.VimLParser.new()
let c = s:VP.Compiler.new()
echo join(c.compile(p.parse(r)), "\n")
```

This above code output following.

```
(let = s:message (printf "hello %d" (+ 1 (* 2 3))))
```

## About project name

We know a name "VimL" is not the common short form of "Vim scripting language".
But we choice "VimL" for historical and practical reasons and compatibility.