Add importMemory option to asc, see #36

This commit is contained in:
dcodeIO
2018-02-28 18:38:42 +01:00
parent 56bc1be8ba
commit 02dce5a518
12 changed files with 158 additions and 70 deletions

View File

@ -373,7 +373,7 @@ export function serializeAssertionExpression(node: AssertionExpression, sb: stri
export function serializeBinaryExpression(node: BinaryExpression, sb: string[]): void {
serializeExpression(node.left, sb);
sb.push(" ");
sb.push(operatorToString(node.operator));
sb.push(Token.operatorToString(node.operator));
sb.push(" ");
serializeExpression(node.right, sb);
}
@ -613,11 +613,11 @@ export function serializeUnaryExpression(node: UnaryExpression, sb: string[]): v
export function serializeUnaryPostfixExpression(node: UnaryPostfixExpression, sb: string[]): void {
serializeExpression(node.operand, sb);
sb.push(operatorToString(node.operator));
sb.push(Token.operatorToString(node.operator));
}
export function serializeUnaryPrefixExpression(node: UnaryPrefixExpression, sb: string[]): void {
sb.push(operatorToString(node.operator));
sb.push(Token.operatorToString(node.operator));
serializeExpression(node.operand, sb);
}
@ -1245,60 +1245,6 @@ export function serializeParameter(node: Parameter, sb: string[]): void {
// helpers
export function operatorToString(token: Token): string {
switch (token) {
case Token.DELETE: return "delete";
case Token.IN: return "in";
case Token.INSTANCEOF: return "instanceof";
case Token.NEW: return "new";
case Token.TYPEOF: return "typeof";
case Token.VOID: return "void";
case Token.YIELD: return "yield";
case Token.DOT_DOT_DOT: return "...";
case Token.COMMA: return ",";
case Token.LESSTHAN: return "<";
case Token.GREATERTHAN: return ">";
case Token.LESSTHAN_EQUALS: return "<=";
case Token.GREATERTHAN_EQUALS: return ">=";
case Token.EQUALS_EQUALS: return "==";
case Token.EXCLAMATION_EQUALS: return "!=";
case Token.EQUALS_EQUALS_EQUALS: return "===";
case Token.EXCLAMATION_EQUALS_EQUALS: return "!==";
case Token.PLUS: return "+";
case Token.MINUS: return "-";
case Token.ASTERISK_ASTERISK: return "**";
case Token.ASTERISK: return "*";
case Token.SLASH: return "/";
case Token.PERCENT: return "%";
case Token.PLUS_PLUS: return "++";
case Token.MINUS_MINUS: return "--";
case Token.LESSTHAN_LESSTHAN: return "<<";
case Token.GREATERTHAN_GREATERTHAN: return ">>";
case Token.GREATERTHAN_GREATERTHAN_GREATERTHAN: return ">>>";
case Token.AMPERSAND: return "&";
case Token.BAR: return "|";
case Token.CARET: return "^";
case Token.EXCLAMATION: return "!";
case Token.TILDE: return "~";
case Token.AMPERSAND_AMPERSAND: return "&&";
case Token.BAR_BAR: return "||";
case Token.EQUALS: return "=";
case Token.PLUS_EQUALS: return "+=";
case Token.MINUS_EQUALS: return "-=";
case Token.ASTERISK_EQUALS: return "*=";
case Token.ASTERISK_ASTERISK_EQUALS: return "**=";
case Token.SLASH_EQUALS: return "/=";
case Token.PERCENT_EQUALS: return "%=";
case Token.LESSTHAN_LESSTHAN_EQUALS: return "<<=";
case Token.GREATERTHAN_GREATERTHAN_EQUALS: return ">>=";
case Token.GREATERTHAN_GREATERTHAN_GREATERTHAN_EQUALS: return ">>>=";
case Token.AMPERSAND_EQUALS: return "&=";
case Token.BAR_EQUALS: return "|=";
case Token.CARET_EQUALS: return "^=";
default: assert(false); return "";
}
}
export function modifierToString(node: Modifier): string {
switch (node.modifierKind) {
case ModifierKind.ASYNC: return "async";