语法解析工具go-callvis、Tolerant PHP Parser、apicloud-autocomplete介绍

以下为你介绍的语法解析工具都可用在Linux系统上:go-callvis(概览 Go 程序的开发工具)、Tolerant PHP Parser(PHP 解析器)、apicloud-autocomplete(APICloud 语法提示插件)。

1、go-callvis(概览 Go 程序的开发工具)

语法解析工具go-callvis、Tolerant PHP Parser、apicloud-autocomplete介绍

go-callvis 是一个开发工具,其目的是通过使用来自函数调用关系图的数据及其与包和类型的关系来对程序进行可视概览。这在你只是试图理解别人的代码结构,或在代码复杂性增加的大型项目中特别有用。

特性:

关注程序中的特定包。

按包区分组函数和按类型区分方法。

将包限制到自定义路径前缀。

忽略包含路径前缀的包。

省略来自/到std包的调用。

要求:

Go 1.12+、Graphviz。

安装:

go get -u github.com/TrueFurby/go-callvis

# or

git clone https://github.com/TrueFurby/go-callvis.git

cd go-callvis && make install

用法:

运行:

go-callvis [OPTIONS] <main package>

默认情况下,HTTP服务器正在http://localhost:7878/上侦听。

要生成单个输出文件,请使用选项-file=<file path>选择输出文件目标,输出格式默认为svg,使用-format=<svg|png|jpg|...>选项选择其他输出格式。

下载地址:https://gitee.com/mirrors/go-callvis

2、Tolerant PHP Parser(PHP 解析器)

这是一个早期的 PHP 解析器,相当于实现了 PHP 对 PHP 脚本的解析。

示例代码:

<?php

// Autoload required classes

require "vendor/autoload.php";

// Instantiate new parser instance

$parser = new PhpParser\Parser();

// Return and print an AST from string contents

$astNode = $parser->parseSourceFile('<?php /* comment */ echo "hi!"');

var_dump($astNode);

// Gets and prints errors from AST Node. The parser handles errors gracefully,

// so it can be used in IDE usage scenarios (where code is often incomplete).

$errors = PhpParser\Utilities::getDiagnostics($astNode);

var_dump(iterator_to_array($errors));

// Traverse all Node descendants of $astNode

foreach ($astNode->getDescendantNodes() as $descendant) {

if ($descendant instanceof \PhpParser\Node\StringLiteral) {

// Print the Node text (without whitespace or comments)

var_dump($descendant->getText());

// All Nodes link back to their parents, so it's easy to navigate the tree.

$grandParent = $descendant->getParent()->getParent();

var_dump($grandParent->getNodeKindName());

// The AST is fully-representative, and round-trippable to the original source.

// This enables consumers to build reliable formatting and refactoring tools.

var_dump($grandParent->getLeadingCommentAndWhitespaceText());

}

// In addition to retrieving all children or descendants of a Node,

// Nodes expose properties specific to the Node type.

if ($descendant instanceof \PhpParser\Node\Expression\EchoExpression) {

$echoKeywordStartPosition = $descendant->echoKeyword->getStartPosition();

// To cut down on memory consumption, positions are represented as a single integer 

// index into the document, but their line and character positions are easily retrieved.

$lineCharacterPosition = \PhpParser\Utilities::getLineCharacterPositionFromPosition(

$echoKeywordStartPosition

);

echo "line: $lineCharacterPosition->line, character: $lineCharacterPosition->character";

}

}

3、apicloud-autocomplete(APICloud 语法提示插件)

Atom 插件:APICloud 语法提示与自动补全。

特性如下:

支持 Mac/Windows/Linux等主流操作系统:

第一款同时支持三个主流操作系统的APICloud语法提示插件,现在可以在任意自己喜欢的系统上愉快地编码了。

模块智能提示:

api.require 后模糊提示APICloud全部已有模块,再也不用担心记不住模块名了。

变量真实类型,智能推导:

自动根据上下文,推断出变量的真实模块类型,就是这么强大。

方法名,模糊匹配:

现在再也不用担心记不住完整的方法名了,模糊匹配,就是这么智能。

示范代码,自动补全:

基于文档有效示例代码整理,只为书写更有意义的代码模板,模块整体支持率,95%以上。

响应实时高效:

基于Atom的autocomplete-plus语法扩展引擎,采用哈希高效存储,使用最流行的Promise语法,只为更加流畅的编码体验。

文档链接,一键跳转:

每个模板,每个方法,一键点击直达,就是这么方便。

模块跨平台支持,智能提示:

智能提示模块的跨平台情况,再也不用小心翼翼地在网页确定支持哪个平台了。

安装方法:

安装Atom编辑器后,在packages中搜索"apicloud-autocomplete",点击安装即可。

下载地址:https://atom.io/packages/apicloud-autocomplete

注明

以上就是语法解析工具go-callvis、Tolerant PHP Parser、apicloud-autocomplete的介绍内容,这些语法解析工具都能使用在Linux操作系统中。

栏目相关文章