hqchart 1.1.12860 → 1.1.12863

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11457,30 +11457,30 @@ break;}}JSConsole.Complier.Log('[JSExecute::RunAST]',this.VarTable);return this.
11457
11457
  if(item.Type==Syntax.ExpressionStatement&&item.Expression){if(item.Expression.Type==Syntax.AssignmentExpression){if(item.Expression.Operator==':'&&item.Expression.Left){var assignmentItem=item.Expression;var _varName=assignmentItem.Left.Name;var _outVar=this.VarTable.get(_varName);if(this.VarDrawTable.has(_varName))//绘图函数赋值
11458
11458
  {var draw=this.VarDrawTable.get(_varName);this.OutVarTable.push({Name:draw.Name,Draw:draw,Type:1});}else{var type=0;if(_outVar&&(typeof _outVar==='undefined'?'undefined':(0,_typeof3.default)(_outVar))=='object'&&_outVar.__Type__=='Object'){type=1000;}else if(!this.IsSectionMode&&!Array.isArray(_outVar)){if(typeof _outVar=='string'){var floatValue=parseFloat(_outVar);if(IFrameSplitOperator.IsNumber(floatValue)){_outVar=this.SingleDataToArrayData(floatValue);}else{_outVar=this.SingleDataToArrayData(_outVar);type=1001;}}else _outVar=this.SingleDataToArrayData(_outVar);}this.OutVarTable.push({Name:_varName,Data:_outVar,Type:type});}}}else if(item.Expression.Type==Syntax.CallExpression){var callItem=item.Expression;if(this.Draw.IsDrawFunction(callItem.Callee.Name)){var _draw=callItem.Draw;_draw.Name=callItem.Callee.Name;this.OutVarTable.push({Name:_draw.Name,Draw:_draw,Type:1});}else if(callItem.Callee.Name==="IFC"&&callItem.Draw){var _draw2=callItem.Draw;_draw2.Name=_draw2.DrawType;this.OutVarTable.push({Name:_draw2.Name,Draw:_draw2,Type:1});}else{var _outVar2=callItem.Out;varName='__temp_c_'+callItem.Callee.Name+'_'+i+'__';var type=0;if(!Array.isArray(_outVar2))_outVar2=this.SingleDataToArrayData(_outVar2);this.OutVarTable.push({Name:varName,Data:_outVar2,Type:type,NoneName:true});}}else if(item.Expression.Type==Syntax.Identifier){var _varName2=item.Expression.Name;var _outVar3=this.ReadVariable(_varName2,item.Expression);var type=0;if(_outVar3&&(typeof _outVar3==='undefined'?'undefined':(0,_typeof3.default)(_outVar3))=='object'&&_outVar3.__Type__=='Object'){type=1000;}else if(!this.IsSectionMode&&!Array.isArray(_outVar3)){if(typeof _outVar3=='string')_outVar3=this.SingleDataToArrayData(parseFloat(_outVar3));else _outVar3=this.SingleDataToArrayData(_outVar3);}_varName2="__temp_i_"+i+"__";this.OutVarTable.push({Name:_varName2,Data:_outVar3,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.Literal)//常量
11459
11459
  {var _outVar4=item.Expression.Value;if(IFrameSplitOperator.IsString(_outVar4)&&_outVar4.indexOf("$")>0)_outVar4=this.SymbolData.GetOtherSymolCacheData({Literal:_outVar4});varName="__temp_li_"+i+"__";var type=0;if(!Array.isArray(_outVar4))_outVar4=this.SingleDataToArrayData(_outVar4);this.OutVarTable.push({Name:varName,Data:_outVar4,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.BinaryExpression){var varName="__temp_b_"+i+"__";var _outVar5=item.Expression.Out;var type=0;if(!Array.isArray(_outVar5))_outVar5=this.SingleDataToArrayData(_outVar5);this.OutVarTable.push({Name:varName,Data:_outVar5,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.LogicalExpression)//逻辑语句 如 T1 AND T2
11460
- {var varName="__temp_l_"+i+"__";var _outVar6=item.Expression.Out;var type=0;if(!Array.isArray(_outVar6))_outVar6=this.SingleDataToArrayData(_outVar6);this.OutVarTable.push({Name:varName,Data:_outVar6,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.UnaryExpression){var varName="__temp_l_"+i+"__";var argument=item.Expression.Argument;var type=0;var _outVar7=null;if(argument.Type==Syntax.Literal){_outVar7=argument.Value;if(!Array.isArray(_outVar7))_outVar7=this.SingleDataToArrayData(_outVar7);}else if(argument.Type==Syntax.Identifier){var _varName3=argument.Name;_outVar7=this.ReadVariable(_varName3,item.Expression);if(!Array.isArray(_outVar7))_outVar7=this.SingleDataToArrayData(_outVar7);}else if(argument.Type==Syntax.BinaryExpression){_outVar7=argument.Out;if(!Array.isArray(_outVar7))_outVar7=this.SingleDataToArrayData(_outVar7);}if(item.Expression.Operator=='-'){if(_outVar7)_outVar7=this.Algorithm.Subtract(0,_outVar7);}if(_outVar7)this.OutVarTable.push({Name:varName,Data:_outVar7,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.SequenceExpression){var _varName4=void 0;var _draw3=void 0;var color=void 0,upColor=void 0,downColor=void 0;var lineWidth=void 0;var colorStick=false;var pointDot=false;var upDownDot=false;var circleDot=false;var lineStick=false;var stick=false;var volStick=false;var lineArea=false;var stepLine=false;var isShow=true;var isExData=false;var isDotLine=false;var isOverlayLine=false;//叠加线
11460
+ {var varName="__temp_l_"+i+"__";var _outVar6=item.Expression.Out;var type=0;if(!Array.isArray(_outVar6))_outVar6=this.SingleDataToArrayData(_outVar6);this.OutVarTable.push({Name:varName,Data:_outVar6,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.UnaryExpression){var varName="__temp_u_"+i+"__";var varInfo={};if(this.ReadUnaryExpression(item.Expression,varInfo)){var type=0;this.OutVarTable.push({Name:varName,Data:varInfo.OutVar,Type:type,NoneName:true});}}else if(item.Expression.Type==Syntax.SequenceExpression){var _varName3=void 0;var _draw3=void 0;var color=void 0,upColor=void 0,downColor=void 0;var lineWidth=void 0;var colorStick=false;var pointDot=false;var upDownDot=false;var circleDot=false;var lineStick=false;var stick=false;var volStick=false;var lineArea=false;var stepLine=false;var isShow=true;var isExData=false;var isDotLine=false;var isOverlayLine=false;//叠加线
11461
11461
  var isNoneName=false;var isShowTitle=true;//显示在位置之上,对于DRAWTEXT和DRAWNUMBER等函数有用,放在语句的最后面(不能与LINETHICK等函数共用),比如:
11462
11462
  //DRAWNUMBER(CLOSE>OPEN,HIGH,CLOSE),DRAWABOVE;
11463
11463
  var isDrawAbove=false;var isDrawCenter=false;var isDrawBelow=false;//VALIGN0,VALIGN1,VALIGN2 设置文字垂直对齐方式(上中下)
11464
11464
  //ALIGN0,ALIGN1,ALIGN2 设置文字水平对齐方式(左中右)
11465
11465
  var drawAlign=-1,drawVAlign=-1;var fontSize=-1;var bgConfig=null;//背景设置
11466
- var vLineConfig=null;var isFirstDraw=null;var xOffset=null,yOffset=null;for(var _j14=0;_j14<item.Expression.Expression.length;++_j14){var itemExpression=item.Expression.Expression[_j14];if(itemExpression.Type==Syntax.AssignmentExpression&&itemExpression.Operator==':'&&itemExpression.Left){if(_j14==0){_varName4=itemExpression.Left.Name;var varValue=this.VarTable.get(_varName4);if(this.VarDrawTable.has(_varName4))//绘图函数赋值
11467
- {_draw3=this.VarDrawTable.get(_varName4);}else if(!Array.isArray(varValue)){varValue=this.SingleDataToArrayData(varValue);this.VarTable.set(_varName4,varValue);//把常量放到变量表里
11466
+ var vLineConfig=null;var isFirstDraw=null;var xOffset=null,yOffset=null;for(var _j14=0;_j14<item.Expression.Expression.length;++_j14){var itemExpression=item.Expression.Expression[_j14];if(itemExpression.Type==Syntax.AssignmentExpression&&itemExpression.Operator==':'&&itemExpression.Left){if(_j14==0){_varName3=itemExpression.Left.Name;var varValue=this.VarTable.get(_varName3);if(this.VarDrawTable.has(_varName3))//绘图函数赋值
11467
+ {_draw3=this.VarDrawTable.get(_varName3);}else if(!Array.isArray(varValue)){varValue=this.SingleDataToArrayData(varValue);this.VarTable.set(_varName3,varValue);//把常量放到变量表里
11468
11468
  }}else{}}else if(itemExpression.Type==Syntax.Identifier){var value=itemExpression.Name;if(value==='COLORSTICK')colorStick=true;else if(value==='POINTDOT')pointDot=true;else if(value==='CIRCLEDOT')circleDot=true;else if(value==='DOTLINE')isDotLine=true;else if(value=="UPDOWNDOT")upDownDot=true;else if(value==='LINESTICK')lineStick=true;else if(value==='STICK')stick=true;else if(value==='VOLSTICK')volStick=true;else if(value=="LINEAREA")lineArea=true;else if(value==="DRAWABOVE")isDrawAbove=true;else if(value==="DRAWCENTER")isDrawCenter=true;else if(value=="DRAWBELOW")isDrawBelow=true;else if(value=="STEPLINE")stepLine=true;else if(value.indexOf('COLOR')==0)color=value;else if(value.indexOf("RGBX")==0&&value.length==10)color=value;//RGBX+“RRGGBB”
11469
11469
  else if(value.indexOf('LINETHICK')==0)lineWidth=value;else if(value=="ALIGN0")drawAlign=0;else if(value=="ALIGN1")drawAlign=1;else if(value=="ALIGN2")drawAlign=2;else if(value=="VALIGN0")drawVAlign=0;else if(value=="VALIGN1")drawVAlign=1;else if(value=="VALIGN2")drawVAlign=2;else if(value.indexOf('NODRAW')==0)isShow=false;else if(value.indexOf('EXDATA')==0)isExData=true;//扩展数据, 不显示再图形里面
11470
11470
  else if(value.indexOf('LINEOVERLAY')==0)isOverlayLine=true;else if(value.indexOf("NOTEXT")==0||value.indexOf("NOTITLE")==0)isShowTitle=false;//标题不显示
11471
- else if(value.indexOf("FONTSIZE")==0){var strFontSize=value.replace("FONTSIZE","");fontSize=parseInt(strFontSize);}else{if(_j14==0){_varName4=itemExpression.Name;var _varValue=this.ReadVariable(_varName4,itemExpression);if(!Array.isArray(_varValue))_varValue=this.SingleDataToArrayData(_varValue);_varName4="__temp_si_"+i+"__";isNoneName=true;this.VarTable.set(_varName4,_varValue);//放到变量表里
11471
+ else if(value.indexOf("FONTSIZE")==0){var strFontSize=value.replace("FONTSIZE","");fontSize=parseInt(strFontSize);}else{if(_j14==0){_varName3=itemExpression.Name;var _varValue=this.ReadVariable(_varName3,itemExpression);if(!Array.isArray(_varValue))_varValue=this.SingleDataToArrayData(_varValue);_varName3="__temp_si_"+i+"__";isNoneName=true;this.VarTable.set(_varName3,_varValue);//放到变量表里
11472
11472
  }}}else if(itemExpression.Type==Syntax.Literal)//常量
11473
- {if(_j14==0){var aryValue=this.SingleDataToArrayData(itemExpression.Value);_varName4=itemExpression.Value.toString();this.VarTable.set(_varName4,aryValue);//把常量放到变量表里
11474
- }}else if(itemExpression.Type==Syntax.CallExpression){if(_j14==0){if(this.Draw.IsDrawFunction(itemExpression.Callee.Name)){_draw3=itemExpression.Draw;_draw3.Name=itemExpression.Callee.Name;}else{var _varValue2=itemExpression.Out;_varName4='__temp_sc_'+itemExpression.Callee.Name+'_'+i+'__';isNoneName=true;this.VarTable.set(_varName4,_varValue2);}}else{if(itemExpression.Callee.Name=="RGB"||itemExpression.Callee.Name=="RGBA"){color=itemExpression.Out;}else if(itemExpression.Callee.Name=="UPCOLOR"){upColor=itemExpression.Out;}else if(itemExpression.Callee.Name=="DOWNCOLOR"){downColor=itemExpression.Out;}else if(itemExpression.Callee.Name=="XMOVE"){xOffset=itemExpression.Out;}else if(itemExpression.Callee.Name=="YMOVE"){yOffset=itemExpression.Out;}else if(itemExpression.Callee.Name=="FIRSTDRAW"){if(itemExpression.Out===0)isFirstDraw=false;else if(itemExpression.Out===1)isFirstDraw=true;}else if(itemExpression.Callee.Name=="SOUND"){var event=this.GetSoundEvent();if(event){}_varName4=null;}else if(itemExpression.Callee.Name=="ICON"){var drawCond=this.VarTable.get(_varName4);if(drawCond){_draw3=this.GetOutIconData(drawCond,itemExpression.Draw);if(_draw3)_draw3.Name=itemExpression.Callee.Name;}_varName4=null;}else if(itemExpression.Callee.Name=="BACKGROUND"){bgConfig=itemExpression.Draw;_varName4=null;}else if(itemExpression.Callee.Name=="CKLINE"){vLineConfig=itemExpression.Draw;_varName4=null;}}}else if(itemExpression.Type==Syntax.BinaryExpression){if(_j14==0){_varName4="__temp_sb_"+i+"__";var _aryValue=itemExpression.Out;isNoneName=true;this.VarTable.set(_varName4,_aryValue);}}else if(itemExpression.Type==Syntax.UnaryExpression){if(_j14==0){_varName4="__temp_sb_"+i+"__";var argument=itemExpression.Argument;var _aryValue2=null;if(argument.Type==Syntax.Literal){_aryValue2=argument.Value;if(!Array.isArray(_aryValue2))_aryValue2=this.SingleDataToArrayData(_aryValue2);}else if(argument.Type==Syntax.Identifier){var _varName5=argument.Name;_aryValue2=this.ReadVariable(_varName5,item.Expression);if(!Array.isArray(_aryValue2))_aryValue2=this.SingleDataToArrayData(_aryValue2);}else if(argument.Type==Syntax.BinaryExpression){_aryValue2=argument.Out;if(!Array.isArray(_aryValue2))_aryValue2=this.SingleDataToArrayData(_aryValue2);}if(itemExpression.Operator=='-'){if(_aryValue2)_aryValue2=this.Algorithm.Subtract(0,_aryValue2);}isNoneName=true;this.VarTable.set(_varName4,_aryValue2);}}}if(pointDot&&_varName4)//圆点
11475
- {var _outVar8=this.VarTable.get(_varName4);if(!Array.isArray(_outVar8))_outVar8=this.SingleDataToArrayData(_outVar8);var _value4={Name:_varName4,Data:_outVar8,Radius:g_JSChartResource.POINTDOT.Radius,Type:3};if(color)_value4.Color=color;if(lineWidth)_value4.LineWidth=lineWidth;this.OutVarTable.push(_value4);}else if(circleDot&&_varName4)//圆点
11476
- {var _outVar9=this.VarTable.get(_varName4);if(!Array.isArray(_outVar9))_outVar9=this.SingleDataToArrayData(_outVar9);var _value5={Name:_varName4,Data:_outVar9,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3};if(color)_value5.Color=color;if(lineWidth)_value5.LineWidth=lineWidth;this.OutVarTable.push(_value5);}else if(upDownDot&&_varName4)//彩色点
11477
- {var _outVar10=this.VarTable.get(_varName4);if(!Array.isArray(_outVar10))_outVar10=this.SingleDataToArrayData(_outVar10);var _value6={Name:_varName4,Data:_outVar10,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3,UpDownDot:true};if(color)_value6.Color=color;if(lineWidth)_value6.LineWidth=lineWidth;this.OutVarTable.push(_value6);}else if(lineStick&&_varName4)//LINESTICK 同时画出柱状线和指标线
11478
- {var _outVar11=this.VarTable.get(_varName4);var _value7={Name:_varName4,Data:_outVar11,Type:4};if(color)_value7.Color=color;if(lineWidth)_value7.LineWidth=lineWidth;this.OutVarTable.push(_value7);}else if(stick&&_varName4)//STICK 画柱状线
11479
- {var _outVar12=this.VarTable.get(_varName4);var _value8={Name:_varName4,Data:_outVar12,Type:5};if(color)_value8.Color=color;if(lineWidth)_value8.LineWidth=lineWidth;this.OutVarTable.push(_value8);}else if(volStick&&_varName4)//VOLSTICK 画彩色柱状线
11480
- {var _outVar13=this.VarTable.get(_varName4);var _value9={Name:_varName4,Data:_outVar13,Type:6};if(color)_value9.Color=color;if(upColor)_value9.UpColor=upColor;if(downColor)_value9.DownColor=downColor;if(lineWidth)_value9.LineWidth=lineWidth;this.OutVarTable.push(_value9);}else if(lineArea&&_varName4)//LINEAREA 面积
11481
- {var _outVar14=this.VarTable.get(_varName4);var _value10={Name:_varName4,Data:_outVar14,Type:9};if(color)_value10.Color=color;if(upColor)_value10.UpColor=upColor;if(downColor)_value10.DownColor=downColor;if(lineWidth)_value10.LineWidth=lineWidth;this.OutVarTable.push(_value10);}else if(colorStick&&_varName4)//CYW: SUM(VAR4,10)/10000, COLORSTICK; 画上下柱子
11482
- {var _outVar15=this.VarTable.get(_varName4);var _value11={Name:_varName4,Data:_outVar15,Color:color,Type:2};if(lineWidth)_value11.LineWidth=lineWidth;if(color)_value11.Color=color;if(upColor)_value11.UpColor=upColor;if(downColor)_value11.DownColor=downColor;this.OutVarTable.push(_value11);}else if(_varName4&&color&&!_draw3){var _outVar16=this.VarTable.get(_varName4);if(!Array.isArray(_outVar16))_outVar16=this.SingleDataToArrayData(_outVar16);var _value12={Name:_varName4,Data:_outVar16,Color:color,Type:0};if(lineWidth)_value12.LineWidth=lineWidth;if(isShow==false)_value12.IsShow=false;if(isExData==true)_value12.IsExData=true;if(isDotLine==true)_value12.IsDotLine=true;if(isOverlayLine==true)_value12.IsOverlayLine=true;if(isNoneName==true)_value12.NoneName=true;if(isShowTitle==false)_value12.IsShowTitle=false;if(stepLine==true)_value12.Type=7;this.OutVarTable.push(_value12);}else if(_draw3)//画图函数
11483
- {var outVar={Name:_draw3.Name,Draw:_draw3,Type:1};if(color)outVar.Color=color;if(isDotLine==true)outVar.IsDotLine=true;if(lineWidth)outVar.LineWidth=lineWidth;if(isDrawAbove)outVar.IsDrawAbove=true;if(isDrawCenter)outVar.IsDrawCenter=true;if(isDrawBelow)outVar.IsDrawBelow=true;if(drawAlign>=0)outVar.DrawAlign=drawAlign;if(drawVAlign>=0)outVar.DrawVAlign=drawVAlign;if(fontSize>0)outVar.DrawFontSize=fontSize;if(bgConfig)outVar.Background=bgConfig;if(vLineConfig)outVar.VerticalLine=vLineConfig;if(IFrameSplitOperator.IsNumber(xOffset))outVar.XOffset=xOffset;if(IFrameSplitOperator.IsNumber(yOffset))outVar.YOffset=yOffset;if(IFrameSplitOperator.IsBool(isFirstDraw))outVar.IsFirstDraw=isFirstDraw;this.OutVarTable.push(outVar);}else if(_varName4){var _outVar17=this.VarTable.get(_varName4);var _value13={Name:_varName4,Data:_outVar17,Type:0};if(color)_value13.Color=color;if(lineWidth)_value13.LineWidth=lineWidth;if(isShow==false)_value13.IsShow=false;if(isExData==true)_value13.IsExData=true;if(isDotLine==true)_value13.IsDotLine=true;if(isOverlayLine==true)_value13.IsOverlayLine=true;if(isShowTitle==false)_value13.IsShowTitle=false;if(stepLine==true)_value13.Type=7;this.OutVarTable.push(_value13);}}}};this.GetOutIconData=function(cond,iconDraw){if(Array.isArray(cond)){for(var i=0;i<cond.length&&i<iconDraw.DrawData.length;++i){var item=cond[i];if(item<=0)iconDraw.DrawData[i]=null;}return iconDraw;}if(cond)return iconDraw;return null;};this.GetSoundEvent=function(){if(!this.GetEventCallback)return null;return this.GetEventCallback(JSCHART_EVENT_ID.ON_PLAY_SOUND);};this.Run=function(){try{var data=this.RunAST();//执行脚本
11473
+ {if(_j14==0){var aryValue=this.SingleDataToArrayData(itemExpression.Value);_varName3=itemExpression.Value.toString();this.VarTable.set(_varName3,aryValue);//把常量放到变量表里
11474
+ }}else if(itemExpression.Type==Syntax.CallExpression){if(_j14==0){if(this.Draw.IsDrawFunction(itemExpression.Callee.Name)){_draw3=itemExpression.Draw;_draw3.Name=itemExpression.Callee.Name;}else{var _varValue2=itemExpression.Out;_varName3='__temp_sc_'+itemExpression.Callee.Name+'_'+i+'__';isNoneName=true;this.VarTable.set(_varName3,_varValue2);}}else{if(itemExpression.Callee.Name=="RGB"||itemExpression.Callee.Name=="RGBA"){color=itemExpression.Out;}else if(itemExpression.Callee.Name=="UPCOLOR"){upColor=itemExpression.Out;}else if(itemExpression.Callee.Name=="DOWNCOLOR"){downColor=itemExpression.Out;}else if(itemExpression.Callee.Name=="XMOVE"){xOffset=itemExpression.Out;}else if(itemExpression.Callee.Name=="YMOVE"){yOffset=itemExpression.Out;}else if(itemExpression.Callee.Name=="FIRSTDRAW"){if(itemExpression.Out===0)isFirstDraw=false;else if(itemExpression.Out===1)isFirstDraw=true;}else if(itemExpression.Callee.Name=="SOUND"){var event=this.GetSoundEvent();if(event){}_varName3=null;}else if(itemExpression.Callee.Name=="ICON"){var drawCond=this.VarTable.get(_varName3);if(drawCond){_draw3=this.GetOutIconData(drawCond,itemExpression.Draw);if(_draw3)_draw3.Name=itemExpression.Callee.Name;}_varName3=null;}else if(itemExpression.Callee.Name=="BACKGROUND"){bgConfig=itemExpression.Draw;_varName3=null;}else if(itemExpression.Callee.Name=="CKLINE"){vLineConfig=itemExpression.Draw;_varName3=null;}}}else if(itemExpression.Type==Syntax.BinaryExpression){if(_j14==0){_varName3="__temp_sb_"+i+"__";var _aryValue=itemExpression.Out;isNoneName=true;this.VarTable.set(_varName3,_aryValue);}}else if(itemExpression.Type==Syntax.UnaryExpression){if(_j14==0){_varName3="__temp_su_"+i+"__";var varInfo={};if(this.ReadUnaryExpression(itemExpression,varInfo)){isNoneName=true;this.VarTable.set(_varName3,varInfo.OutVar);}}}}if(pointDot&&_varName3)//圆点
11475
+ {var _outVar7=this.VarTable.get(_varName3);if(!Array.isArray(_outVar7))_outVar7=this.SingleDataToArrayData(_outVar7);var _value4={Name:_varName3,Data:_outVar7,Radius:g_JSChartResource.POINTDOT.Radius,Type:3};if(color)_value4.Color=color;if(lineWidth)_value4.LineWidth=lineWidth;this.OutVarTable.push(_value4);}else if(circleDot&&_varName3)//圆点
11476
+ {var _outVar8=this.VarTable.get(_varName3);if(!Array.isArray(_outVar8))_outVar8=this.SingleDataToArrayData(_outVar8);var _value5={Name:_varName3,Data:_outVar8,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3};if(color)_value5.Color=color;if(lineWidth)_value5.LineWidth=lineWidth;this.OutVarTable.push(_value5);}else if(upDownDot&&_varName3)//彩色点
11477
+ {var _outVar9=this.VarTable.get(_varName3);if(!Array.isArray(_outVar9))_outVar9=this.SingleDataToArrayData(_outVar9);var _value6={Name:_varName3,Data:_outVar9,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3,UpDownDot:true};if(color)_value6.Color=color;if(lineWidth)_value6.LineWidth=lineWidth;this.OutVarTable.push(_value6);}else if(lineStick&&_varName3)//LINESTICK 同时画出柱状线和指标线
11478
+ {var _outVar10=this.VarTable.get(_varName3);var _value7={Name:_varName3,Data:_outVar10,Type:4};if(color)_value7.Color=color;if(lineWidth)_value7.LineWidth=lineWidth;this.OutVarTable.push(_value7);}else if(stick&&_varName3)//STICK 画柱状线
11479
+ {var _outVar11=this.VarTable.get(_varName3);var _value8={Name:_varName3,Data:_outVar11,Type:5};if(color)_value8.Color=color;if(lineWidth)_value8.LineWidth=lineWidth;this.OutVarTable.push(_value8);}else if(volStick&&_varName3)//VOLSTICK 画彩色柱状线
11480
+ {var _outVar12=this.VarTable.get(_varName3);var _value9={Name:_varName3,Data:_outVar12,Type:6};if(color)_value9.Color=color;if(upColor)_value9.UpColor=upColor;if(downColor)_value9.DownColor=downColor;if(lineWidth)_value9.LineWidth=lineWidth;this.OutVarTable.push(_value9);}else if(lineArea&&_varName3)//LINEAREA 面积
11481
+ {var _outVar13=this.VarTable.get(_varName3);var _value10={Name:_varName3,Data:_outVar13,Type:9};if(color)_value10.Color=color;if(upColor)_value10.UpColor=upColor;if(downColor)_value10.DownColor=downColor;if(lineWidth)_value10.LineWidth=lineWidth;this.OutVarTable.push(_value10);}else if(colorStick&&_varName3)//CYW: SUM(VAR4,10)/10000, COLORSTICK; 画上下柱子
11482
+ {var _outVar14=this.VarTable.get(_varName3);var _value11={Name:_varName3,Data:_outVar14,Color:color,Type:2};if(lineWidth)_value11.LineWidth=lineWidth;if(color)_value11.Color=color;if(upColor)_value11.UpColor=upColor;if(downColor)_value11.DownColor=downColor;this.OutVarTable.push(_value11);}else if(_varName3&&color&&!_draw3){var _outVar15=this.VarTable.get(_varName3);if(!Array.isArray(_outVar15))_outVar15=this.SingleDataToArrayData(_outVar15);var _value12={Name:_varName3,Data:_outVar15,Color:color,Type:0};if(lineWidth)_value12.LineWidth=lineWidth;if(isShow==false)_value12.IsShow=false;if(isExData==true)_value12.IsExData=true;if(isDotLine==true)_value12.IsDotLine=true;if(isOverlayLine==true)_value12.IsOverlayLine=true;if(isNoneName==true)_value12.NoneName=true;if(isShowTitle==false)_value12.IsShowTitle=false;if(stepLine==true)_value12.Type=7;this.OutVarTable.push(_value12);}else if(_draw3)//画图函数
11483
+ {var outVar={Name:_draw3.Name,Draw:_draw3,Type:1};if(color)outVar.Color=color;if(isDotLine==true)outVar.IsDotLine=true;if(lineWidth)outVar.LineWidth=lineWidth;if(isDrawAbove)outVar.IsDrawAbove=true;if(isDrawCenter)outVar.IsDrawCenter=true;if(isDrawBelow)outVar.IsDrawBelow=true;if(drawAlign>=0)outVar.DrawAlign=drawAlign;if(drawVAlign>=0)outVar.DrawVAlign=drawVAlign;if(fontSize>0)outVar.DrawFontSize=fontSize;if(bgConfig)outVar.Background=bgConfig;if(vLineConfig)outVar.VerticalLine=vLineConfig;if(IFrameSplitOperator.IsNumber(xOffset))outVar.XOffset=xOffset;if(IFrameSplitOperator.IsNumber(yOffset))outVar.YOffset=yOffset;if(IFrameSplitOperator.IsBool(isFirstDraw))outVar.IsFirstDraw=isFirstDraw;this.OutVarTable.push(outVar);}else if(_varName3){var _outVar16=this.VarTable.get(_varName3);var _value13={Name:_varName3,Data:_outVar16,Type:0};if(color)_value13.Color=color;if(lineWidth)_value13.LineWidth=lineWidth;if(isShow==false)_value13.IsShow=false;if(isExData==true)_value13.IsExData=true;if(isDotLine==true)_value13.IsDotLine=true;if(isOverlayLine==true)_value13.IsOverlayLine=true;if(isShowTitle==false)_value13.IsShowTitle=false;if(stepLine==true)_value13.Type=7;this.OutVarTable.push(_value13);}}}};this.ReadUnaryExpression=function(item,varInfo){var argument=item.Argument;var outVar=null;if(argument.Type==Syntax.Literal){outVar=argument.Value;if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}else if(argument.Type==Syntax.Identifier){var varName=argument.Name;outVar=this.ReadVariable(varName,item.Expression);if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}else if(argument.Type==Syntax.BinaryExpression){outVar=argument.Out;if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}else if(argument.Type==Syntax.CallExpression){var callItem=argument;if(this.Draw.IsDrawFunction(callItem.Callee.Name)){return false;}else if(callItem.Callee.Name==="IFC"&&callItem.Draw){return false;}else{outVar=callItem.Out;if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}}else{return false;}if(item.Operator=='-'){if(outVar)outVar=this.Algorithm.Subtract(0,outVar);}varInfo.OutVar=outVar;return true;};this.GetOutIconData=function(cond,iconDraw){if(Array.isArray(cond)){for(var i=0;i<cond.length&&i<iconDraw.DrawData.length;++i){var item=cond[i];if(item<=0)iconDraw.DrawData[i]=null;}return iconDraw;}if(cond)return iconDraw;return null;};this.GetSoundEvent=function(){if(!this.GetEventCallback)return null;return this.GetEventCallback(JSCHART_EVENT_ID.ON_PLAY_SOUND);};this.Run=function(){try{var data=this.RunAST();//执行脚本
11484
11484
  JSConsole.Complier.Log('[JSComplier.Run] execute finish',data);if(this.IndexCtrl)this.IndexCtrl.Status=0;if(this.UpdateUICallback){JSConsole.Complier.Log('[JSComplier.Run] invoke UpdateUICallback.');if(this.CallbackParam&&this.CallbackParam.Job&&this.CallbackParam.Job.ID==JS_EXECUTE_JOB_ID.JOB_EXECUTE_INDEX){this.UpdateUICallback(data,this.CallbackParam,this.SymbolData);}else{if(this.CallbackParam&&this.CallbackParam.Self&&this.CallbackParam.Self.ClassName==='ScriptIndexConsole')this.CallbackParam.JSExecute=this;if(this.IsUsePageData==true)this.CallbackParam.Self.IsUsePageData=true;this.UpdateUICallback(data,this.CallbackParam);}}}catch(error){JSConsole.Complier.Log(error);if(error.Job){JSConsole.Complier.Log('[JSComplier.Run] download job and reexectue',error.Job);this.JobList.push(error.Job);this.JobList.push({ID:JS_EXECUTE_JOB_ID.JOB_RUN_SCRIPT});this.Execute();}else if(this.ErrorCallback){if(this.IndexCtrl)this.IndexCtrl.Status=0;this.ErrorCallback(error,this.CallbackParam);}}};this.DebugRun_End=function(){var data=this.OutVarTable;JSConsole.Complier.Log('[JSComplier.DebugRun_End] execute finish',data);if(this.IndexCtrl)this.IndexCtrl.Status=0;if(this.UpdateUICallback){JSConsole.Complier.Log('[JSComplier.DebugRun_End] invoke UpdateUICallback.');if(this.CallbackParam&&this.CallbackParam.Job&&this.CallbackParam.Job.ID==JS_EXECUTE_JOB_ID.JOB_EXECUTE_INDEX){this.UpdateUICallback(data,this.CallbackParam,this.SymbolData);}else{if(this.CallbackParam&&this.CallbackParam.Self&&this.CallbackParam.Self.ClassName==='ScriptIndexConsole')this.CallbackParam.JSExecute=this;if(this.IsUsePageData==true)this.CallbackParam.Self.IsUsePageData=true;this.UpdateUICallback(data,this.CallbackParam);}}};this.DebugRun_Next=function(debugCtrl){var _this44=this;if(debugCtrl.ExeLine<debugCtrl.LineCount){var item=this.AST.Body[debugCtrl.ExeLine];this.RunASTNode(item);++debugCtrl.ExeLine;this.DebugFilter(debugCtrl,function(){_this44.DebugRun_Next(debugCtrl);});}else{this.DebugRun_End();debugCtrl.Status=2;this.DebugFilter(debugCtrl,null);}};//debug模式
11485
11485
  this.DebugRun=function(){var _this45=this;try{if(!this.AST)this.ThrowError();if(!this.AST.Body)this.ThrowError();var debugCtrl={LineCount:this.AST.Body.length,ExeLine:0,Self:this,Status:1};this.DebugFilter(debugCtrl,function(){_this45.DebugRun_Next(debugCtrl);});}catch(error){if(this.ErrorCallback){if(this.IndexCtrl)this.IndexCtrl.Status=0;this.ErrorCallback(error,this.CallbackParam);}}};this.VisitNode=function(node){switch(node.Type){case Syntax.SequenceExpression:this.VisitSequenceExpression(node);break;case Syntax.ExpressionStatement:this.VisitNode(node.Expression);break;case Syntax.AssignmentExpression:this.VisitAssignmentExpression(node);break;case Syntax.BinaryExpression:case Syntax.LogicalExpression:this.VisitBinaryExpression(node);break;case Syntax.CallExpression:this.VisitCallExpression(node);break;case Syntax.UnaryExpression:this.VisitUnaryExpression(node);break;}};this.VisitUnaryExpression=function(node){if(node.Operator=='-'){var tempValue=this.GetNodeValueEx(node.Argument);var value=this.Algorithm.Subtract(0,tempValue);}else{var value=node.Argument.Value;}return value;};this.VisitSequenceExpression=function(node){for(var _i145 in node.Expression){var _item26=node.Expression[_i145];this.VisitNode(_item26);}};//函数调用
11486
11486
  this.VisitCallExpression=function(node){var funcName=node.Callee.Name;var args=[];for(var i=0;i<node.Arguments.length;++i){var item=node.Arguments[i];var value;if(funcName==="IFC"&&i>=1)break;//IFC先处理第1个条件参数
@@ -11521,26 +11521,26 @@ this.ConstVarTable=new _map2.default([//个股数据
11521
11521
  {var _item27=this.Arguments[_i146];this.VarTable.set(_item27.Name,_item27.Value);}var data=this.RunAST();//执行脚本
11522
11522
  JSConsole.Complier.Log('[JSExplainer.Run] explain finish',data);if(this.UpdateUICallback)//回调发送结果, 可以支持异步
11523
11523
  {JSConsole.Complier.Log('[JSExplainer.Run] invoke UpdateUICallback.');this.UpdateUICallback(data);}}catch(error){JSConsole.Complier.Log('[JSExplainer.Run] throw error ',error);if(this.ErrorCallback){this.ErrorCallback(error,this.OutVarTable);}}};this.RunAST=function(){if(!this.AST)this.ThrowError();if(!this.AST.Body)this.ThrowError();for(var _i147 in this.AST.Body){var _item28=this.AST.Body[_i147];this.VisitNode(_item28);//输出变量
11524
- if(_item28.Type==Syntax.ExpressionStatement&&_item28.Expression){if(_item28.Expression.Type==Syntax.AssignmentExpression){if(_item28.Expression.Operator==':'&&_item28.Expression.Left){var assignmentItem=_item28.Expression;var _varName6=assignmentItem.Left.Name;var _outVar18='\u8F93\u51FA'+_varName6+': '+this.VarTable.get(_varName6);this.OutVarTable.push({Name:_varName6,Data:_outVar18,Type:0});}else if(_item28.Expression.Operator==':='&&_item28.Expression.Left){var _assignmentItem=_item28.Expression;var _varName7=_assignmentItem.Left.Name;var _outVar19='\u8D4B\u503C'+_varName7+': '+this.VarTable.get(_varName7);this.OutVarTable.push({Name:_varName7,Data:_outVar19,Type:0,IsOut:false});}}else if(_item28.Expression.Type==Syntax.CallExpression){var callItem=_item28.Expression;if(this.IsDrawFunction(callItem.Callee.Name)){var _outVar20=callItem.Out;var drawName=callItem.Callee.Name;this.OutVarTable.push({Name:drawName,Draw:'\u8F93\u51FA: '+_outVar20,Type:1});}else{var _outVar21=callItem.Out;varName='__temp_c_'+callItem.Callee.Name+'_'+_i147+'__';this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar21,Type:0,NoneName:true});}}else if(_item28.Expression.Type==Syntax.Identifier){var _varName8=_item28.Expression.Name;var _outVar22=this.ReadVariable(_varName8,_item28.Expression);_varName8="__temp_i_"+_i147+"__";this.OutVarTable.push({Name:_varName8,Data:'\u8F93\u51FA: '+_outVar22,Type:0,NoneName:true});}else if(_item28.Expression.Type==Syntax.Literal)//常量
11525
- {var _outVar23=_item28.Expression.Value;if(IFrameSplitOperator.IsString(_outVar23)&&_outVar23.indexOf("$")>0)_outVar23=this.GetOtherSymbolExplain({Literal:_outVar23},_item28);varName="__temp_li_"+_i147+"__";var type=0;this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar23,Type:0,NoneName:true});}else if(_item28.Expression.Type==Syntax.BinaryExpression)// CLOSE+OPEN;
11526
- {var varName="__temp_b_"+_i147+"__";var _outVar24=_item28.Expression.Out;this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar24,Type:0,NoneName:true});}else if(_item28.Expression.Type==Syntax.LogicalExpression)//逻辑语句 如 T1 AND T2
11527
- {var varName="__temp_l_"+_i147+"__";var _outVar25=_item28.Expression.Out;this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar25,Type:0,NoneName:true});}else if(_item28.Expression.Type==Syntax.UnaryExpression)//一元运算 如-C, -7, -(C+10)
11528
- {var varName="__temp_l_"+_i147+"__";var argument=_item28.Expression.Argument;var _outVar26=null;if(argument.Type==Syntax.Literal){_outVar26=argument.Value;}else if(argument.Type==Syntax.Identifier){var _varName9=argument.Name;_outVar26=this.ReadVariable(_varName9,_item28.Expression);}else if(argument.Type==Syntax.BinaryExpression){_outVar26=argument.Out;}if(_item28.Expression.Operator=='-'){_outVar26='-'+_outVar26;}this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar26,Type:0,NoneName:true});}else if(_item28.Expression.Type==Syntax.SequenceExpression){var _varName10=void 0;var _drawName=void 0;var draw=void 0;var color=void 0;var lineWidth=void 0;var colorStick=false;var pointDot=false;var circleDot=false;var lineStick=false;var stick=false;var volStick=false;var isShow=true;var isExData=false;var isDotLine=false;var isOverlayLine=false;//叠加线
11524
+ if(_item28.Type==Syntax.ExpressionStatement&&_item28.Expression){if(_item28.Expression.Type==Syntax.AssignmentExpression){if(_item28.Expression.Operator==':'&&_item28.Expression.Left){var assignmentItem=_item28.Expression;var _varName4=assignmentItem.Left.Name;var _outVar17='\u8F93\u51FA'+_varName4+': '+this.VarTable.get(_varName4);this.OutVarTable.push({Name:_varName4,Data:_outVar17,Type:0});}else if(_item28.Expression.Operator==':='&&_item28.Expression.Left){var _assignmentItem=_item28.Expression;var _varName5=_assignmentItem.Left.Name;var _outVar18='\u8D4B\u503C'+_varName5+': '+this.VarTable.get(_varName5);this.OutVarTable.push({Name:_varName5,Data:_outVar18,Type:0,IsOut:false});}}else if(_item28.Expression.Type==Syntax.CallExpression){var callItem=_item28.Expression;if(this.IsDrawFunction(callItem.Callee.Name)){var _outVar19=callItem.Out;var drawName=callItem.Callee.Name;this.OutVarTable.push({Name:drawName,Draw:'\u8F93\u51FA: '+_outVar19,Type:1});}else{var _outVar20=callItem.Out;varName='__temp_c_'+callItem.Callee.Name+'_'+_i147+'__';this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar20,Type:0,NoneName:true});}}else if(_item28.Expression.Type==Syntax.Identifier){var _varName6=_item28.Expression.Name;var _outVar21=this.ReadVariable(_varName6,_item28.Expression);_varName6="__temp_i_"+_i147+"__";this.OutVarTable.push({Name:_varName6,Data:'\u8F93\u51FA: '+_outVar21,Type:0,NoneName:true});}else if(_item28.Expression.Type==Syntax.Literal)//常量
11525
+ {var _outVar22=_item28.Expression.Value;if(IFrameSplitOperator.IsString(_outVar22)&&_outVar22.indexOf("$")>0)_outVar22=this.GetOtherSymbolExplain({Literal:_outVar22},_item28);varName="__temp_li_"+_i147+"__";var type=0;this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar22,Type:0,NoneName:true});}else if(_item28.Expression.Type==Syntax.BinaryExpression)// CLOSE+OPEN;
11526
+ {var varName="__temp_b_"+_i147+"__";var _outVar23=_item28.Expression.Out;this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar23,Type:0,NoneName:true});}else if(_item28.Expression.Type==Syntax.LogicalExpression)//逻辑语句 如 T1 AND T2
11527
+ {var varName="__temp_l_"+_i147+"__";var _outVar24=_item28.Expression.Out;this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar24,Type:0,NoneName:true});}else if(_item28.Expression.Type==Syntax.UnaryExpression)//一元运算 如-C, -7, -(C+10)
11528
+ {var varName="__temp_l_"+_i147+"__";var argument=_item28.Expression.Argument;var _outVar25=null;if(argument.Type==Syntax.Literal){_outVar25=argument.Value;}else if(argument.Type==Syntax.Identifier){var _varName7=argument.Name;_outVar25=this.ReadVariable(_varName7,_item28.Expression);}else if(argument.Type==Syntax.BinaryExpression){_outVar25=argument.Out;}if(_item28.Expression.Operator=='-'){_outVar25='-'+_outVar25;}this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar25,Type:0,NoneName:true});}else if(_item28.Expression.Type==Syntax.SequenceExpression){var _varName8=void 0;var _drawName=void 0;var draw=void 0;var color=void 0;var lineWidth=void 0;var colorStick=false;var pointDot=false;var circleDot=false;var lineStick=false;var stick=false;var volStick=false;var isShow=true;var isExData=false;var isDotLine=false;var isOverlayLine=false;//叠加线
11529
11529
  var isNoneName=false;var fontSize=-1;var drawAlign=-1,drawVAlign=-1;//显示在位置之上,对于DRAWTEXT和DRAWNUMBER等函数有用,放在语句的最后面(不能与LINETHICK等函数共用),比如:
11530
11530
  //DRAWNUMBER(CLOSE>OPEN,HIGH,CLOSE),DRAWABOVE;
11531
- var isDrawAbove=false;for(var _j15 in _item28.Expression.Expression){var itemExpression=_item28.Expression.Expression[_j15];if(itemExpression.Type==Syntax.AssignmentExpression&&itemExpression.Operator==':'&&itemExpression.Left){_varName10=itemExpression.Left.Name;var varValue=this.VarTable.get(_varName10);this.VarTable.set(_varName10,varValue);//把常量放到变量表里
11531
+ var isDrawAbove=false;for(var _j15 in _item28.Expression.Expression){var itemExpression=_item28.Expression.Expression[_j15];if(itemExpression.Type==Syntax.AssignmentExpression&&itemExpression.Operator==':'&&itemExpression.Left){_varName8=itemExpression.Left.Name;var varValue=this.VarTable.get(_varName8);this.VarTable.set(_varName8,varValue);//把常量放到变量表里
11532
11532
  }else if(itemExpression.Type==Syntax.Identifier){var value=itemExpression.Name;if(value==='COLORSTICK')colorStick=true;else if(value==='POINTDOT')pointDot=true;else if(value==='CIRCLEDOT')circleDot=true;else if(value==='DOTLINE')isDotLine=true;else if(value==='LINESTICK')lineStick=true;else if(value==='STICK')stick=true;else if(value==='VOLSTICK')volStick=true;else if(value==="DRAWABOVE")isDrawAbove=true;else if(value.indexOf('COLOR')==0)color=value;else if(value.indexOf('LINETHICK')==0)lineWidth=value;else if(value=="ALIGN0")drawAlign=0;else if(value=="ALIGN1")drawAlign=1;else if(value=="ALIGN2")drawAlign=2;else if(value=="VALIGN0")drawVAlign=0;else if(value=="VALIGN1")drawVAlign=1;else if(value=="VALIGN2")drawVAlign=2;else if(value.indexOf('NODRAW')==0)isShow=false;else if(value.indexOf('EXDATA')==0)isExData=true;//扩展数据, 不显示再图形里面
11533
- else if(value.indexOf('LINEOVERLAY')==0)isOverlayLine=true;else if(value.indexOf("FONTSIZE")==0){var strFontSize=value.replace("FONTSIZE","");fontSize=parseInt(strFontSize);}else{_varName10=itemExpression.Name;var _varValue3=this.ReadVariable(_varName10,itemExpression);_varName10="__temp_si_"+_i147+"__";isNoneName=true;this.VarTable.set(_varName10,_varValue3);//放到变量表里
11533
+ else if(value.indexOf('LINEOVERLAY')==0)isOverlayLine=true;else if(value.indexOf("FONTSIZE")==0){var strFontSize=value.replace("FONTSIZE","");fontSize=parseInt(strFontSize);}else{_varName8=itemExpression.Name;var _varValue3=this.ReadVariable(_varName8,itemExpression);_varName8="__temp_si_"+_i147+"__";isNoneName=true;this.VarTable.set(_varName8,_varValue3);//放到变量表里
11534
11534
  }}else if(itemExpression.Type==Syntax.Literal)//常量
11535
- {var aryValue=itemExpression.Value;_varName10=itemExpression.Value.toString();isNoneName=true;this.VarTable.set(_varName10,aryValue);//把常量放到变量表里
11536
- }else if(itemExpression.Type==Syntax.CallExpression){if(_j15==0){if(this.IsDrawFunction(itemExpression.Callee.Name)){draw=itemExpression.Out;_drawName=itemExpression.Callee.Name;}else{var _varValue4=itemExpression.Out;_varName10='__temp_sc_'+itemExpression.Callee.Name+'_'+_i147+'__';isNoneName=true;this.VarTable.set(_varName10,_varValue4);}}}else if(itemExpression.Type==Syntax.BinaryExpression){_varName10="__temp_sb_"+_i147+"__";var _aryValue3=itemExpression.Out;isNoneName=true;this.VarTable.set(_varName10,_aryValue3);}else if(itemExpression.Type==Syntax.UnaryExpression){_varName10="__temp_sb_"+_i147+"__";var argument=itemExpression.Argument;var _aryValue4=null;if(argument.Type==Syntax.Literal){_aryValue4=argument.Value;}else if(argument.Type==Syntax.Identifier){var _varName11=argument.Name;_aryValue4=this.ReadVariable(_varName11,_item28.Expression);}else if(argument.Type==Syntax.BinaryExpression){_aryValue4=argument.Out;}if(itemExpression.Operator=='-'){_aryValue4='-'+_aryValue4;}isNoneName=true;this.VarTable.set(_varName10,_aryValue4);}}var outValue;if(draw)outValue='\u8F93\u51FA: '+draw;else if(isNoneName)outValue='\u8F93\u51FA: '+this.VarTable.get(_varName10);else outValue='\u8F93\u51FA'+_varName10+': '+this.VarTable.get(_varName10);if(color)outValue+=',\u989C\u8272'+this.GetColorExplain(color);if(lineWidth)outValue+=',\u7EBF\u6BB5\u7C97\u7EC6'+this.GetLineWidthExplain(lineWidth);if(isShow==false)outValue+=",不显示";if(isDotLine==true)outValue+=",画虚线";if(isDrawAbove==true)outValue+=',显示在位置之上';if(pointDot&&_varName10)//圆点
11537
- {outValue+=",画小圆点线";var _value14={Name:_varName10,Draw:outValue,Radius:g_JSChartResource.POINTDOT.Radius,Type:3};this.OutVarTable.push(_value14);}else if(circleDot&&_varName10)//圆点
11538
- {outValue+=",画小圆圈线";var _value15={Name:_varName10,Draw:outValue,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3};this.OutVarTable.push(_value15);}else if(lineStick&&_varName10)//LINESTICK 同时画出柱状线和指标线
11539
- {outValue+=",画出柱状线和指标线";var _value16={Name:_varName10,Draw:outValue,Type:4};this.OutVarTable.push(_value16);}else if(stick&&_varName10)//STICK 画柱状线
11540
- {outValue+=",画柱状线";var _value17={Name:_varName10,Draw:outValue,Type:5};this.OutVarTable.push(_value17);}else if(volStick&&_varName10)//VOLSTICK 画彩色柱状线
11541
- {outValue+=",画成交量柱状线";var _value18={Name:_varName10,Draw:outValue,Type:6};this.OutVarTable.push(_value18);}else if(_varName10&&color){var _value19={Name:_varName10,Data:outValue,Color:color,Type:0};this.OutVarTable.push(_value19);}else if(draw)//画图函数
11542
- {var outVar={Name:_drawName,Draw:outValue,Type:1};this.OutVarTable.push(outVar);}else if(colorStick&&_varName10)//CYW: SUM(VAR4,10)/10000, COLORSTICK; 画上下柱子
11543
- {outValue+=",画彩色柱状线";var _value20={Name:_varName10,Draw:outValue,Color:color,Type:2};this.OutVarTable.push(_value20);}else if(_varName10){var _value21={Name:_varName10,Data:outValue,Type:0};this.OutVarTable.push(_value21);}}}}JSConsole.Complier.Log('[JSExplainer::Run]',this.VarTable);return this.OutVarTable;};this.VisitNode=function(node){switch(node.Type){case Syntax.SequenceExpression:this.VisitSequenceExpression(node);break;case Syntax.ExpressionStatement:this.VisitNode(node.Expression);break;case Syntax.AssignmentExpression:this.VisitAssignmentExpression(node);break;case Syntax.BinaryExpression:case Syntax.LogicalExpression:this.VisitBinaryExpression(node);break;case Syntax.CallExpression:this.VisitCallExpression(node);break;case Syntax.UnaryExpression:this.VisitUnaryExpression(node);break;}};this.VisitSequenceExpression=function(node){for(var _i148 in node.Expression){var _item29=node.Expression[_i148];this.VisitNode(_item29);}};this.VisitUnaryExpression=function(node){if(node.Operator=='-'){var value=this.GetNodeValueEx(node.Argument);return'-'+value;}return node.Argument.Value;};//函数调用
11535
+ {var aryValue=itemExpression.Value;_varName8=itemExpression.Value.toString();isNoneName=true;this.VarTable.set(_varName8,aryValue);//把常量放到变量表里
11536
+ }else if(itemExpression.Type==Syntax.CallExpression){if(_j15==0){if(this.IsDrawFunction(itemExpression.Callee.Name)){draw=itemExpression.Out;_drawName=itemExpression.Callee.Name;}else{var _varValue4=itemExpression.Out;_varName8='__temp_sc_'+itemExpression.Callee.Name+'_'+_i147+'__';isNoneName=true;this.VarTable.set(_varName8,_varValue4);}}}else if(itemExpression.Type==Syntax.BinaryExpression){_varName8="__temp_sb_"+_i147+"__";var _aryValue2=itemExpression.Out;isNoneName=true;this.VarTable.set(_varName8,_aryValue2);}else if(itemExpression.Type==Syntax.UnaryExpression){_varName8="__temp_sb_"+_i147+"__";var argument=itemExpression.Argument;var _aryValue3=null;if(argument.Type==Syntax.Literal){_aryValue3=argument.Value;}else if(argument.Type==Syntax.Identifier){var _varName9=argument.Name;_aryValue3=this.ReadVariable(_varName9,_item28.Expression);}else if(argument.Type==Syntax.BinaryExpression){_aryValue3=argument.Out;}if(itemExpression.Operator=='-'){_aryValue3='-'+_aryValue3;}isNoneName=true;this.VarTable.set(_varName8,_aryValue3);}}var outValue;if(draw)outValue='\u8F93\u51FA: '+draw;else if(isNoneName)outValue='\u8F93\u51FA: '+this.VarTable.get(_varName8);else outValue='\u8F93\u51FA'+_varName8+': '+this.VarTable.get(_varName8);if(color)outValue+=',\u989C\u8272'+this.GetColorExplain(color);if(lineWidth)outValue+=',\u7EBF\u6BB5\u7C97\u7EC6'+this.GetLineWidthExplain(lineWidth);if(isShow==false)outValue+=",不显示";if(isDotLine==true)outValue+=",画虚线";if(isDrawAbove==true)outValue+=',显示在位置之上';if(pointDot&&_varName8)//圆点
11537
+ {outValue+=",画小圆点线";var _value14={Name:_varName8,Draw:outValue,Radius:g_JSChartResource.POINTDOT.Radius,Type:3};this.OutVarTable.push(_value14);}else if(circleDot&&_varName8)//圆点
11538
+ {outValue+=",画小圆圈线";var _value15={Name:_varName8,Draw:outValue,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3};this.OutVarTable.push(_value15);}else if(lineStick&&_varName8)//LINESTICK 同时画出柱状线和指标线
11539
+ {outValue+=",画出柱状线和指标线";var _value16={Name:_varName8,Draw:outValue,Type:4};this.OutVarTable.push(_value16);}else if(stick&&_varName8)//STICK 画柱状线
11540
+ {outValue+=",画柱状线";var _value17={Name:_varName8,Draw:outValue,Type:5};this.OutVarTable.push(_value17);}else if(volStick&&_varName8)//VOLSTICK 画彩色柱状线
11541
+ {outValue+=",画成交量柱状线";var _value18={Name:_varName8,Draw:outValue,Type:6};this.OutVarTable.push(_value18);}else if(_varName8&&color){var _value19={Name:_varName8,Data:outValue,Color:color,Type:0};this.OutVarTable.push(_value19);}else if(draw)//画图函数
11542
+ {var outVar={Name:_drawName,Draw:outValue,Type:1};this.OutVarTable.push(outVar);}else if(colorStick&&_varName8)//CYW: SUM(VAR4,10)/10000, COLORSTICK; 画上下柱子
11543
+ {outValue+=",画彩色柱状线";var _value20={Name:_varName8,Draw:outValue,Color:color,Type:2};this.OutVarTable.push(_value20);}else if(_varName8){var _value21={Name:_varName8,Data:outValue,Type:0};this.OutVarTable.push(_value21);}}}}JSConsole.Complier.Log('[JSExplainer::Run]',this.VarTable);return this.OutVarTable;};this.VisitNode=function(node){switch(node.Type){case Syntax.SequenceExpression:this.VisitSequenceExpression(node);break;case Syntax.ExpressionStatement:this.VisitNode(node.Expression);break;case Syntax.AssignmentExpression:this.VisitAssignmentExpression(node);break;case Syntax.BinaryExpression:case Syntax.LogicalExpression:this.VisitBinaryExpression(node);break;case Syntax.CallExpression:this.VisitCallExpression(node);break;case Syntax.UnaryExpression:this.VisitUnaryExpression(node);break;}};this.VisitSequenceExpression=function(node){for(var _i148 in node.Expression){var _item29=node.Expression[_i148];this.VisitNode(_item29);}};this.VisitUnaryExpression=function(node){if(node.Operator=='-'){var value=this.GetNodeValueEx(node.Argument);return'-'+value;}return node.Argument.Value;};//函数调用
11544
11544
  this.VisitCallExpression=function(node){var funcName=node.Callee.Name;var args=[];for(var _i149 in node.Arguments){var _item30=node.Arguments[_i149];var value=void 0;if(_item30.Type==Syntax.BinaryExpression||_item30.Type==Syntax.LogicalExpression)value=this.VisitBinaryExpression(_item30);else if(_item30.Type==Syntax.CallExpression)value=this.VisitCallExpression(_item30);else value=this.GetNodeValue(_item30);args.push(value);}JSConsole.Complier.Log('[JSExplainer::VisitCallExpression]',funcName,'(',args.toString(),')');if(g_JSComplierResource.IsCustomFunction(funcName)){var data=this.Algorithm.CallCustomFunction(funcName,args,this.SymbolData,node);node.Out=[];node.Draw=null;if(data){if(data.Out)node.Out=data.Out;if(data.Draw)node.Draw=data.Draw;}return node.Out;}node.Out=this.CallFunctionExplain(funcName,args,node);return node.Out;};this.FUNCTION_INFO_LIST=new _map2.default([["REF",{Name:"REF",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u524D\u7684'+args[0];}}],["REFX",{Name:"REFX",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u540E\u7684'+args[0];}}],["REFV",{Name:"REFV",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u524D\u7684(\u672A\u4F5C\u5E73\u6ED1\u5904\u7406)'+args[0];}}],["REFXV",{Name:"REFXV",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u540E\u7684(\u672A\u4F5C\u5E73\u6ED1\u5904\u7406)'+args[0];}}],["REFDATE",{Name:"REFDATE",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5'+args[0];}}],["COUNT",{Name:"COUNT",Param:{Count:2},ToString:function ToString(args){return'\u7EDF\u8BA1'+args[1]+'\u65E5\u4E2D\u6EE1\u8DB3'+args[0]+'\u7684\u5929\u6570';}}],["BARSLASTCOUNT",{Name:"BARSLASTCOUNT",Param:{Count:1},ToString:function ToString(args){return'\u6761\u4EF6'+args[0]+'\u8FDE\u7EED\u6210\u7ACB\u6B21\u6570';}}],["BARSCOUNT",{Name:"BARSCOUNT",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u6709\u6548\u6570\u636E\u5468\u671F\u6570';}}],["BARSLAST",{Name:"BARSLAST",Param:{Count:1},ToString:function ToString(args){return'\u4E0A\u6B21'+args[0]+'\u4E0D\u4E3A0\u8DDD\u4ECA\u5929\u6570';}}],["BARSNEXT",{Name:"BARSNEXT",Param:{Count:1},ToString:function ToString(args){return'\u4E0B\u6B21'+args[0]+'\u4E0D\u4E3A0\u8DDD\u4ECA\u5929\u6570';}}],["BARSSINCEN",{Name:"BARSSINCEN",Param:{Count:2},ToString:function ToString(args){return'\u5728'+args[1]+'\u5468\u671F\u5185\u9996\u6B21'+args[0]+'\u8DDD\u4ECA\u5929\u6570';}}],["BARSSINCE",{Name:"BARSSINCE",Param:{Count:1},ToString:function ToString(args){return'\u9996\u6B21'+args[0]+'\u8DDD\u4ECA\u5929\u6570';}}],["HHV",{Name:"HHV",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u5185'+args[0]+'\u7684\u6700\u9AD8\u503C';}}],["LLV",{Name:"LLV",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u5185'+args[0]+'\u7684\u6700\u4F4E\u503C';}}],["ZTPRICE",{Name:"ZTPRICE",Param:{Count:2},ToString:function ToString(args){return'计算涨停价';}}],["DTPRICE",{Name:"DTPRICE",Param:{Count:2},ToString:function ToString(args){return'计算跌停价';}}],["BACKSET",{Name:"BACKSET",Param:{Count:2},ToString:function ToString(args){return'\u82E5'+args[0]+'\u5219\u5C06\u6700\u8FD1'+args[1]+'\u5468\u671F\u7F6E\u4E3A1';}}],["HOD",{Name:"HOD",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u5185'+args[0]+'\u7684\u9AD8\u503C\u540D\u6B21';}}],["LOD",{Name:"LOD",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u5185'+args[0]+'\u7684\u4F4E\u503C\u540D\u6B21';}}],["REVERSE",{Name:"REVERSE",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u76F8\u53CD\u6570';}}],["FILTER",{Name:"FILTER",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u8FC7\u6EE4';}}],["FILTERX",{Name:"FILTERX",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u53CD\u5411\u8FC7\u6EE4';}}],["TFILTER",{Name:"TFILTER",Param:{Count:3},ToString:function ToString(args){return'\u4FE1\u53F7\u8FC7\u6EE4(\u591A\u5934)';}}],["SUMBARS",{Name:"SUMBARS",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7D2F\u52A0\u81F3'+args[1]+'\u7684\u5929\u6570';}}],["MA",{Name:"MA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u7B80\u5355\u79FB\u52A8\u5E73\u5747';}}],["SMA",{Name:"SMA",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5['+args[2]+'\u65E5\u6743\u91CD]\u79FB\u52A8\u5E73\u5747';}}],["MEMA",{Name:"MEMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u5E73\u6ED1\u79FB\u52A8\u5E73\u5747';}}],["EMA",{Name:"EMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6307\u6570\u79FB\u52A8\u5E73\u5747';}}],["EXPMA",{Name:"EXPMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6307\u6570\u79FB\u52A8\u5E73\u5747';}}],["EXPMEMA",{Name:"EXPMEMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6307\u6570\u5E73\u6ED1\u79FB\u52A8\u5E73\u5747';}}],["WMA",{Name:"WMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u52A0\u6743\u79FB\u52A8\u5E73\u5747';}}],["DMA",{Name:"DMA",Param:{Count:2},ToString:function ToString(args){return'\u4EE5'+args[1]+'\u4E3A\u6743\u91CD'+args[0]+'\u7684\u52A8\u6001\u79FB\u52A8\u5E73\u5747';}}],["XMA",{Name:"XMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u504F\u79FB\u79FB\u52A8\u5E73\u5747';}}],["RANGE",{Name:"RANGE",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u4F4D\u4E8E'+args[1]+'\u548C'+args[2]+'\u4E4B\u95F4';}}],["CONST",{Name:"CONST",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6700\u540E\u4E00\u65E5\u503C';}}],["TOPRANGE",{Name:"TOPRANGE",Param:{Count:1},ToString:function ToString(args){return'\u5F53\u524D\u503C\u662F\u8FD1'+args[0]+'\u5468\u671F\u7684\u6700\u5927\u503C';}}],["LOWRANGE",{Name:"LOWRANGE",Param:{Count:1},ToString:function ToString(args){return'\u5F53\u524D\u503C\u662F\u8FD1'+args[0]+'\u5468\u671F\u7684\u6700\u5C0F\u503C';}}],["FINDHIGH",{Name:"FINDHIGH",Param:{Count:4},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u65E5\u524D\u7684'+args[2]+'\u5929\u5185\u7B2C'+args[3]+'\u4E2A\u6700\u9AD8\u4EF7';}}],["FINDHIGHBARS",{Name:"FINDHIGHBARS",Param:{Count:4},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u65E5\u524D\u7684'+args[2]+'\u5929\u5185\u7B2C'+args[3]+'\u4E2A\u6700\u9AD8\u4EF7\u5230\u5F53\u524D\u5468\u671F\u7684\u5468\u671F\u6570';}}],["FINDLOW",{Name:"FINDLOW",Param:{Count:4},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u65E5\u524D\u7684'+args[2]+'\u5929\u5185\u7B2C'+args[3]+'\u4E2A\u6700\u4F4E\u4EF7';}}],["FINDLOWBARS",{Name:"FINDLOWBARS",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u65E5\u524D\u7684'+args[2]+'\u5929\u5185\u7B2C'+args[3]+'\u4E2A\u6700\u4F4E\u4EF7\u5230\u5F53\u524D\u5468\u671F\u7684\u5468\u671F\u6570';}}],["SUM",{Name:"SUM",Param:{Count:2},ToString:function ToString(args){return''+args[0]+args[1]+'\u65E5\u7D2F\u52A0';}}],["MULAR",{Name:"MULAR",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u65E5\u7D2F\u4E58';}}],["AMA",{Name:"AMA",Param:{Count:2},ToString:function ToString(args){return'\u4EE5'+args[1]+'\u4E3A\u6743\u91CD'+args[0]+'\u7684\u81EA\u9002\u5E94\u5747\u7EBF';}}],["TMA",{Name:"TMA",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5['+args[2]+'\u65E5\u6743\u91CD]\u79FB\u52A8\u5E73\u5747';}}],["CROSS",{Name:"CROSS",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u4E0A\u7A7F'+args[1];}}],["LONGCROSS",{Name:"LONGCROSS",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u5C0F\u4E8E'+args[1]+'\u4FDD\u6301'+args[2]+'\u4E2A\u4EA4\u6613\u65E5\u540E\u4EA4\u53C9\u4E0A\u7A7F';}}],["UPNDAY",{Name:"UPNDAY",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[1]+'\u65E5'+args[0]+'\u8FDE\u6DA8';}}],["DOWNNDAY",{Name:"DOWNNDAY",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[1]+'\u65E5'+args[0]+'\u8FDE\u8DCC';}}],["NDAY",{Name:"NDAY",Param:{Count:3},ToString:function ToString(args){return'\u6700\u8FD1'+args[2]+'\u65E5'+args[0]+'\u4E00\u76F4\u5927\u4E8E'+args[1];}}],["EXIST",{Name:"EXIST",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[1]+'\u65E5\u5B58\u5728'+args[0];}}],["EXISTR",{Name:"EXISTR",Param:{Count:3},ToString:function ToString(args){return'\u4ECE\u524D'+args[1]+'\u65E5\u5230\u524D'+args[2]+'\u65E5\u5B58\u5728'+args[0];}}],["EVERY",{Name:"EVERY",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[1]+'\u65E5\u4E00\u76F4\u5B58\u5728'+args[0];}}],["LAST",{Name:"LAST",Param:{Count:3},ToString:function ToString(args){return'\u4ECE\u524D'+args[1]+'\u65E5\u5230\u524D'+args[2]+'\u65E5\u6301\u7EED'+args[0];}}],["NOT",{Name:"NOT",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u53D6\u53CD';}}],["IF",{Name:"IF",Param:{Count:3},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE'+args[2];}}],["IFF",{Name:"IFF",Param:{Count:3},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE'+args[2];}}],["IFN",{Name:"IFN",Param:{Count:3},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE'+args[2];}}],["IFC",{Name:"IFC",Param:{Count:3},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE'+args[2];}}],["TESTSKIP",{Name:"TESTSKIP",Param:{Count:1},ToString:function ToString(args){return'\u5982\u679C\u6EE1\u8DB3\u6761\u4EF6'+args[0]+',\u516C\u5F0F\u8FD4\u56DE';}}],["VALUEWHEN",{Name:"VALUEWHEN",Param:{Count:2},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE\u4E0A\u4E2A\u8F93\u51FA\u503C ';}}],["MAX",{Name:"MAX",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684\u8F83\u5927\u503C';}}],["MIN",{Name:"MIN",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684\u8F83\u5C0F\u503C';}}],["ACOS",{Name:"ACOS",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u53CD\u4F59\u5F26';}}],["ASIN",{Name:"ASIN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u53CD\u6B63\u5F26';}}],["ATAN",{Name:"ATAN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u53CD\u6B63\u5207';}}],["COS",{Name:"COS",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u4F59\u5F26';}}],["SIN",{Name:"SIN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6B63\u5F26';}}],["TAN",{Name:"TAN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6B63\u5207';}}],["EXP",{Name:"EXP",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6307\u6570';}}],["LN",{Name:"LN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u81EA\u7136\u5BF9\u6570';}}],["LOG",{Name:"LOG",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5BF9\u6570';}}],["SQRT",{Name:"SQRT",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5F00\u65B9';}}],["ABS",{Name:"ABS",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u7EDD\u5BF9\u503C';}}],["POW",{Name:"POW",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u4E58\u5E42';}}],["CEILING",{Name:"CEILING",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5411\u4E0A\u820D\u5165';}}],["FLOOR",{Name:"FLOOR",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5411\u4E0A\u820D\u5165';}}],["INTPART",{Name:"INTPART",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6574\u6570\u90E8\u5206';}}],["BETWEEN",{Name:"BETWEEN",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u4F4D\u4E8E'+args[1]+'\u548C'+args[2]+'\u4E4B\u95F4';}}],["FRACPART",{Name:"FRACPART",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5C0F\u6570\u90E8\u5206';}}],["ROUND",{Name:"ROUND",Param:{Count:1},ToString:function ToString(args){return'\u5BF9'+args[0]+'(\u8FDB\u884C)\u56DB\u820D\u4E94\u5165';}}],["ROUND2",{Name:"ROUND2",Param:{Count:2},ToString:function ToString(args){return'\u5BF9'+args[0]+'(\u8FDB\u884C)\u56DB\u820D\u4E94\u5165';}}],["SIGN",{Name:"SIGN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u7B26\u53F7';}}],["MOD",{Name:"MOD",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u5173\u4E8E'+args[1]+'\u7684\u6A21';}}],["RAND",{Name:"RAND",Param:{Count:1},ToString:function ToString(args){return'\u968F\u673A\u6B63\u6574\u6570';}}],["AVEDEV",{Name:"AVEDEV",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u5E73\u5747\u7EDD\u5BF9\u504F\u5DEE';}}],["DEVSQ",{Name:"DEVSQ",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6570\u636E\u504F\u5DEE\u5E73\u65B9\u548C';}}],["FORCAST",{Name:"FORCAST",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u7EBF\u6027\u56DE\u5F52\u9884\u6D4B\u503C';}}],["TSMA",{Name:"TSMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u4E2A\u5468\u671F\u5185\u7684\u65F6\u95F4\u5E8F\u5217\u4E09\u89D2\u79FB\u52A8\u5E73\u5747';}}],["SLOPE",{Name:"SLOPE",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u7EBF\u6027\u56DE\u5F52\u659C\u7387';}}],["STD",{Name:"STD",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u4F30\u7B97\u6807\u51C6\u5DEE';}}],["STDP",{Name:"STDP",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u603B\u4F53\u6807\u51C6\u5DEE';}}],["STDDEV",{Name:"STDDEV",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6807\u51C6\u504F\u5DEE';}}],["VAR",{Name:"VAR",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u4F30\u7B97\u6837\u672C\u65B9\u5DEE';}}],["VARP",{Name:"VARP",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u603B\u4F53\u6837\u672C\u65B9\u5DEE';}}],["COVAR",{Name:"COVAR",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684'+args[2]+'\u5468\u671F\u7684\u534F\u65B9\u5DEE';}}],["RELATE",{Name:"RELATE",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684'+args[0]+'\u5468\u671F\u7684\u76F8\u5173\u7CFB\u6570';}}],["BETA",{Name:"BETA",Param:{Count:1},ToString:function ToString(args){return'\u03B2(Beta)\u7CFB\u6570';}}],["BETAEX",{Name:"BETAEX",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684'+args[2]+'\u5468\u671F\u7684\u76F8\u5173\u653E\u5927\u7CFB\u6570';}}],["COST",{Name:"COST",Param:{Count:1},ToString:function ToString(args){return'\u83B7\u5229\u76D8\u4E3A'+args[0]+'%\u7684\u6210\u672C\u5206\u5E03';}}],["WINNER",{Name:"WINNER",Param:{Count:1},ToString:function ToString(args){return'\u4EE5'+args[0]+'\u8BA1\u7B97\u7684\u83B7\u5229\u76D8\u6BD4\u4F8B';}}],["LWINNER",{Name:"LWINNER",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[0]+'\u65E5\u90A3\u90E8\u5206\u6210\u672C\u4EE5'+args[1]+'\u4EF7\u683C\u5356\u51FA\u7684\u83B7\u5229\u76D8\u6BD4\u4F8B';}}],["PWINNER",{Name:"PWINNER",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u65E5\u524D\u90A3\u90E8\u5206\u6210\u672C\u4EE5'+args[1]+'\u4EF7\u683C\u5356\u51FA\u7684\u83B7\u5229\u76D8\u6BD4\u4F8B';}}],["COSTEX",{Name:"COSTEX",Param:{Count:2},ToString:function ToString(args){return'\u4F4D\u4E8E\u4EF7\u683C'+args[0]+'\u548C'+args[1]+'\u95F4\u7684\u6210\u672C';}}],["PPART",{Name:"PPART",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u65E5\u524D\u90A3\u90E8\u5206\u6210\u672C\u5360\u603B\u6210\u672C\u7684\u6BD4\u4F8B';}}],["SAR",{Name:"SAR",Param:{Count:3},ToString:function ToString(args){return'\u6B65\u957F\u4E3A'+args[1]+'\u6781\u9650\u503C\u4E3A'+args[0]+'\u7684'+args[2]+'\u65E5\u629B\u7269\u8F6C\u5411';}}],["SARTURN",{Name:"SARTURN",Param:{Count:3},ToString:function ToString(args){return'\u6B65\u957F\u4E3A'+args[1]+'\u6781\u9650\u503C\u4E3A'+args[0]+'\u7684'+args[2]+'\u65E5\u629B\u7269\u8F6C\u5411\u70B9';}}],//字符串函数
11545
11545
  ["CON2STR",{Name:"CON2STR",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u8F6C\u4E3A\u5B57\u7B26\u4E32';}}],["VAR2STR",{Name:"VAR2STR",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u8F6C\u4E3A\u5B57\u7B26\u4E32';}}],["STR2CON",{Name:"STR2CON",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u8F6C\u4E3A\u6570\u5B57';}}],["STRLEN",{Name:"STRLEN",Param:{Count:1},ToString:function ToString(args){return'\u5F97\u5230'+args[0]+'\u5B57\u7B26\u4E32\u957F\u5EA6';}}],["STRCAT",{Name:"STRCAT",Param:{Count:2},ToString:function ToString(args){return'\u5B57\u7B26\u4E32\u76F8\u52A0';}}],["VARCAT",{Name:"VARCAT",Param:{Count:2},ToString:function ToString(args){return'\u5B57\u7B26\u4E32\u76F8\u52A0';}}],["STRSPACE",{Name:"STRSPACE",Param:{Count:1},ToString:function ToString(args){return'\u5B57\u7B26\u4E32'+args[0]+'\u52A0\u4E00\u7A7A\u683C';}}],["SUBSTR",{Name:"SUBSTR",Param:{Count:3},ToString:function ToString(args){return'\u5B57\u7B26\u4E32'+args[0]+'\u4E2D\u53D6\u4E00\u90E8\u5206';}}],["STRCMP",{Name:"STRCMP",Param:{Count:2},ToString:function ToString(args){return'\u5B57\u7B26\u4E32'+args[0]+'\u548C\u5B57\u7B26\u4E32'+args[1]+'\u6BD4\u8F83';}}],["FINDSTR",{Name:"FINDSTR",Param:{Count:2},ToString:function ToString(args){return'\u5B57\u7B26\u4E32'+args[0]+'\u4E2D\u67E5\u627E\u5B57\u7B26\u4E32'+args[1];}}],["NAMEINCLUDE",{Name:"NAMEINCLUDE",Param:{Count:1},ToString:function ToString(args){return'\u67E5\u627E\u54C1\u79CD\u540D\u79F0\u4E2D\u5305\u542B'+args[0];}}],["CODELIKE",{Name:"CODELIKE",Param:{Count:1},ToString:function ToString(args){return'\u67E5\u627E\u54C1\u79CD\u540D\u79F0\u4E2D\u5305\u542B'+args[0];}}],["INBLOCK",{Name:"AVEDEV",Param:{Count:1},ToString:function ToString(args){return'\u5C5E\u4E8E'+args[0]+'\u677F\u5757';}}],["STKINDI",{Name:"STKINDI",Param:{Dynamic:true},ToString:function ToString(args){return"指标引用";}}],["STRFORMAT",{Name:"STRFORMAT",Param:{Dynamic:true},ToString:function ToString(args){return'\u683C\u5F0F\u5316'+args[0]+'\u5B57\u7B26\u4E32';}}],["NAMELIKE",{Name:"NAMELIKE",Param:{Count:1},ToString:function ToString(args){return'\u54C1\u79CD\u540D\u79F0\u662F\u5426\u4EE5\''+args[0]+'\'\u5F00\u5934';}}],["HHVBARS",{Name:"HHVBARS",Param:{Count:2},ToString:function ToString(args){if(args[1]==0)return'\u5386\u53F2'+args[0]+'\u65B0\u9AD8\u8DDD\u4ECA\u5929\u6570';return args[1]+'\u65E5\u5185'+args[0]+'\u65B0\u9AD8\u8DDD\u4ECA\u5929\u6570';}}],["LLVBARS",{Name:"LLVBARS",Param:{Count:2},ToString:function ToString(args){if(args[1]==0)return'\u5386\u53F2'+args[0]+'\u65B0\u4F4E\u8DDD\u4ECA\u5929\u6570';return args[1]+'\u65E5\u5185'+args[0]+'\u65B0\u4F4E\u8DDD\u4ECA\u5929\u6570';}}]]);this.CallFunctionExplain=function(funcName,args,node){if(this.FUNCTION_INFO_LIST.has(funcName)){var item=this.FUNCTION_INFO_LIST.get(funcName);if(item.Param.Dynamic===true)//动态参数
11546
11546
  {}else{if(item.Param.Count!=args.length)this.ThrowUnexpectedNode(node,'\u51FD\u6570'+funcName+'\u53C2\u6570\u4E2A\u6570\u4E0D\u6B63\u786E. \u9700\u8981'+item.Param.Count+'\u4E2A\u53C2\u6570');}return item.ToString(args);}switch(funcName){case"CALCSTOCKINDEX":return'\u5F15\u7528'+args[0]+'\u7684'+args[1]+'\u6307\u6807\u7B2C'+args[2]+'\u4E2A\u8F93\u51FA\u503C';case"PEAK":case"PEAKBARS":case"ZIG":case"ZIGA":case"TROUGH":case"TROUGHBARS":return this.GetZIGExplain(funcName,args);case"FINANCE":return this.GetFinanceExplain(args);case"DYNAINFO":return this.GetDynainfoExplain(args);case'CLOSE':case'C':case'VOL':case'V':case'OPEN':case'O':case'HIGH':case'H':case'LOW':case'L':case'AMOUNT':case'AMO':return this.GetOtherSymbolExplain({FunctionName:funcName,Args:args},node);//绘图函数
@@ -13031,7 +13031,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
13031
13031
  this.ExecuteScript(item,data);}this.Status=0;}};this.OnExecuteFinish=function(data,indexInfo,jsExectute,jobInfo){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT,JobInfo:jobInfo};postMessage(message);};this.OnExecuteError=function(error,indexInfo,jobData){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
13032
13032
  * 版本信息输出
13033
13033
  *
13034
- */var HQCHART_VERSION="1.1.12859";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
13034
+ */var HQCHART_VERSION="1.1.12862";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
13035
13035
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
13036
13036
  // BaseIndex:BaseIndex,
13037
13037
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.12860",
4
- "description": "stock chart",
3
+ "version": "1.1.12863",
4
+ "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
7
7
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -16957,33 +16957,13 @@ function JSExecute(ast,option)
16957
16957
  }
16958
16958
  else if (item.Expression.Type==Syntax.UnaryExpression)
16959
16959
  {
16960
- var varName="__temp_l_"+i+"__";
16961
- var argument=item.Expression.Argument;
16962
- var type=0;
16963
- let outVar=null;
16964
- if (argument.Type==Syntax.Literal)
16965
- {
16966
- outVar=argument.Value;
16967
- if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
16968
- }
16969
- else if (argument.Type==Syntax.Identifier)
16960
+ var varName="__temp_u_"+i+"__";
16961
+ var varInfo={ };
16962
+ if (this.ReadUnaryExpression(item.Expression, varInfo))
16970
16963
  {
16971
- let varName=argument.Name;
16972
- outVar=this.ReadVariable(varName,item.Expression);
16973
- if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
16974
- }
16975
- else if (argument.Type==Syntax.BinaryExpression)
16976
- {
16977
- outVar=argument.Out;
16978
- if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
16979
- }
16980
-
16981
- if (item.Expression.Operator=='-')
16982
- {
16983
- if (outVar) outVar=this.Algorithm.Subtract(0,outVar);
16964
+ var type=0;
16965
+ this.OutVarTable.push({Name:varName, Data:varInfo.OutVar,Type:type, NoneName:true});
16984
16966
  }
16985
-
16986
- if (outVar) this.OutVarTable.push({Name:varName, Data:outVar,Type:type, NoneName:true});
16987
16967
  }
16988
16968
  else if (item.Expression.Type==Syntax.SequenceExpression)
16989
16969
  {
@@ -17193,33 +17173,13 @@ function JSExecute(ast,option)
17193
17173
  {
17194
17174
  if (j==0)
17195
17175
  {
17196
- varName="__temp_sb_"+i+"__";
17197
- var argument=itemExpression.Argument;
17198
- let aryValue=null;
17199
- if (argument.Type==Syntax.Literal)
17200
- {
17201
- aryValue=argument.Value;
17202
- if (!Array.isArray(aryValue)) aryValue=this.SingleDataToArrayData(aryValue);
17203
- }
17204
- else if (argument.Type==Syntax.Identifier)
17205
- {
17206
- let varName=argument.Name;
17207
- aryValue=this.ReadVariable(varName,item.Expression);
17208
- if (!Array.isArray(aryValue)) aryValue=this.SingleDataToArrayData(aryValue);
17209
- }
17210
- else if (argument.Type==Syntax.BinaryExpression)
17211
- {
17212
- aryValue=argument.Out;
17213
- if (!Array.isArray(aryValue)) aryValue=this.SingleDataToArrayData(aryValue);
17214
- }
17215
-
17216
- if (itemExpression.Operator=='-')
17176
+ varName="__temp_su_"+i+"__";
17177
+ var varInfo={ };
17178
+ if (this.ReadUnaryExpression(itemExpression, varInfo))
17217
17179
  {
17218
- if (aryValue) aryValue=this.Algorithm.Subtract(0,aryValue);
17180
+ isNoneName=true;
17181
+ this.VarTable.set(varName,varInfo.OutVar);
17219
17182
  }
17220
-
17221
- isNoneName=true;
17222
- this.VarTable.set(varName,aryValue);
17223
17183
  }
17224
17184
  }
17225
17185
  }
@@ -17349,6 +17309,57 @@ function JSExecute(ast,option)
17349
17309
  }
17350
17310
  }
17351
17311
 
17312
+ this.ReadUnaryExpression=function(item, varInfo)
17313
+ {
17314
+ var argument=item.Argument;
17315
+ var outVar=null;
17316
+ if (argument.Type==Syntax.Literal)
17317
+ {
17318
+ outVar=argument.Value;
17319
+ if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
17320
+ }
17321
+ else if (argument.Type==Syntax.Identifier)
17322
+ {
17323
+ var varName=argument.Name;
17324
+ outVar=this.ReadVariable(varName,item.Expression);
17325
+ if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
17326
+ }
17327
+ else if (argument.Type==Syntax.BinaryExpression)
17328
+ {
17329
+ outVar=argument.Out;
17330
+ if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
17331
+ }
17332
+ else if (argument.Type==Syntax.CallExpression)
17333
+ {
17334
+ var callItem=argument;
17335
+ if (this.Draw.IsDrawFunction(callItem.Callee.Name) )
17336
+ {
17337
+ return false;
17338
+ }
17339
+ else if (callItem.Callee.Name==="IFC" && callItem.Draw)
17340
+ {
17341
+ return false;
17342
+ }
17343
+ else
17344
+ {
17345
+ outVar=callItem.Out;
17346
+ if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
17347
+ }
17348
+ }
17349
+ else
17350
+ {
17351
+ return false;
17352
+ }
17353
+
17354
+ if (item.Operator=='-')
17355
+ {
17356
+ if (outVar) outVar=this.Algorithm.Subtract(0,outVar);
17357
+ }
17358
+
17359
+ varInfo.OutVar=outVar;
17360
+ return true;
17361
+ }
17362
+
17352
17363
  this.GetOutIconData=function(cond, iconDraw)
17353
17364
  {
17354
17365
  if (Array.isArray(cond))
@@ -112561,33 +112561,13 @@ function JSExecute(ast,option)
112561
112561
  }
112562
112562
  else if (item.Expression.Type==Syntax.UnaryExpression)
112563
112563
  {
112564
- var varName="__temp_l_"+i+"__";
112565
- var argument=item.Expression.Argument;
112566
- var type=0;
112567
- let outVar=null;
112568
- if (argument.Type==Syntax.Literal)
112569
- {
112570
- outVar=argument.Value;
112571
- if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
112572
- }
112573
- else if (argument.Type==Syntax.Identifier)
112564
+ var varName="__temp_u_"+i+"__";
112565
+ var varInfo={ };
112566
+ if (this.ReadUnaryExpression(item.Expression, varInfo))
112574
112567
  {
112575
- let varName=argument.Name;
112576
- outVar=this.ReadVariable(varName,item.Expression);
112577
- if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
112578
- }
112579
- else if (argument.Type==Syntax.BinaryExpression)
112580
- {
112581
- outVar=argument.Out;
112582
- if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
112583
- }
112584
-
112585
- if (item.Expression.Operator=='-')
112586
- {
112587
- if (outVar) outVar=this.Algorithm.Subtract(0,outVar);
112568
+ var type=0;
112569
+ this.OutVarTable.push({Name:varName, Data:varInfo.OutVar,Type:type, NoneName:true});
112588
112570
  }
112589
-
112590
- if (outVar) this.OutVarTable.push({Name:varName, Data:outVar,Type:type, NoneName:true});
112591
112571
  }
112592
112572
  else if (item.Expression.Type==Syntax.SequenceExpression)
112593
112573
  {
@@ -112797,33 +112777,13 @@ function JSExecute(ast,option)
112797
112777
  {
112798
112778
  if (j==0)
112799
112779
  {
112800
- varName="__temp_sb_"+i+"__";
112801
- var argument=itemExpression.Argument;
112802
- let aryValue=null;
112803
- if (argument.Type==Syntax.Literal)
112804
- {
112805
- aryValue=argument.Value;
112806
- if (!Array.isArray(aryValue)) aryValue=this.SingleDataToArrayData(aryValue);
112807
- }
112808
- else if (argument.Type==Syntax.Identifier)
112809
- {
112810
- let varName=argument.Name;
112811
- aryValue=this.ReadVariable(varName,item.Expression);
112812
- if (!Array.isArray(aryValue)) aryValue=this.SingleDataToArrayData(aryValue);
112813
- }
112814
- else if (argument.Type==Syntax.BinaryExpression)
112815
- {
112816
- aryValue=argument.Out;
112817
- if (!Array.isArray(aryValue)) aryValue=this.SingleDataToArrayData(aryValue);
112818
- }
112819
-
112820
- if (itemExpression.Operator=='-')
112780
+ varName="__temp_su_"+i+"__";
112781
+ var varInfo={ };
112782
+ if (this.ReadUnaryExpression(itemExpression, varInfo))
112821
112783
  {
112822
- if (aryValue) aryValue=this.Algorithm.Subtract(0,aryValue);
112784
+ isNoneName=true;
112785
+ this.VarTable.set(varName,varInfo.OutVar);
112823
112786
  }
112824
-
112825
- isNoneName=true;
112826
- this.VarTable.set(varName,aryValue);
112827
112787
  }
112828
112788
  }
112829
112789
  }
@@ -112953,6 +112913,57 @@ function JSExecute(ast,option)
112953
112913
  }
112954
112914
  }
112955
112915
 
112916
+ this.ReadUnaryExpression=function(item, varInfo)
112917
+ {
112918
+ var argument=item.Argument;
112919
+ var outVar=null;
112920
+ if (argument.Type==Syntax.Literal)
112921
+ {
112922
+ outVar=argument.Value;
112923
+ if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
112924
+ }
112925
+ else if (argument.Type==Syntax.Identifier)
112926
+ {
112927
+ var varName=argument.Name;
112928
+ outVar=this.ReadVariable(varName,item.Expression);
112929
+ if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
112930
+ }
112931
+ else if (argument.Type==Syntax.BinaryExpression)
112932
+ {
112933
+ outVar=argument.Out;
112934
+ if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
112935
+ }
112936
+ else if (argument.Type==Syntax.CallExpression)
112937
+ {
112938
+ var callItem=argument;
112939
+ if (this.Draw.IsDrawFunction(callItem.Callee.Name) )
112940
+ {
112941
+ return false;
112942
+ }
112943
+ else if (callItem.Callee.Name==="IFC" && callItem.Draw)
112944
+ {
112945
+ return false;
112946
+ }
112947
+ else
112948
+ {
112949
+ outVar=callItem.Out;
112950
+ if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
112951
+ }
112952
+ }
112953
+ else
112954
+ {
112955
+ return false;
112956
+ }
112957
+
112958
+ if (item.Operator=='-')
112959
+ {
112960
+ if (outVar) outVar=this.Algorithm.Subtract(0,outVar);
112961
+ }
112962
+
112963
+ varInfo.OutVar=outVar;
112964
+ return true;
112965
+ }
112966
+
112956
112967
  this.GetOutIconData=function(cond, iconDraw)
112957
112968
  {
112958
112969
  if (Array.isArray(cond))
@@ -132026,7 +132037,7 @@ function ScrollBarBGChart()
132026
132037
 
132027
132038
 
132028
132039
 
132029
- var HQCHART_VERSION="1.1.12859";
132040
+ var HQCHART_VERSION="1.1.12862";
132030
132041
 
132031
132042
  function PrintHQChartVersion()
132032
132043
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12859";
8
+ var HQCHART_VERSION="1.1.12862";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -112605,33 +112605,13 @@ function JSExecute(ast,option)
112605
112605
  }
112606
112606
  else if (item.Expression.Type==Syntax.UnaryExpression)
112607
112607
  {
112608
- var varName="__temp_l_"+i+"__";
112609
- var argument=item.Expression.Argument;
112610
- var type=0;
112611
- let outVar=null;
112612
- if (argument.Type==Syntax.Literal)
112613
- {
112614
- outVar=argument.Value;
112615
- if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
112616
- }
112617
- else if (argument.Type==Syntax.Identifier)
112608
+ var varName="__temp_u_"+i+"__";
112609
+ var varInfo={ };
112610
+ if (this.ReadUnaryExpression(item.Expression, varInfo))
112618
112611
  {
112619
- let varName=argument.Name;
112620
- outVar=this.ReadVariable(varName,item.Expression);
112621
- if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
112622
- }
112623
- else if (argument.Type==Syntax.BinaryExpression)
112624
- {
112625
- outVar=argument.Out;
112626
- if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
112627
- }
112628
-
112629
- if (item.Expression.Operator=='-')
112630
- {
112631
- if (outVar) outVar=this.Algorithm.Subtract(0,outVar);
112612
+ var type=0;
112613
+ this.OutVarTable.push({Name:varName, Data:varInfo.OutVar,Type:type, NoneName:true});
112632
112614
  }
112633
-
112634
- if (outVar) this.OutVarTable.push({Name:varName, Data:outVar,Type:type, NoneName:true});
112635
112615
  }
112636
112616
  else if (item.Expression.Type==Syntax.SequenceExpression)
112637
112617
  {
@@ -112841,33 +112821,13 @@ function JSExecute(ast,option)
112841
112821
  {
112842
112822
  if (j==0)
112843
112823
  {
112844
- varName="__temp_sb_"+i+"__";
112845
- var argument=itemExpression.Argument;
112846
- let aryValue=null;
112847
- if (argument.Type==Syntax.Literal)
112848
- {
112849
- aryValue=argument.Value;
112850
- if (!Array.isArray(aryValue)) aryValue=this.SingleDataToArrayData(aryValue);
112851
- }
112852
- else if (argument.Type==Syntax.Identifier)
112853
- {
112854
- let varName=argument.Name;
112855
- aryValue=this.ReadVariable(varName,item.Expression);
112856
- if (!Array.isArray(aryValue)) aryValue=this.SingleDataToArrayData(aryValue);
112857
- }
112858
- else if (argument.Type==Syntax.BinaryExpression)
112859
- {
112860
- aryValue=argument.Out;
112861
- if (!Array.isArray(aryValue)) aryValue=this.SingleDataToArrayData(aryValue);
112862
- }
112863
-
112864
- if (itemExpression.Operator=='-')
112824
+ varName="__temp_su_"+i+"__";
112825
+ var varInfo={ };
112826
+ if (this.ReadUnaryExpression(itemExpression, varInfo))
112865
112827
  {
112866
- if (aryValue) aryValue=this.Algorithm.Subtract(0,aryValue);
112828
+ isNoneName=true;
112829
+ this.VarTable.set(varName,varInfo.OutVar);
112867
112830
  }
112868
-
112869
- isNoneName=true;
112870
- this.VarTable.set(varName,aryValue);
112871
112831
  }
112872
112832
  }
112873
112833
  }
@@ -112997,6 +112957,57 @@ function JSExecute(ast,option)
112997
112957
  }
112998
112958
  }
112999
112959
 
112960
+ this.ReadUnaryExpression=function(item, varInfo)
112961
+ {
112962
+ var argument=item.Argument;
112963
+ var outVar=null;
112964
+ if (argument.Type==Syntax.Literal)
112965
+ {
112966
+ outVar=argument.Value;
112967
+ if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
112968
+ }
112969
+ else if (argument.Type==Syntax.Identifier)
112970
+ {
112971
+ var varName=argument.Name;
112972
+ outVar=this.ReadVariable(varName,item.Expression);
112973
+ if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
112974
+ }
112975
+ else if (argument.Type==Syntax.BinaryExpression)
112976
+ {
112977
+ outVar=argument.Out;
112978
+ if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
112979
+ }
112980
+ else if (argument.Type==Syntax.CallExpression)
112981
+ {
112982
+ var callItem=argument;
112983
+ if (this.Draw.IsDrawFunction(callItem.Callee.Name) )
112984
+ {
112985
+ return false;
112986
+ }
112987
+ else if (callItem.Callee.Name==="IFC" && callItem.Draw)
112988
+ {
112989
+ return false;
112990
+ }
112991
+ else
112992
+ {
112993
+ outVar=callItem.Out;
112994
+ if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
112995
+ }
112996
+ }
112997
+ else
112998
+ {
112999
+ return false;
113000
+ }
113001
+
113002
+ if (item.Operator=='-')
113003
+ {
113004
+ if (outVar) outVar=this.Algorithm.Subtract(0,outVar);
113005
+ }
113006
+
113007
+ varInfo.OutVar=outVar;
113008
+ return true;
113009
+ }
113010
+
113000
113011
  this.GetOutIconData=function(cond, iconDraw)
113001
113012
  {
113002
113013
  if (Array.isArray(cond))
@@ -132184,7 +132195,7 @@ function HQChartScriptWorker()
132184
132195
 
132185
132196
 
132186
132197
 
132187
- var HQCHART_VERSION="1.1.12859";
132198
+ var HQCHART_VERSION="1.1.12862";
132188
132199
 
132189
132200
  function PrintHQChartVersion()
132190
132201
  {