TopGit theo dõi be5invis/patrisika trên GitHub, đã đạt 50 sao. An AST Library
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
An library converts orthogonal AST into SpiderMonkey AST.
Semantics
AST for Patrisika is provided as JavaScript arraies. The following forms represents a node:
'identifier'
Represents a variable.
['.quote', value]
Represents a literal value.
['.unit']
Represents undefined value.
['.thisp']
Represents this reference.
['.argsp']
Represents argument list passed into the current function.
['.lambda', [...params], body]
Defines an anonymous function.
['.list', ...items]
Represents an array.
['.hash', ...['propName', propValue]]
Represents an object.
['.', base, member]
Represents a membering operation, i.e. base[member].
['.if', condition, consequent, alternate?]
Represents a conditional evaluation.
['.while', condition, body]
Represents a while loop evaluation. It returns the value of body in the last evaluation.
['.begin', ...items]
Represents a sequencial evaluation. Returns the last item evaluated.
['.return', value]
Return a value. Similar to JavaScript return statement.
['.try', block, [param], handler]
Represents a exception handling expression. Returns the value of block normally, or the value of handler1 when a exception is thrown during evaluating block.
['.throw', value]
Throws value as an exception.
['.set', left, right]
Assign right to variable or property node left.
[fn, ...args]
Once fn is a valid node, it means a common function invocation.
['.new', callee, ...args]
Initiates an instance of constructor callee, with args as arguments.
['.yield', value]
Represents a ES6 yield expression. Any functions directly containing such node will become a generator function described in ES6 specification.
['.beta', [...params], body, ...args]
Represents a beta redex which is similar to [['.lambda', [...params], body], ...args], used to implement semantics of let in scheme.
Operators
Unary operator
['.typeof', x] : typeof
['!', x] : !
['+', x] : +
['-', x] : -
Binary and Logical operator
['+', x, y] : + (both numeric and string)
['-', x, y] : -
['*', x, y] : *
['/', x, y] : /
['%', x, y] : %
['<', x, y] : <
['>', x, y] : >
['<=', x, y] : <=
['>=', x, y] : >=
['===', x, y] : ===
['!==', x, y] : !==
['=~', x, y] : ==
['!~', x, y] : !=
['.is', x, y] : instanceof
['&&', x, y] : &&
['||', x, y] : ||
Usage
Using Patrisika is pretty simple and straight forward:
// Note : global scopes must be provided. Undeclared variables in Patrisika
// are treated as local variables, instead of global.
var globalScope = new Patrisika.DefaultExterns;
globalScope.declare("globalVariable");
patrisika.compile(ast, globals);
Có — be5invis/patrisika phát hành theo license MIT, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/be5invis/patrisika.
be5invis/patrisika là gì?
be5invis/patrisika (be5invis/patrisika) là dự án JavaScript trên GitHub. Theo mô tả gốc: An AST Library
Đọc thêm về be5invis/patrisika ở đâu?
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/be5invis/patrisika là nguồn chính thức.
Đọc đầy đủ README ở tab phía trên.
Vẫn đang phân vân về patrisika?
Một cú bấm sẽ gửi câu hỏi kèm trang này cho AI — xem AI nói gì về patrisika.