diff -r c3f41b959a65 -r 76eee727ccd9 ThirdParty/Jasy/jasy/js/parse/VanillaBuilder.py --- a/ThirdParty/Jasy/jasy/js/parse/VanillaBuilder.py Thu Aug 10 13:58:50 2017 +0200 +++ b/ThirdParty/Jasy/jasy/js/parse/VanillaBuilder.py Fri Aug 11 14:40:54 2017 +0200 @@ -1,11 +1,12 @@ # # Jasy - Web Tooling Framework # Copyright 2010-2012 Zynga Inc. +# Copyright 2013-2014 Sebastian Werner # # # License: MPL 1.1/GPL 2.0/LGPL 2.1 -# Authors: +# Authors: # - Brendan Eich <brendan@mozilla.org> (Original JavaScript) (2004-2010) # - Sebastian Werner <info@sebastian-werner.net> (Python Port) (2010) # @@ -16,38 +17,37 @@ class VanillaBuilder: """The vanilla AST builder.""" - + def COMMENTS_add(self, currNode, prevNode, comments): if not comments: return - + currComments = [] prevComments = [] for comment in comments: # post comments - for previous node if comment.context == "inline": prevComments.append(comment) - + # all other comment styles are attached to the current one else: currComments.append(comment) - + # Merge with previously added ones if hasattr(currNode, "comments"): currNode.comments.extend(currComments) else: currNode.comments = currComments - + if prevNode: if hasattr(prevNode, "comments"): prevNode.comments.extend(prevComments) else: prevNode.comments = prevComments else: - # Don't loose the comment in tree (if not previous node is there, attach it - # to this node) + # Don't loose the comment in tree (if not previous node is there, attach it to this node) currNode.comments.extend(prevComments) - + def IF_build(self, tokenizer): return jasy.js.parse.Node.Node(tokenizer, "if") @@ -221,7 +221,7 @@ def CATCH_build(self, tokenizer): node = jasy.js.parse.Node.Node(tokenizer, "catch") return node - + def CATCH_wrapException(self, tokenizer): node = jasy.js.parse.Node.Node(tokenizer, "exception") node.value = tokenizer.token.value @@ -321,7 +321,7 @@ node.type = "getter" else: node.type = "setter" - + return node def FUNCTION_setName(self, node, identifier): @@ -329,24 +329,24 @@ def FUNCTION_initParams(self, node, tokenizer): node.append(jasy.js.parse.Node.Node(tokenizer, "list"), "params") - + def FUNCTION_wrapParam(self, tokenizer): param = jasy.js.parse.Node.Node(tokenizer) param.value = tokenizer.token.value return param - + def FUNCTION_addParam(self, node, tokenizer, expression): node.params.append(expression) - + def FUNCTION_setExpressionClosure(self, node, expressionClosure): node.expressionClosure = expressionClosure def FUNCTION_setBody(self, node, statement): # copy over function parameters to function body - #params = getattr(node, "params", None) + params = getattr(node, "params", None) #if params: # statement.params = [param.value for param in params] - + node.append(statement, "body") def FUNCTION_hoistVars(self, x): @@ -562,13 +562,13 @@ pass def UNARY_build(self, tokenizer): - # NB: tokenizer.token.type must be "delete", "void", "typeof", "not", - # "bitwise_not", "unary_plus", "unary_minus", "increment", or "decrement". + # NB: tokenizer.token.type must be "delete", "void", "typeof", "not", "bitwise_not", + # "unary_plus", "unary_minus", "increment", or "decrement". if tokenizer.token.type == "plus": tokenizer.token.type = "unary_plus" elif tokenizer.token.type == "minus": tokenizer.token.type = "unary_minus" - + return jasy.js.parse.Node.Node(tokenizer) def UNARY_addOperand(self, node, childNode): @@ -596,12 +596,11 @@ pass def PRIMARY_build(self, tokenizer, tokenType): - # NB: tokenizer.token.type must be "null", "this", "true", "false", "identifier", - # "number", "string", or "regexp". + # NB: tokenizer.token.type must be "null", "this", "true", "false", "identifier", "number", "string", or "regexp". node = jasy.js.parse.Node.Node(tokenizer, tokenType) if tokenType in ("identifier", "string", "regexp", "number"): node.value = tokenizer.token.value - + return node def PRIMARY_finish(self, node): @@ -618,13 +617,13 @@ def ARRAYCOMP_build(self, tokenizer): return jasy.js.parse.Node.Node(tokenizer, "array_comp") - + def ARRAYCOMP_setExpression(self, node, expression): node.append(expression, "expression") - + def ARRAYCOMP_setTail(self, node, childNode): node.append(childNode, "tail") - + def ARRAYCOMP_finish(self, node): pass