Exposes the OpenJDK Java parser and scanner to Python
Project description
![PyPI](https://img.shields.io/pypi/v/javac-parser.svg) ![PyPI - License](https://img.shields.io/pypi/l/javac-parser.svg) [![Build Status](https://travis-ci.org/naturalness/javac-parser.svg?branch=master)](https://travis-ci.org/naturalness/javac-parser)
Use OpenJDK’s Java parser (“javac”) in Python!
Install
pip install javac-parser
Usage
First, instantiate the server:
`python import javac_parser java = javac_parser.Java() `
Count the number of syntax errors:
`python >>> java.get_num_parse_errors('class Hello {') 1 >>> java.get_num_parse_errors('class Hello { }') 0 `
Get a list of diagnostics for each syntax error:
`python >>> java.check_syntax('class Hello {') [('ERROR', 'compiler.err.premature.eof', 'reached end of file while parsing', 1, 14, 13, 13)]' >>> java.check_syntax('class Hello { }') [] `
Lex (tokenize) Java source code, even if it does not compile:
`python >>> java.lex('class Hello {') [('CLASS', 'class', (1, 0), (1, 5), 'class'), ('IDENTIFIER', 'Hello', (1, 6), (1, 11), 'Hello'), ('LBRACE', '{', (1, 12), (1, 13), '{'), ('EOF', '', (1, 13), (1, 13), 'token.end-of-input')] `
See the docstrings in javac_parser.py or type pydoc javac_parser for more details!
Copying
Copyright (C) 2017, 2018 Joshua Charles Campbell and Eddie Antonio Santos
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for javac_parser-1.0.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30d827cb71310fc39ea85feb758db253e8877e84524b7914f014370918c286da |
|
MD5 | 39bd7ec5dae532b353a15e98e2291b9f |
|
BLAKE2b-256 | 3a5b78223c9e7465a0f83ee1d5aee7065775f75897350ee9a5f115a8e2d1dfed |