Skip to content

MJKWoolnough/javascript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

javascript

CI Go Reference Go Report Card

-- import "vimagination.zapto.org/javascript"

Package javascript implements a javascript tokeniser and AST.

Highlights

  • Parse javascript code into AST.
  • Modify parsed code.
  • Consistant javascript formatting.
  • Parse Typescript as comments, allowing it to be parsed as normal Javascript.
  • Scoping package to allowing the processing of identifier references.

Usage

package main

import (
	"fmt"

	"vimagination.zapto.org/javascript"
	"vimagination.zapto.org/parser"
)

func main() {
	src := `function greet(name) {console.log("Hello, " + name)} for (const name of ["Alice", "Bob", "Charlie"]) greet(name)`

	tk := parser.NewStringTokeniser(src)

	ast, err := javascript.ParseModule(&tk)
	if err != nil {
		fmt.Println(err)

		return
	}

	javascript.UnwrapConditional(javascript.WrapConditional(javascript.UnwrapConditional(javascript.UnwrapConditional(ast.ModuleListItems[0].StatementListItem.Declaration.FunctionDeclaration.FunctionBody.StatementList[0].Statement.ExpressionStatement.Expressions[0].ConditionalExpression).(*javascript.CallExpression).Arguments.ArgumentList[0].AssignmentExpression.ConditionalExpression).(*javascript.AdditiveExpression).AdditiveExpression)).(*javascript.PrimaryExpression).Literal.Data = `"Hi, "`

	fmt.Printf("%s", ast)

	// Output:
	// function greet(name) {
	//	console.log("Hi, " + name);
	// }
	//
	// for (const name of ["Alice", "Bob", "Charlie"]) greet(name);
}

Documentation

Full API docs can be found at:

https://pkg.go.dev/vimagination.zapto.org/javascript

About

Package javascript provides tools to tokenise and parse javascript source files

Resources

License

Stars

Watchers

Forks

Packages

No packages published