From b5ca96dd4809436f6174468163ee5e82782615a5 Mon Sep 17 00:00:00 2001 From: David Majda Date: Fri, 23 Sep 2011 14:49:51 +0200 Subject: [PATCH] Refactor "action" emitter function a bit --- src/emitter.js | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/emitter.js b/src/emitter.js index 8521d07..0afe90f 100644 --- a/src/emitter.js +++ b/src/emitter.js @@ -809,11 +809,6 @@ PEG.compiler.emitter = function(ast) { * This behavior is reflected in this function. */ - var expressionContext = { - resultIndex: context.resultIndex, - posIndex: context.posIndex + 1 - }; - var formalParams; var actualParams; @@ -841,16 +836,19 @@ PEG.compiler.emitter = function(ast) { '#{posVar} = pos;', '#block expressionCode', 'if (#{resultVar} !== null) {', - ' #{resultVar} = (function(#{formalParams}) {#{actionCode}})(#{actualParams});', + ' #{resultVar} = (function(#{formalParams.join(", ")}) {#{node.code}})(#{actualParams.join(", ")});', '}', 'if (#{resultVar} === null) {', ' pos = #{posVar};', '}', { - expressionCode: emit(node.expression, expressionContext), - actionCode: node.code, - formalParams: formalParams.join(', '), - actualParams: actualParams.join(', '), + node: node, + expressionCode: emit(node.expression, { + resultIndex: context.resultIndex, + posIndex: context.posIndex + 1 + }), + formalParams: formalParams, + actualParams: actualParams, posVar: posVar(context.posIndex), resultVar: resultVar(context.resultIndex) }