mirror of
https://github.com/ccxvii/mujs.git
synced 2026-09-22 07:03:36 +08:00
Add proper pretty-printing functions.
jsP_dumpsyntax to print as javascript. jsP_dumplist to print as s-expressions.
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
|
||||
typedef struct js_State js_State;
|
||||
typedef struct js_StringNode js_StringNode;
|
||||
typedef struct js_Ast js_Ast;
|
||||
|
||||
typedef int (*js_CFunction)(js_State *J);
|
||||
|
||||
|
||||
@@ -5,8 +5,9 @@ static int jsP_loadstring(js_State *J, const char *filename, const char *source)
|
||||
{
|
||||
js_Ast *prog = jsP_parse(J, filename, source);
|
||||
if (prog) {
|
||||
jsP_foldconstants(J, prog);
|
||||
jsP_pretty(J, prog);
|
||||
jsP_optimize(J, prog);
|
||||
jsP_dumpsyntax(J, prog);
|
||||
jsP_dumplist(J, prog);
|
||||
jsP_freeparse(J);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ static int foldnumber(js_Ast *node, double *r)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void jsP_foldconstants(js_State *J, js_Ast *prog)
|
||||
void jsP_optimize(js_State *J, js_Ast *prog)
|
||||
{
|
||||
double x;
|
||||
foldnumber(prog, &x);
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
#ifndef js_parse_h
|
||||
#define js_parse_h
|
||||
|
||||
typedef struct js_Ast js_Ast;
|
||||
|
||||
struct js_Ast
|
||||
{
|
||||
int type;
|
||||
@@ -124,7 +122,8 @@ enum
|
||||
js_Ast *jsP_parse(js_State *J, const char *filename, const char *source);
|
||||
void jsP_freeparse(js_State *J);
|
||||
|
||||
void jsP_foldconstants(js_State *J, js_Ast *prog);
|
||||
void jsP_pretty(js_State *J, js_Ast *prog);
|
||||
void jsP_optimize(js_State *J, js_Ast *prog);
|
||||
void jsP_dumpsyntax(js_State *J, js_Ast *prog);
|
||||
void jsP_dumplist(js_State *J, js_Ast *prog);
|
||||
|
||||
#endif
|
||||
|
||||
-518
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user