xcode-ast-dump - Dump the AST of your Swift Xcode project

  •        142

This is a simple script for dumping the Swift AST from within Xcode. Read more about how and why this works here.




Related Projects

Peckham - Add #import-s from anywhere in the code.

  •    Objective-C

Xcode plugin that simplifies adding #import-s. Originally the plugin was supposed to handle adding / removing imports on the fly, which soon proved to be a more difficult task than I originally imagined, and took me on an exploration path of Clang libtooling and other cool stuff. I recently decided that I would instead make a GUI popup for adding an #import which seems to be a better approach to the problem in the first place. The code base contains a lot of parts that were originally meant to parse the code and make a tree (similar to Clang's AST) to find the #import statements in text. Due to performance reasons, this was dumped in favor of regex-es.

Taylor - Measure Swift code metrics and get reports in Xcode, Jenkins and other CI platforms.

  •    Swift

A tool aimed to increase Swift code quality, by checking for conformance to code metrics. Taylor uses SourceKitten to a more accurate AST representation and generates the final report in either Xcode, JSON, PMD or plain text formats.

php-parser - PHP parser written in Go

  •    Go

This project uses goyacc and golex libraries to parse PHP sources into AST. It can be used to write static analysis, refactoring, metrics, code style formatting tools. Dump AST to stdout.

Xcode-RuntimeHeaders - Class dump of all of the internals of Xcode

  •    Objective-C

Class dump of all of the internals of Xcode

Jazzy - Soulful docs for Swift & Objective-C

  •    Ruby

jazzy is a command-line utility that generates documentation for Swift or Objective-C. Instead of parsing your source files, jazzy hooks into Clang and SourceKit to use the AST representation of your code and its comments for more accurate results. The output matches the look and feel of Apple’s official reference documentation, post WWDC 2014. Jazzy can also generate documentation from compiled swift modules using their symbol graph instead of source code.

espree - An Esprima-compatible JavaScript parser

  •    Javascript

Espree started out as a fork of Esprima v1.2.2, the last stable published released of Esprima before work on ECMAScript 6 began. Espree is now built on top of Acorn, which has a modular architecture that allows extension of core functionality. The goal of Espree is to produce output that is similar to Esprima with a similar API so that it can be used in place of Esprima. The primary goal is to produce the exact same AST structure and tokens as Esprima, and that takes precedence over anything else. (The AST structure being the ESTree API with JSX extensions.) Separate from that, Espree may deviate from what Esprima outputs in terms of where and how comments are attached, as well as what additional information is available on AST nodes. That is to say, Espree may add more things to the AST nodes than Esprima does but the overall AST structure produced will be the same.

cppast - Library to parse and work with the C++ AST

  •    C++

Library interface to the C++ AST — parse source files, synthesize entities, get documentation comments and generate code. If you're writing a tool that needs access to the C++ AST (i.e. documentation generator, reflection library, …), your only option apart from writing your own parser is to use clang. It offers three interfaces for tools, but the only one that really works for standalone applications is libclang. However, libclang has various limitations and does not expose the entire AST.

ast - This is the AT&T Software Technology ast software download site from AT&T Research

  •    C

This repository contains the AT&T Software Technology (AST) toolkit from AT&T Research. As of November 2017 the development focus has been shifted to the ksh (or ksh93) command and supporting code required to build it. The non-ksh code of the AST project is no longer being actively maintained. If you are interested in the non-ksh code see below for details on which branches contain the full AST code base.

csstree - A tool set for working with CSS including fast detailed parser, walker, generator and lexer based on W3C specs and browser implementations

  •    Javascript

CSSTree is a tool set to work with CSS, including fast detailed parser (string->AST), walker (AST traversal), generator (AST->string) and lexer (validation and matching) based on knowledge of spec and browser implementations. The main goal is to be efficient and W3C spec compliant, with focus on CSS analyzing and source-to-source transforming tasks. NOTE: The project is in alpha stage since some parts need further improvements, AST format and API are subjects to change. However it's stable enough and used by packages like CSSO (CSS minifier) and SVGO (SVG optimizer) in production.

node-falafel - transform the ast on a recursive walk

  •    Javascript

Transform the ast on a recursive walk.This modules uses acorn to create an AST from source code.

json4s - A single AST to be used by other scala json libraries

  •    Scala

At this moment there are at least 6 json libraries for scala, not counting the java json libraries. All these libraries have a very similar AST. This project aims to provide a single AST to be used by other scala json libraries. At this moment the approach taken to working with the AST has been taken from lift-json and the native package is in fact lift-json but outside of the lift project.

proposal-binary-ast - Binary AST proposal for ECMAScript


This is the explainer document for a proposed new binary AST format for JS. Performance of applications on the web platform is becoming increasingly bottlenecked by startup (load) time. Larger amounts of JS code are transferred over the wire by more sophisticated web properties. While caching helps, these properties regularly release new code, and cold load times are very important.

go-ast-book - :books: 《Go语法树入门——开启自制编程语言和编译器之旅》(开源免费图书/Go语言进阶/掌握抽象语法树/Go语言AST/凹语言)

  •    Go

:books: 《Go语法树入门——开启自制编程语言和编译器之旅》(开源免费图书/Go语言进阶/掌握抽象语法树/Go语言AST/凹语言)

VWInstantRun - An Xcode plugin let you build & run your selected lines of code in Xcode without running the whole project, you'll have the output instantly in your Xcode console

  •    Swift

Now with VWInstantRun, you won't run into this situation any more. An Xcode plugin let you build & run your selected lines of code in Xcode without running the whole project, you'll have the output instantly in your Xcode console. Installation: You can clone or just download the project, then open project with Xcode, build and run project, and finally restart Xcode to active plugin.

NewLife XCode ??????

  •    DotNet

XCode???????ORM??????????????????????????????????????90%??????????? ??X???????????XCode?????????????????????????????? XCode???“??”??“???”????????????????????XCode????????????????????????????????????????????????????????????????????????XCode????????????????????????...

Dash-Plugin-for-Xcode - Plugin for Xcode to integrate the Dash documentation viewer app

  •    Objective-C

This plugin does not work with Xcode 8 or newer. The new Xcode 8 extensions API is unreliable and extremely lacking. An Xcode 8 extension will not be released as it would not add any functionality that isn't there already. The recommended workaround is to set up a Search using selected text shortcut in Dash's Preferences > General. If you absolutely must use an extension in Xcode 8+, the Xcode Search and xTextHandler extensions support Dash. I don't recommend this, as extensions don't do anything more than what the Search using selected text keyboard shortcut does.

update_xcode_plugins - No more messing with plugin UUIDs; Plugins on Xcode 8+!

  •    Ruby

This tool adds the missing UUIDs into the installed Xcode plugins so that they can be loaded by newer versions of Xcode. You can choose to run it once or install a launch agent that will trigger the tool every time any of your installed plugins are modified or Xcode/Xcode-beta gets updated.

ShowInGitHub - Xcode plugin to open the GitHub page of the commit of the currently selected line in the editor window

  •    Objective-C

Xcode plugin to open a related Github or BitBucket page directly from the Xcode editor code window. Installs easily through the Xcode package manager Alcatraz. Show in GitHub has been tested with Xcode 5.1.1.

XVim2 - Vim key-bindings for Xcode 9

  •    Objective-C

XVim2 (or 'XVim for Xcode 9 and above') is a Vim plugin for Xcode. The plugin intends to offer a compelling Vim experience without the need to give up any Xcode features. Sign Xcode with your own certificate. You can read the instructions for how to do this and if you have questions or concerns about what this means you can read the FAQ on why you need to resign Xcode to use XVim2.

Import - Xcode extension for adding imports from anywhere in the code ☝️

  •    Swift

Xcode extension for adding imports from anywhere in the code. Because sometimes you are on 300th line of code and scrolling up just to add an import is a waste of time. This was built to replace Peckham, as  decided to drop support for Xcode plugins in Xcode 8.

We have large collection of open source products. Follow the tags from Tag Cloud >>

Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.