void CXFA_FMForExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) { javascript << RUNTIMEFUNCTIONRETURNVALUE; javascript << FX_WSTRC(L" = 0;\n"); javascript << FX_WSTRC(L"{\nvar "); CFX_WideString tempVariant; if (m_wsVariant.GetAt(0) == L'!') { tempVariant = EXCLAMATION_IN_IDENTIFIER + m_wsVariant.Mid(1); javascript << tempVariant; } else { tempVariant = m_wsVariant; javascript << m_wsVariant; } javascript << FX_WSTRC(L" = null;\n"); javascript << FX_WSTRC(L"for ("); javascript << tempVariant; javascript << FX_WSTRC(L" = "); javascript << XFA_FM_EXPTypeToString(GETFMVALUE); javascript << FX_WSTRC(L"("); m_pAssignment->ToJavaScript(javascript); javascript << FX_WSTRC(L"); "); javascript << tempVariant; if (m_iDirection == 1) { javascript << FX_WSTRC(L" <= "); javascript << XFA_FM_EXPTypeToString(GETFMVALUE); javascript << FX_WSTRC(L"("); m_pAccessor->ToJavaScript(javascript); javascript << FX_WSTRC(L"); "); javascript << tempVariant; javascript << FX_WSTRC(L" += "); } else { javascript << FX_WSTRC(L" >= "); javascript << XFA_FM_EXPTypeToString(GETFMVALUE); javascript << FX_WSTRC(L"("); m_pAccessor->ToJavaScript(javascript); javascript << FX_WSTRC(L"); "); javascript << tempVariant; javascript << FX_WSTRC(L" -= "); } if (m_pStep) { javascript << XFA_FM_EXPTypeToString(GETFMVALUE); javascript << FX_WSTRC(L"("); m_pStep->ToJavaScript(javascript); javascript << FX_WSTRC(L")"); } else { javascript << FX_WSTRC(L"1"); } javascript << FX_WSTRC(L")\n"); m_pList->ToImpliedReturnJS(javascript); javascript << FX_WSTRC(L"}\n"); }
void CXFA_FMIfExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) { javascript << RUNTIMEFUNCTIONRETURNVALUE; javascript << FX_WSTRC(L" = 0;\n"); javascript << FX_WSTRC(L"if ("); if (m_pExpression) { javascript << XFA_FM_EXPTypeToString(GETFMVALUE); javascript << FX_WSTRC(L"("); m_pExpression->ToJavaScript(javascript); javascript << FX_WSTRC(L")"); } javascript << FX_WSTRC(L")\n"); if (m_pIfExpression) { m_pIfExpression->ToImpliedReturnJS(javascript); } if (m_pElseExpression) { if (m_pElseExpression->GetExpType() == XFA_FM_EXPTYPE_IF) { javascript << FX_WSTRC(L"else\n"); javascript << FX_WSTRC(L"{\n"); m_pElseExpression->ToImpliedReturnJS(javascript); javascript << FX_WSTRC(L"}\n"); } else { javascript << FX_WSTRC(L"else\n"); m_pElseExpression->ToImpliedReturnJS(javascript); } } }
void CXFA_FMForeachExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) { javascript << RUNTIMEFUNCTIONRETURNVALUE; javascript << FX_WSTRC(L" = 0;\n"); javascript << FX_WSTRC(L"{\n"); javascript << FX_WSTRC(L"var "); if (m_wsIdentifier.GetAt(0) == L'!') { CFX_WideString tempIdentifier = EXCLAMATION_IN_IDENTIFIER + m_wsIdentifier.Mid(1); javascript << tempIdentifier; } else { javascript << m_wsIdentifier; } javascript << FX_WSTRC(L" = null;\n"); javascript << FX_WSTRC(L"var "); javascript << RUNTIMEBLOCKTEMPARRAY; javascript << FX_WSTRC(L" = "); javascript << XFA_FM_EXPTypeToString(CONCATFMOBJECT); javascript << FX_WSTRC(L"("); int32_t iSize = m_pAccessors->GetSize(); int32_t index = 0; CXFA_FMSimpleExpression* s = 0; while (index < iSize) { s = (CXFA_FMSimpleExpression*)m_pAccessors->GetAt(index); s->ToJavaScript(javascript); if (index + 1 < iSize) { javascript << FX_WSTRC(L", "); } index++; } s = 0; javascript << FX_WSTRC(L");\n"); javascript << FX_WSTRC(L"var "); javascript << RUNTIMEBLOCKTEMPARRAYINDEX; javascript << FX_WSTRC(L" = 0;\n"); javascript << FX_WSTRC(L"while("); javascript << RUNTIMEBLOCKTEMPARRAYINDEX; javascript << FX_WSTRC(L" < "); javascript << RUNTIMEBLOCKTEMPARRAY; javascript << FX_WSTRC(L".length)\n{\n"); if (m_wsIdentifier.GetAt(0) == L'!') { CFX_WideString tempIdentifier = EXCLAMATION_IN_IDENTIFIER + m_wsIdentifier.Mid(1); javascript << tempIdentifier; } else { javascript << m_wsIdentifier; } javascript << FX_WSTRC(L" = "); javascript << RUNTIMEBLOCKTEMPARRAY; javascript << FX_WSTRC(L"["); javascript << RUNTIMEBLOCKTEMPARRAYINDEX; javascript << FX_WSTRC(L"++];\n"); m_pList->ToImpliedReturnJS(javascript); javascript << FX_WSTRC(L"}\n"); javascript << FX_WSTRC(L"}\n"); }
void CXFA_FMForeachExpression::ToJavaScript(CFX_WideTextBuf& javascript) { javascript << FX_WSTRC(L"{\n"); javascript << FX_WSTRC(L"var "); if (m_wsIdentifier.GetAt(0) == L'!') { CFX_WideString tempIdentifier = EXCLAMATION_IN_IDENTIFIER + m_wsIdentifier.Mid(1); javascript << tempIdentifier; } else { javascript << m_wsIdentifier; } javascript << FX_WSTRC(L" = null;\n"); javascript << FX_WSTRC(L"var "); javascript << RUNTIMEBLOCKTEMPARRAY; javascript << FX_WSTRC(L" = "); javascript << XFA_FM_EXPTypeToString(CONCATFMOBJECT); javascript << FX_WSTRC(L"("); for (int i = 0; i < m_pAccessors->GetSize(); ++i) { CXFA_FMSimpleExpression* s = reinterpret_cast<CXFA_FMSimpleExpression*>(m_pAccessors->GetAt(i)); s->ToJavaScript(javascript); if (i + 1 < m_pAccessors->GetSize()) { javascript << FX_WSTRC(L", "); } } javascript << FX_WSTRC(L");\n"); javascript << FX_WSTRC(L"var "); javascript << RUNTIMEBLOCKTEMPARRAYINDEX; javascript << FX_WSTRC(L" = 0;\n"); javascript << FX_WSTRC(L"while("); javascript << RUNTIMEBLOCKTEMPARRAYINDEX; javascript << FX_WSTRC(L" < "); javascript << RUNTIMEBLOCKTEMPARRAY; javascript << FX_WSTRC(L".length)\n{\n"); if (m_wsIdentifier.GetAt(0) == L'!') { CFX_WideString tempIdentifier = EXCLAMATION_IN_IDENTIFIER + m_wsIdentifier.Mid(1); javascript << tempIdentifier; } else { javascript << m_wsIdentifier; } javascript << FX_WSTRC(L" = "); javascript << RUNTIMEBLOCKTEMPARRAY; javascript << FX_WSTRC(L"["); javascript << RUNTIMEBLOCKTEMPARRAYINDEX; javascript << FX_WSTRC(L"++];\n"); m_pList->ToJavaScript(javascript); javascript << FX_WSTRC(L"}\n"); javascript << FX_WSTRC(L"}\n"); }
void CXFA_FMVarExpression::ToJavaScript(CFX_WideTextBuf& javascript) { javascript << FX_WSTRC(L"var "); CFX_WideString tempName = m_wsName; if (m_wsName.GetAt(0) == L'!') { tempName = EXCLAMATION_IN_IDENTIFIER + m_wsName.Mid(1); } javascript << tempName; javascript << FX_WSTRC(L" = "); if (m_pInit) { m_pInit->ToJavaScript(javascript); javascript << tempName; javascript << FX_WSTRC(L" = "); javascript << XFA_FM_EXPTypeToString(VARFILTER); javascript << FX_WSTRC(L"("); javascript << tempName; javascript << FX_WSTRC(L");\n"); } else { javascript << FX_WSTRC(L"\"\";\n"); } }
void CXFA_FMExpExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) { if (m_pExpression->GetOperatorToken() == TOKassign) { m_pExpression->ToImpliedReturnJS(javascript); } else { if (m_pExpression->GetOperatorToken() == TOKstar || m_pExpression->GetOperatorToken() == TOKdotstar || m_pExpression->GetOperatorToken() == TOKdotscream || m_pExpression->GetOperatorToken() == TOKdotdot || m_pExpression->GetOperatorToken() == TOKdot) { javascript << RUNTIMEFUNCTIONRETURNVALUE; javascript << FX_WSTRC(L" = "); javascript << XFA_FM_EXPTypeToString(GETFMVALUE); javascript << FX_WSTRC(L"("); m_pExpression->ToJavaScript(javascript); javascript << FX_WSTRC(L");\n"); } else { javascript << RUNTIMEFUNCTIONRETURNVALUE; javascript << FX_WSTRC(L" = "); m_pExpression->ToJavaScript(javascript); javascript << FX_WSTRC(L";\n"); } } }
void CXFA_FMIfExpression::ToJavaScript(CFX_WideTextBuf& javascript) { javascript << FX_WSTRC(L"if ("); if (m_pExpression) { javascript << XFA_FM_EXPTypeToString(GETFMVALUE); javascript << FX_WSTRC(L"("); m_pExpression->ToJavaScript(javascript); javascript << FX_WSTRC(L")"); } javascript << FX_WSTRC(L")\n"); if (m_pIfExpression) { m_pIfExpression->ToJavaScript(javascript); } if (m_pElseExpression) { if (m_pElseExpression->GetExpType() == XFA_FM_EXPTYPE_IF) { javascript << FX_WSTRC(L"else\n"); javascript << FX_WSTRC(L"{\n"); m_pElseExpression->ToJavaScript(javascript); javascript << FX_WSTRC(L"}\n"); } else { javascript << FX_WSTRC(L"else\n"); m_pElseExpression->ToJavaScript(javascript); } } }
void CXFA_FMFunctionDefinition::ToJavaScript(CFX_WideTextBuf& javascript) { if (m_isGlobal && (!m_pExpressions || m_pExpressions->GetSize() == 0)) { javascript << FX_WSTRC(L"// comments only"); return; } if (m_isGlobal) { javascript << FX_WSTRC(L"(\n"); } javascript << FX_WSTRC(L"function "); if (m_wsName.GetAt(0) == L'!') { CFX_WideString tempName = EXCLAMATION_IN_IDENTIFIER + m_wsName.Mid(1); javascript << tempName; } else { javascript << m_wsName; } javascript << FX_WSTRC(L"("); if (m_pArguments != 0) { int32_t argc = m_pArguments->GetSize(); int32_t index = 0; CFX_WideStringC identifier = 0; while (index < argc) { identifier = m_pArguments->GetAt(index); if (identifier.GetAt(0) == L'!') { CFX_WideString tempIdentifier = EXCLAMATION_IN_IDENTIFIER + identifier.Mid(1); javascript << tempIdentifier; } else { javascript << identifier; } if (index + 1 < argc) { javascript << FX_WSTRC(L", "); } index++; } } javascript << FX_WSTRC(L")\n{\n"); javascript << FX_WSTRC(L"var "); javascript << RUNTIMEFUNCTIONRETURNVALUE; javascript << FX_WSTRC(L" = null;\n"); if (m_pExpressions) { int32_t expc = m_pExpressions->GetSize(); int32_t index = 0; CXFA_FMExpression* e = 0; while (index < expc) { e = (CXFA_FMExpression*)m_pExpressions->GetAt(index); if (index + 1 < expc) { e->ToJavaScript(javascript); } else { e->ToImpliedReturnJS(javascript); } index++; } } javascript << FX_WSTRC(L"return "); if (m_isGlobal) { javascript << XFA_FM_EXPTypeToString(GETFMVALUE); javascript << FX_WSTRC(L"("); javascript << RUNTIMEFUNCTIONRETURNVALUE; javascript << FX_WSTRC(L")"); } else { javascript << RUNTIMEFUNCTIONRETURNVALUE; } javascript << FX_WSTRC(L";\n}\n"); if (m_isGlobal) { javascript << FX_WSTRC(L").call(this);\n"); } }