@tdesign-react/chat 1.0.2-alpha.9 → 1.1.0-alpha.1
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.
- package/es/_chunks/dep-f2051ebd.js +839 -0
- package/es/_chunks/dep-f2051ebd.js.map +1 -0
- package/es/_util/reactify.js +1 -1
- package/es/_util/useDynamicStyle.js +1 -1
- package/es/attachments/index.js +1 -1
- package/es/chat-actionbar/index.js +1 -1
- package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +196 -0
- package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +301 -0
- package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +37 -0
- package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +116 -0
- package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +1 -0
- package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +42 -0
- package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +113 -0
- package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +1 -0
- package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +60 -0
- package/es/chat-engine/components/a2ui/A2UISkeleton.js +197 -0
- package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +1 -0
- package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +44 -0
- package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +139 -0
- package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +22 -0
- package/es/chat-engine/components/a2ui/containers/A2UICard.js +82 -0
- package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +18 -0
- package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +81 -0
- package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +14 -0
- package/es/chat-engine/components/a2ui/containers/A2UIList.js +62 -0
- package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +20 -0
- package/es/chat-engine/components/a2ui/containers/A2UIRow.js +84 -0
- package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +14 -0
- package/es/chat-engine/components/a2ui/containers/A2UITabs.js +69 -0
- package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/index.d.ts +8 -0
- package/es/chat-engine/components/a2ui/containers/index.js +30 -0
- package/es/chat-engine/components/a2ui/containers/index.js.map +1 -0
- package/es/chat-engine/components/a2ui/index.d.ts +11 -0
- package/es/chat-engine/components/a2ui/index.js +62 -0
- package/es/chat-engine/components/a2ui/index.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +33 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +80 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +43 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +50 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +54 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +13 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +89 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +25 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +13 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +138942 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +75 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +20 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +63 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +56 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +64 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +55 -0
- package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIText.js +104 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +80 -0
- package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/index.d.ts +15 -0
- package/es/chat-engine/components/a2ui/primitives/index.js +39 -0
- package/es/chat-engine/components/a2ui/primitives/index.js.map +1 -0
- package/es/chat-engine/components/a2ui/registry.d.ts +35 -0
- package/es/chat-engine/components/a2ui/registry.js +74 -0
- package/es/chat-engine/components/a2ui/registry.js.map +1 -0
- package/es/chat-engine/components/activity/index.js +1 -1
- package/es/chat-engine/components/activity/registry.d.ts +1 -1
- package/es/chat-engine/components/activity/registry.js +1 -1
- package/es/chat-engine/components/activity/registry.js.map +1 -1
- package/es/chat-engine/components/activity/render.d.ts +2 -2
- package/es/chat-engine/components/activity/render.js +1 -1
- package/es/chat-engine/components/activity/render.js.map +1 -1
- package/es/chat-engine/components/activity/types.js +1 -1
- package/es/chat-engine/components/index.d.ts +1 -0
- package/es/chat-engine/components/index.js +57 -9
- package/es/chat-engine/components/index.js.map +1 -1
- package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.d.ts +36 -0
- package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +36 -0
- package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.d.ts +46 -0
- package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +36 -0
- package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/SurfaceStateManager.d.ts +113 -0
- package/es/chat-engine/components/json-render/SurfaceStateManager.js +195 -0
- package/es/chat-engine/components/json-render/SurfaceStateManager.js.map +1 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.d.ts +49 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +307 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js.map +1 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-types.d.ts +96 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-types.js +7 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-types.js.map +1 -0
- package/es/chat-engine/components/json-render/adapters/index.d.ts +7 -0
- package/es/chat-engine/components/json-render/adapters/index.js +11 -0
- package/es/chat-engine/components/json-render/adapters/index.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-binding.d.ts +64 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +36 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-binding.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-registry.d.ts +78 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +36 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-registry.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/button.d.ts +14 -0
- package/es/chat-engine/components/json-render/catalog/button.js +71 -0
- package/es/chat-engine/components/json-render/catalog/button.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/card.d.ts +11 -0
- package/es/chat-engine/components/json-render/catalog/card.js +57 -0
- package/es/chat-engine/components/json-render/catalog/card.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/index.d.ts +127 -0
- package/es/chat-engine/components/json-render/catalog/index.js +36 -0
- package/es/chat-engine/components/json-render/catalog/index.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/input.d.ts +20 -0
- package/es/chat-engine/components/json-render/catalog/input.js +36 -0
- package/es/chat-engine/components/json-render/catalog/input.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/layout.d.ts +44 -0
- package/es/chat-engine/components/json-render/catalog/layout.js +129 -0
- package/es/chat-engine/components/json-render/catalog/layout.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/text.d.ts +11 -0
- package/es/chat-engine/components/json-render/catalog/text.js +31 -0
- package/es/chat-engine/components/json-render/catalog/text.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog.d.ts +549 -0
- package/es/chat-engine/components/json-render/catalog.js +147 -0
- package/es/chat-engine/components/json-render/catalog.js.map +1 -0
- package/es/chat-engine/components/json-render/config.d.ts +154 -0
- package/es/chat-engine/components/json-render/config.js +36 -0
- package/es/chat-engine/components/json-render/config.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/actions.d.ts +74 -0
- package/es/chat-engine/components/json-render/contexts/actions.js +290 -0
- package/es/chat-engine/components/json-render/contexts/actions.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/data.d.ts +45 -0
- package/es/chat-engine/components/json-render/contexts/data.js +104 -0
- package/es/chat-engine/components/json-render/contexts/data.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/validation.d.ts +59 -0
- package/es/chat-engine/components/json-render/contexts/validation.js +151 -0
- package/es/chat-engine/components/json-render/contexts/validation.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/visibility.d.ts +29 -0
- package/es/chat-engine/components/json-render/contexts/visibility.js +56 -0
- package/es/chat-engine/components/json-render/contexts/visibility.js.map +1 -0
- package/es/chat-engine/components/json-render/engine.d.ts +58 -0
- package/es/chat-engine/components/json-render/engine.js +88 -0
- package/es/chat-engine/components/json-render/engine.js.map +1 -0
- package/es/chat-engine/components/json-render/index.d.ts +34 -0
- package/es/chat-engine/components/json-render/index.js +36 -0
- package/es/chat-engine/components/json-render/index.js.map +1 -0
- package/es/chat-engine/components/json-render/performance.d.ts +91 -0
- package/es/chat-engine/components/json-render/performance.js +135 -0
- package/es/chat-engine/components/json-render/performance.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer.d.ts +71 -0
- package/es/chat-engine/components/json-render/renderer.js +124 -0
- package/es/chat-engine/components/json-render/renderer.js.map +1 -0
- package/es/chat-engine/components/json-render/types.d.ts +69 -0
- package/es/chat-engine/components/json-render/types.js +7 -0
- package/es/chat-engine/components/json-render/types.js.map +1 -0
- package/es/chat-engine/components/provider/agent-state.js +39 -2
- package/es/chat-engine/components/provider/agent-state.js.map +1 -1
- package/es/chat-engine/components/toolcall/index.js +32 -2
- package/es/chat-engine/components/toolcall/index.js.map +1 -1
- package/es/chat-engine/components/toolcall/registry.js +1 -1
- package/es/chat-engine/components/toolcall/render.d.ts +1 -1
- package/es/chat-engine/components/toolcall/render.js +33 -4
- package/es/chat-engine/components/toolcall/render.js.map +1 -1
- package/es/chat-engine/components/toolcall/types.js +1 -1
- package/es/chat-engine/core/a2ui/index.d.ts +10 -0
- package/es/chat-engine/core/a2ui/index.js +24 -0
- package/es/chat-engine/core/a2ui/index.js.map +1 -0
- package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
- package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +438 -0
- package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
- package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +53 -0
- package/es/chat-engine/core/a2ui/processor/ComponentTree.js +158 -0
- package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +1 -0
- package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +63 -0
- package/es/chat-engine/core/a2ui/processor/DataStore.js +172 -0
- package/es/chat-engine/core/a2ui/processor/DataStore.js.map +1 -0
- package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +47 -0
- package/es/chat-engine/core/a2ui/processor/PathResolver.js +99 -0
- package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +1 -0
- package/es/chat-engine/core/a2ui/types/index.d.ts +4 -0
- package/es/chat-engine/core/a2ui/types/index.js +9 -0
- package/es/chat-engine/core/a2ui/types/index.js.map +1 -0
- package/es/chat-engine/core/a2ui/types/types.d.ts +770 -0
- package/es/chat-engine/core/a2ui/types/types.js +104 -0
- package/es/chat-engine/core/a2ui/types/types.js.map +1 -0
- package/es/chat-engine/core/a2ui/utils/binding.d.ts +34 -0
- package/es/chat-engine/core/a2ui/utils/binding.js +1784 -0
- package/es/chat-engine/core/a2ui/utils/binding.js.map +1 -0
- package/es/chat-engine/core/a2ui/utils/index.d.ts +5 -0
- package/es/chat-engine/core/a2ui/utils/index.js +13 -0
- package/es/chat-engine/core/a2ui/utils/index.js.map +1 -0
- package/es/chat-engine/core/a2ui/utils/validation.d.ts +70 -0
- package/es/chat-engine/core/a2ui/utils/validation.js +333 -0
- package/es/chat-engine/core/a2ui/utils/validation.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/activity-manager.d.ts +102 -0
- package/es/chat-engine/core/adapters/agui/activity-manager.js +144 -0
- package/es/chat-engine/core/adapters/agui/activity-manager.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +42 -2
- package/es/chat-engine/core/adapters/agui/event-mapper.js +90 -50
- package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -1
- package/es/chat-engine/core/adapters/agui/events.d.ts +222 -222
- package/es/chat-engine/core/adapters/agui/events.js +34 -34
- package/es/chat-engine/core/adapters/agui/events.js.map +1 -1
- package/es/chat-engine/core/adapters/agui/index.d.ts +22 -2
- package/es/chat-engine/core/adapters/agui/index.js +34 -14
- package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
- package/es/chat-engine/core/adapters/agui/state-manager.js +1 -1
- package/es/chat-engine/core/adapters/agui/types.d.ts +57 -56
- package/es/chat-engine/core/adapters/agui/types.js +5 -5
- package/es/chat-engine/core/adapters/agui/types.js.map +1 -1
- package/es/chat-engine/core/adapters/agui/utils.d.ts +9 -3
- package/es/chat-engine/core/adapters/agui/utils.js +23 -4
- package/es/chat-engine/core/adapters/agui/utils.js.map +1 -1
- package/es/chat-engine/core/event-bus/ChatEventBus.d.ts +88 -0
- package/es/chat-engine/core/event-bus/ChatEventBus.js +295 -0
- package/es/chat-engine/core/event-bus/ChatEventBus.js.map +1 -0
- package/es/chat-engine/core/event-bus/index.d.ts +5 -0
- package/es/chat-engine/core/event-bus/index.js +13 -0
- package/es/chat-engine/core/event-bus/index.js.map +1 -0
- package/es/chat-engine/core/event-bus/types.d.ts +230 -0
- package/es/chat-engine/core/event-bus/types.js +32 -0
- package/es/chat-engine/core/event-bus/types.js.map +1 -0
- package/es/chat-engine/core/index.d.ts +16 -1
- package/es/chat-engine/core/index.js +174 -17
- package/es/chat-engine/core/index.js.map +1 -1
- package/es/chat-engine/core/processor/index.js +1 -1
- package/es/chat-engine/core/server/batch-client.js +1 -1
- package/es/chat-engine/core/server/connection-manager.js +1 -1
- package/es/chat-engine/core/server/errors.js +1 -1
- package/es/chat-engine/core/server/index.js +1 -1
- package/es/chat-engine/core/server/llm-service.js +17 -15
- package/es/chat-engine/core/server/llm-service.js.map +1 -1
- package/es/chat-engine/core/server/sse-client.js +1 -1
- package/es/chat-engine/core/server/sse-parser.js +1 -1
- package/es/chat-engine/core/server/types.js +1 -1
- package/es/chat-engine/core/store/message.js +2 -2
- package/es/chat-engine/core/store/message.js.map +1 -1
- package/es/chat-engine/core/store/model.js +1 -1
- package/es/chat-engine/core/store/reactiveState.js +1 -1
- package/es/chat-engine/core/type.d.ts +18 -2
- package/es/chat-engine/core/type.js +1 -1
- package/es/chat-engine/core/utils/eventEmitter.js +1 -1
- package/es/chat-engine/core/utils/index.js +1 -1
- package/es/chat-engine/core/utils/logger.js +1 -1
- package/es/chat-engine/hooks/a2ui/A2UIContext.d.ts +90 -0
- package/es/chat-engine/hooks/a2ui/A2UIContext.js +97 -0
- package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +1 -0
- package/es/chat-engine/hooks/a2ui/index.d.ts +12 -0
- package/es/chat-engine/hooks/a2ui/index.js +19 -0
- package/es/chat-engine/hooks/a2ui/index.js.map +1 -0
- package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +40 -0
- package/es/chat-engine/hooks/a2ui/useA2UIAction.js +74 -0
- package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +1 -0
- package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +36 -0
- package/es/chat-engine/hooks/a2ui/useA2UISurface.js +39 -0
- package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +1 -0
- package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +53 -0
- package/es/chat-engine/hooks/a2ui/useDataBinding.js +111 -0
- package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +1 -0
- package/es/chat-engine/hooks/index.js +38 -4
- package/es/chat-engine/hooks/index.js.map +1 -1
- package/es/chat-engine/hooks/useAgentActivity.d.ts +1 -2
- package/es/chat-engine/hooks/useAgentActivity.js +1 -1
- package/es/chat-engine/hooks/useAgentActivity.js.map +1 -1
- package/es/chat-engine/hooks/useAgentState.js +39 -2
- package/es/chat-engine/hooks/useAgentState.js.map +1 -1
- package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
- package/es/chat-engine/hooks/useChat.d.ts +3 -3
- package/es/chat-engine/hooks/useChat.js +40 -2
- package/es/chat-engine/hooks/useChat.js.map +1 -1
- package/es/chat-engine/hooks/useJsonRenderActivity.d.ts +56 -0
- package/es/chat-engine/hooks/useJsonRenderActivity.js +63 -0
- package/es/chat-engine/hooks/useJsonRenderActivity.js.map +1 -0
- package/es/chat-engine/index.d.ts +1 -3
- package/es/chat-engine/index.js +30 -8
- package/es/chat-engine/index.js.map +1 -1
- package/es/chat-filecard/index.js +1 -1
- package/es/chat-loading/index.js +1 -1
- package/es/chat-markdown/index.js +1 -1
- package/es/chat-message/index.js +1 -1
- package/es/chat-sender/index.js +1 -1
- package/es/chat-thinking/index.js +1 -1
- package/es/chatbot/docs/react-best-practice.d.ts +13 -0
- package/es/chatbot/index.js +1 -1
- package/es/index.js +27 -5
- package/es/index.js.map +1 -1
- package/es/style/index.js +1 -1
- package/package.json +6 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binding.js","sources":["../../../../../../../node_modules/.pnpm/expr-eval@2.0.2/node_modules/expr-eval/dist/index.mjs","../../../../../../pro-components/chat/chat-engine/core/a2ui/utils/binding.ts"],"sourcesContent":["var INUMBER = 'INUMBER';\nvar IOP1 = 'IOP1';\nvar IOP2 = 'IOP2';\nvar IOP3 = 'IOP3';\nvar IVAR = 'IVAR';\nvar IVARNAME = 'IVARNAME';\nvar IFUNCALL = 'IFUNCALL';\nvar IFUNDEF = 'IFUNDEF';\nvar IEXPR = 'IEXPR';\nvar IEXPREVAL = 'IEXPREVAL';\nvar IMEMBER = 'IMEMBER';\nvar IENDSTATEMENT = 'IENDSTATEMENT';\nvar IARRAY = 'IARRAY';\n\nfunction Instruction(type, value) {\n this.type = type;\n this.value = (value !== undefined && value !== null) ? value : 0;\n}\n\nInstruction.prototype.toString = function () {\n switch (this.type) {\n case INUMBER:\n case IOP1:\n case IOP2:\n case IOP3:\n case IVAR:\n case IVARNAME:\n case IENDSTATEMENT:\n return this.value;\n case IFUNCALL:\n return 'CALL ' + this.value;\n case IFUNDEF:\n return 'DEF ' + this.value;\n case IARRAY:\n return 'ARRAY ' + this.value;\n case IMEMBER:\n return '.' + this.value;\n default:\n return 'Invalid Instruction';\n }\n};\n\nfunction unaryInstruction(value) {\n return new Instruction(IOP1, value);\n}\n\nfunction binaryInstruction(value) {\n return new Instruction(IOP2, value);\n}\n\nfunction ternaryInstruction(value) {\n return new Instruction(IOP3, value);\n}\n\nfunction simplify(tokens, unaryOps, binaryOps, ternaryOps, values) {\n var nstack = [];\n var newexpression = [];\n var n1, n2, n3;\n var f;\n for (var i = 0; i < tokens.length; i++) {\n var item = tokens[i];\n var type = item.type;\n if (type === INUMBER || type === IVARNAME) {\n if (Array.isArray(item.value)) {\n nstack.push.apply(nstack, simplify(item.value.map(function (x) {\n return new Instruction(INUMBER, x);\n }).concat(new Instruction(IARRAY, item.value.length)), unaryOps, binaryOps, ternaryOps, values));\n } else {\n nstack.push(item);\n }\n } else if (type === IVAR && values.hasOwnProperty(item.value)) {\n item = new Instruction(INUMBER, values[item.value]);\n nstack.push(item);\n } else if (type === IOP2 && nstack.length > 1) {\n n2 = nstack.pop();\n n1 = nstack.pop();\n f = binaryOps[item.value];\n item = new Instruction(INUMBER, f(n1.value, n2.value));\n nstack.push(item);\n } else if (type === IOP3 && nstack.length > 2) {\n n3 = nstack.pop();\n n2 = nstack.pop();\n n1 = nstack.pop();\n if (item.value === '?') {\n nstack.push(n1.value ? n2.value : n3.value);\n } else {\n f = ternaryOps[item.value];\n item = new Instruction(INUMBER, f(n1.value, n2.value, n3.value));\n nstack.push(item);\n }\n } else if (type === IOP1 && nstack.length > 0) {\n n1 = nstack.pop();\n f = unaryOps[item.value];\n item = new Instruction(INUMBER, f(n1.value));\n nstack.push(item);\n } else if (type === IEXPR) {\n while (nstack.length > 0) {\n newexpression.push(nstack.shift());\n }\n newexpression.push(new Instruction(IEXPR, simplify(item.value, unaryOps, binaryOps, ternaryOps, values)));\n } else if (type === IMEMBER && nstack.length > 0) {\n n1 = nstack.pop();\n nstack.push(new Instruction(INUMBER, n1.value[item.value]));\n } /* else if (type === IARRAY && nstack.length >= item.value) {\n var length = item.value;\n while (length-- > 0) {\n newexpression.push(nstack.pop());\n }\n newexpression.push(new Instruction(IARRAY, item.value));\n } */ else {\n while (nstack.length > 0) {\n newexpression.push(nstack.shift());\n }\n newexpression.push(item);\n }\n }\n while (nstack.length > 0) {\n newexpression.push(nstack.shift());\n }\n return newexpression;\n}\n\nfunction substitute(tokens, variable, expr) {\n var newexpression = [];\n for (var i = 0; i < tokens.length; i++) {\n var item = tokens[i];\n var type = item.type;\n if (type === IVAR && item.value === variable) {\n for (var j = 0; j < expr.tokens.length; j++) {\n var expritem = expr.tokens[j];\n var replitem;\n if (expritem.type === IOP1) {\n replitem = unaryInstruction(expritem.value);\n } else if (expritem.type === IOP2) {\n replitem = binaryInstruction(expritem.value);\n } else if (expritem.type === IOP3) {\n replitem = ternaryInstruction(expritem.value);\n } else {\n replitem = new Instruction(expritem.type, expritem.value);\n }\n newexpression.push(replitem);\n }\n } else if (type === IEXPR) {\n newexpression.push(new Instruction(IEXPR, substitute(item.value, variable, expr)));\n } else {\n newexpression.push(item);\n }\n }\n return newexpression;\n}\n\nfunction evaluate(tokens, expr, values) {\n var nstack = [];\n var n1, n2, n3;\n var f, args, argCount;\n\n if (isExpressionEvaluator(tokens)) {\n return resolveExpression(tokens, values);\n }\n\n var numTokens = tokens.length;\n\n for (var i = 0; i < numTokens; i++) {\n var item = tokens[i];\n var type = item.type;\n if (type === INUMBER || type === IVARNAME) {\n nstack.push(item.value);\n } else if (type === IOP2) {\n n2 = nstack.pop();\n n1 = nstack.pop();\n if (item.value === 'and') {\n nstack.push(n1 ? !!evaluate(n2, expr, values) : false);\n } else if (item.value === 'or') {\n nstack.push(n1 ? true : !!evaluate(n2, expr, values));\n } else if (item.value === '=') {\n f = expr.binaryOps[item.value];\n nstack.push(f(n1, evaluate(n2, expr, values), values));\n } else {\n f = expr.binaryOps[item.value];\n nstack.push(f(resolveExpression(n1, values), resolveExpression(n2, values)));\n }\n } else if (type === IOP3) {\n n3 = nstack.pop();\n n2 = nstack.pop();\n n1 = nstack.pop();\n if (item.value === '?') {\n nstack.push(evaluate(n1 ? n2 : n3, expr, values));\n } else {\n f = expr.ternaryOps[item.value];\n nstack.push(f(resolveExpression(n1, values), resolveExpression(n2, values), resolveExpression(n3, values)));\n }\n } else if (type === IVAR) {\n if (item.value in expr.functions) {\n nstack.push(expr.functions[item.value]);\n } else if (item.value in expr.unaryOps && expr.parser.isOperatorEnabled(item.value)) {\n nstack.push(expr.unaryOps[item.value]);\n } else {\n var v = values[item.value];\n if (v !== undefined) {\n nstack.push(v);\n } else {\n throw new Error('undefined variable: ' + item.value);\n }\n }\n } else if (type === IOP1) {\n n1 = nstack.pop();\n f = expr.unaryOps[item.value];\n nstack.push(f(resolveExpression(n1, values)));\n } else if (type === IFUNCALL) {\n argCount = item.value;\n args = [];\n while (argCount-- > 0) {\n args.unshift(resolveExpression(nstack.pop(), values));\n }\n f = nstack.pop();\n if (f.apply && f.call) {\n nstack.push(f.apply(undefined, args));\n } else {\n throw new Error(f + ' is not a function');\n }\n } else if (type === IFUNDEF) {\n // Create closure to keep references to arguments and expression\n nstack.push((function () {\n var n2 = nstack.pop();\n var args = [];\n var argCount = item.value;\n while (argCount-- > 0) {\n args.unshift(nstack.pop());\n }\n var n1 = nstack.pop();\n var f = function () {\n var scope = Object.assign({}, values);\n for (var i = 0, len = args.length; i < len; i++) {\n scope[args[i]] = arguments[i];\n }\n return evaluate(n2, expr, scope);\n };\n // f.name = n1\n Object.defineProperty(f, 'name', {\n value: n1,\n writable: false\n });\n values[n1] = f;\n return f;\n })());\n } else if (type === IEXPR) {\n nstack.push(createExpressionEvaluator(item, expr));\n } else if (type === IEXPREVAL) {\n nstack.push(item);\n } else if (type === IMEMBER) {\n n1 = nstack.pop();\n nstack.push(n1[item.value]);\n } else if (type === IENDSTATEMENT) {\n nstack.pop();\n } else if (type === IARRAY) {\n argCount = item.value;\n args = [];\n while (argCount-- > 0) {\n args.unshift(nstack.pop());\n }\n nstack.push(args);\n } else {\n throw new Error('invalid Expression');\n }\n }\n if (nstack.length > 1) {\n throw new Error('invalid Expression (parity)');\n }\n // Explicitly return zero to avoid test issues caused by -0\n return nstack[0] === 0 ? 0 : resolveExpression(nstack[0], values);\n}\n\nfunction createExpressionEvaluator(token, expr, values) {\n if (isExpressionEvaluator(token)) return token;\n return {\n type: IEXPREVAL,\n value: function (scope) {\n return evaluate(token.value, expr, scope);\n }\n };\n}\n\nfunction isExpressionEvaluator(n) {\n return n && n.type === IEXPREVAL;\n}\n\nfunction resolveExpression(n, values) {\n return isExpressionEvaluator(n) ? n.value(values) : n;\n}\n\nfunction expressionToString(tokens, toJS) {\n var nstack = [];\n var n1, n2, n3;\n var f, args, argCount;\n for (var i = 0; i < tokens.length; i++) {\n var item = tokens[i];\n var type = item.type;\n if (type === INUMBER) {\n if (typeof item.value === 'number' && item.value < 0) {\n nstack.push('(' + item.value + ')');\n } else if (Array.isArray(item.value)) {\n nstack.push('[' + item.value.map(escapeValue).join(', ') + ']');\n } else {\n nstack.push(escapeValue(item.value));\n }\n } else if (type === IOP2) {\n n2 = nstack.pop();\n n1 = nstack.pop();\n f = item.value;\n if (toJS) {\n if (f === '^') {\n nstack.push('Math.pow(' + n1 + ', ' + n2 + ')');\n } else if (f === 'and') {\n nstack.push('(!!' + n1 + ' && !!' + n2 + ')');\n } else if (f === 'or') {\n nstack.push('(!!' + n1 + ' || !!' + n2 + ')');\n } else if (f === '||') {\n nstack.push('(function(a,b){ return Array.isArray(a) && Array.isArray(b) ? a.concat(b) : String(a) + String(b); }((' + n1 + '),(' + n2 + ')))');\n } else if (f === '==') {\n nstack.push('(' + n1 + ' === ' + n2 + ')');\n } else if (f === '!=') {\n nstack.push('(' + n1 + ' !== ' + n2 + ')');\n } else if (f === '[') {\n nstack.push(n1 + '[(' + n2 + ') | 0]');\n } else {\n nstack.push('(' + n1 + ' ' + f + ' ' + n2 + ')');\n }\n } else {\n if (f === '[') {\n nstack.push(n1 + '[' + n2 + ']');\n } else {\n nstack.push('(' + n1 + ' ' + f + ' ' + n2 + ')');\n }\n }\n } else if (type === IOP3) {\n n3 = nstack.pop();\n n2 = nstack.pop();\n n1 = nstack.pop();\n f = item.value;\n if (f === '?') {\n nstack.push('(' + n1 + ' ? ' + n2 + ' : ' + n3 + ')');\n } else {\n throw new Error('invalid Expression');\n }\n } else if (type === IVAR || type === IVARNAME) {\n nstack.push(item.value);\n } else if (type === IOP1) {\n n1 = nstack.pop();\n f = item.value;\n if (f === '-' || f === '+') {\n nstack.push('(' + f + n1 + ')');\n } else if (toJS) {\n if (f === 'not') {\n nstack.push('(' + '!' + n1 + ')');\n } else if (f === '!') {\n nstack.push('fac(' + n1 + ')');\n } else {\n nstack.push(f + '(' + n1 + ')');\n }\n } else if (f === '!') {\n nstack.push('(' + n1 + '!)');\n } else {\n nstack.push('(' + f + ' ' + n1 + ')');\n }\n } else if (type === IFUNCALL) {\n argCount = item.value;\n args = [];\n while (argCount-- > 0) {\n args.unshift(nstack.pop());\n }\n f = nstack.pop();\n nstack.push(f + '(' + args.join(', ') + ')');\n } else if (type === IFUNDEF) {\n n2 = nstack.pop();\n argCount = item.value;\n args = [];\n while (argCount-- > 0) {\n args.unshift(nstack.pop());\n }\n n1 = nstack.pop();\n if (toJS) {\n nstack.push('(' + n1 + ' = function(' + args.join(', ') + ') { return ' + n2 + ' })');\n } else {\n nstack.push('(' + n1 + '(' + args.join(', ') + ') = ' + n2 + ')');\n }\n } else if (type === IMEMBER) {\n n1 = nstack.pop();\n nstack.push(n1 + '.' + item.value);\n } else if (type === IARRAY) {\n argCount = item.value;\n args = [];\n while (argCount-- > 0) {\n args.unshift(nstack.pop());\n }\n nstack.push('[' + args.join(', ') + ']');\n } else if (type === IEXPR) {\n nstack.push('(' + expressionToString(item.value, toJS) + ')');\n } else if (type === IENDSTATEMENT) ; else {\n throw new Error('invalid Expression');\n }\n }\n if (nstack.length > 1) {\n if (toJS) {\n nstack = [ nstack.join(',') ];\n } else {\n nstack = [ nstack.join(';') ];\n }\n }\n return String(nstack[0]);\n}\n\nfunction escapeValue(v) {\n if (typeof v === 'string') {\n return JSON.stringify(v).replace(/\\u2028/g, '\\\\u2028').replace(/\\u2029/g, '\\\\u2029');\n }\n return v;\n}\n\nfunction contains(array, obj) {\n for (var i = 0; i < array.length; i++) {\n if (array[i] === obj) {\n return true;\n }\n }\n return false;\n}\n\nfunction getSymbols(tokens, symbols, options) {\n options = options || {};\n var withMembers = !!options.withMembers;\n var prevVar = null;\n\n for (var i = 0; i < tokens.length; i++) {\n var item = tokens[i];\n if (item.type === IVAR || item.type === IVARNAME) {\n if (!withMembers && !contains(symbols, item.value)) {\n symbols.push(item.value);\n } else if (prevVar !== null) {\n if (!contains(symbols, prevVar)) {\n symbols.push(prevVar);\n }\n prevVar = item.value;\n } else {\n prevVar = item.value;\n }\n } else if (item.type === IMEMBER && withMembers && prevVar !== null) {\n prevVar += '.' + item.value;\n } else if (item.type === IEXPR) {\n getSymbols(item.value, symbols, options);\n } else if (prevVar !== null) {\n if (!contains(symbols, prevVar)) {\n symbols.push(prevVar);\n }\n prevVar = null;\n }\n }\n\n if (prevVar !== null && !contains(symbols, prevVar)) {\n symbols.push(prevVar);\n }\n}\n\nfunction Expression(tokens, parser) {\n this.tokens = tokens;\n this.parser = parser;\n this.unaryOps = parser.unaryOps;\n this.binaryOps = parser.binaryOps;\n this.ternaryOps = parser.ternaryOps;\n this.functions = parser.functions;\n}\n\nExpression.prototype.simplify = function (values) {\n values = values || {};\n return new Expression(simplify(this.tokens, this.unaryOps, this.binaryOps, this.ternaryOps, values), this.parser);\n};\n\nExpression.prototype.substitute = function (variable, expr) {\n if (!(expr instanceof Expression)) {\n expr = this.parser.parse(String(expr));\n }\n\n return new Expression(substitute(this.tokens, variable, expr), this.parser);\n};\n\nExpression.prototype.evaluate = function (values) {\n values = values || {};\n return evaluate(this.tokens, this, values);\n};\n\nExpression.prototype.toString = function () {\n return expressionToString(this.tokens, false);\n};\n\nExpression.prototype.symbols = function (options) {\n options = options || {};\n var vars = [];\n getSymbols(this.tokens, vars, options);\n return vars;\n};\n\nExpression.prototype.variables = function (options) {\n options = options || {};\n var vars = [];\n getSymbols(this.tokens, vars, options);\n var functions = this.functions;\n return vars.filter(function (name) {\n return !(name in functions);\n });\n};\n\nExpression.prototype.toJSFunction = function (param, variables) {\n var expr = this;\n var f = new Function(param, 'with(this.functions) with (this.ternaryOps) with (this.binaryOps) with (this.unaryOps) { return ' + expressionToString(this.simplify(variables).tokens, true) + '; }'); // eslint-disable-line no-new-func\n return function () {\n return f.apply(expr, arguments);\n };\n};\n\nvar TEOF = 'TEOF';\nvar TOP = 'TOP';\nvar TNUMBER = 'TNUMBER';\nvar TSTRING = 'TSTRING';\nvar TPAREN = 'TPAREN';\nvar TBRACKET = 'TBRACKET';\nvar TCOMMA = 'TCOMMA';\nvar TNAME = 'TNAME';\nvar TSEMICOLON = 'TSEMICOLON';\n\nfunction Token(type, value, index) {\n this.type = type;\n this.value = value;\n this.index = index;\n}\n\nToken.prototype.toString = function () {\n return this.type + ': ' + this.value;\n};\n\nfunction TokenStream(parser, expression) {\n this.pos = 0;\n this.current = null;\n this.unaryOps = parser.unaryOps;\n this.binaryOps = parser.binaryOps;\n this.ternaryOps = parser.ternaryOps;\n this.consts = parser.consts;\n this.expression = expression;\n this.savedPosition = 0;\n this.savedCurrent = null;\n this.options = parser.options;\n this.parser = parser;\n}\n\nTokenStream.prototype.newToken = function (type, value, pos) {\n return new Token(type, value, pos != null ? pos : this.pos);\n};\n\nTokenStream.prototype.save = function () {\n this.savedPosition = this.pos;\n this.savedCurrent = this.current;\n};\n\nTokenStream.prototype.restore = function () {\n this.pos = this.savedPosition;\n this.current = this.savedCurrent;\n};\n\nTokenStream.prototype.next = function () {\n if (this.pos >= this.expression.length) {\n return this.newToken(TEOF, 'EOF');\n }\n\n if (this.isWhitespace() || this.isComment()) {\n return this.next();\n } else if (this.isRadixInteger() ||\n this.isNumber() ||\n this.isOperator() ||\n this.isString() ||\n this.isParen() ||\n this.isBracket() ||\n this.isComma() ||\n this.isSemicolon() ||\n this.isNamedOp() ||\n this.isConst() ||\n this.isName()) {\n return this.current;\n } else {\n this.parseError('Unknown character \"' + this.expression.charAt(this.pos) + '\"');\n }\n};\n\nTokenStream.prototype.isString = function () {\n var r = false;\n var startPos = this.pos;\n var quote = this.expression.charAt(startPos);\n\n if (quote === '\\'' || quote === '\"') {\n var index = this.expression.indexOf(quote, startPos + 1);\n while (index >= 0 && this.pos < this.expression.length) {\n this.pos = index + 1;\n if (this.expression.charAt(index - 1) !== '\\\\') {\n var rawString = this.expression.substring(startPos + 1, index);\n this.current = this.newToken(TSTRING, this.unescape(rawString), startPos);\n r = true;\n break;\n }\n index = this.expression.indexOf(quote, index + 1);\n }\n }\n return r;\n};\n\nTokenStream.prototype.isParen = function () {\n var c = this.expression.charAt(this.pos);\n if (c === '(' || c === ')') {\n this.current = this.newToken(TPAREN, c);\n this.pos++;\n return true;\n }\n return false;\n};\n\nTokenStream.prototype.isBracket = function () {\n var c = this.expression.charAt(this.pos);\n if ((c === '[' || c === ']') && this.isOperatorEnabled('[')) {\n this.current = this.newToken(TBRACKET, c);\n this.pos++;\n return true;\n }\n return false;\n};\n\nTokenStream.prototype.isComma = function () {\n var c = this.expression.charAt(this.pos);\n if (c === ',') {\n this.current = this.newToken(TCOMMA, ',');\n this.pos++;\n return true;\n }\n return false;\n};\n\nTokenStream.prototype.isSemicolon = function () {\n var c = this.expression.charAt(this.pos);\n if (c === ';') {\n this.current = this.newToken(TSEMICOLON, ';');\n this.pos++;\n return true;\n }\n return false;\n};\n\nTokenStream.prototype.isConst = function () {\n var startPos = this.pos;\n var i = startPos;\n for (; i < this.expression.length; i++) {\n var c = this.expression.charAt(i);\n if (c.toUpperCase() === c.toLowerCase()) {\n if (i === this.pos || (c !== '_' && c !== '.' && (c < '0' || c > '9'))) {\n break;\n }\n }\n }\n if (i > startPos) {\n var str = this.expression.substring(startPos, i);\n if (str in this.consts) {\n this.current = this.newToken(TNUMBER, this.consts[str]);\n this.pos += str.length;\n return true;\n }\n }\n return false;\n};\n\nTokenStream.prototype.isNamedOp = function () {\n var startPos = this.pos;\n var i = startPos;\n for (; i < this.expression.length; i++) {\n var c = this.expression.charAt(i);\n if (c.toUpperCase() === c.toLowerCase()) {\n if (i === this.pos || (c !== '_' && (c < '0' || c > '9'))) {\n break;\n }\n }\n }\n if (i > startPos) {\n var str = this.expression.substring(startPos, i);\n if (this.isOperatorEnabled(str) && (str in this.binaryOps || str in this.unaryOps || str in this.ternaryOps)) {\n this.current = this.newToken(TOP, str);\n this.pos += str.length;\n return true;\n }\n }\n return false;\n};\n\nTokenStream.prototype.isName = function () {\n var startPos = this.pos;\n var i = startPos;\n var hasLetter = false;\n for (; i < this.expression.length; i++) {\n var c = this.expression.charAt(i);\n if (c.toUpperCase() === c.toLowerCase()) {\n if (i === this.pos && (c === '$' || c === '_')) {\n if (c === '_') {\n hasLetter = true;\n }\n continue;\n } else if (i === this.pos || !hasLetter || (c !== '_' && (c < '0' || c > '9'))) {\n break;\n }\n } else {\n hasLetter = true;\n }\n }\n if (hasLetter) {\n var str = this.expression.substring(startPos, i);\n this.current = this.newToken(TNAME, str);\n this.pos += str.length;\n return true;\n }\n return false;\n};\n\nTokenStream.prototype.isWhitespace = function () {\n var r = false;\n var c = this.expression.charAt(this.pos);\n while (c === ' ' || c === '\\t' || c === '\\n' || c === '\\r') {\n r = true;\n this.pos++;\n if (this.pos >= this.expression.length) {\n break;\n }\n c = this.expression.charAt(this.pos);\n }\n return r;\n};\n\nvar codePointPattern = /^[0-9a-f]{4}$/i;\n\nTokenStream.prototype.unescape = function (v) {\n var index = v.indexOf('\\\\');\n if (index < 0) {\n return v;\n }\n\n var buffer = v.substring(0, index);\n while (index >= 0) {\n var c = v.charAt(++index);\n switch (c) {\n case '\\'':\n buffer += '\\'';\n break;\n case '\"':\n buffer += '\"';\n break;\n case '\\\\':\n buffer += '\\\\';\n break;\n case '/':\n buffer += '/';\n break;\n case 'b':\n buffer += '\\b';\n break;\n case 'f':\n buffer += '\\f';\n break;\n case 'n':\n buffer += '\\n';\n break;\n case 'r':\n buffer += '\\r';\n break;\n case 't':\n buffer += '\\t';\n break;\n case 'u':\n // interpret the following 4 characters as the hex of the unicode code point\n var codePoint = v.substring(index + 1, index + 5);\n if (!codePointPattern.test(codePoint)) {\n this.parseError('Illegal escape sequence: \\\\u' + codePoint);\n }\n buffer += String.fromCharCode(parseInt(codePoint, 16));\n index += 4;\n break;\n default:\n throw this.parseError('Illegal escape sequence: \"\\\\' + c + '\"');\n }\n ++index;\n var backslash = v.indexOf('\\\\', index);\n buffer += v.substring(index, backslash < 0 ? v.length : backslash);\n index = backslash;\n }\n\n return buffer;\n};\n\nTokenStream.prototype.isComment = function () {\n var c = this.expression.charAt(this.pos);\n if (c === '/' && this.expression.charAt(this.pos + 1) === '*') {\n this.pos = this.expression.indexOf('*/', this.pos) + 2;\n if (this.pos === 1) {\n this.pos = this.expression.length;\n }\n return true;\n }\n return false;\n};\n\nTokenStream.prototype.isRadixInteger = function () {\n var pos = this.pos;\n\n if (pos >= this.expression.length - 2 || this.expression.charAt(pos) !== '0') {\n return false;\n }\n ++pos;\n\n var radix;\n var validDigit;\n if (this.expression.charAt(pos) === 'x') {\n radix = 16;\n validDigit = /^[0-9a-f]$/i;\n ++pos;\n } else if (this.expression.charAt(pos) === 'b') {\n radix = 2;\n validDigit = /^[01]$/i;\n ++pos;\n } else {\n return false;\n }\n\n var valid = false;\n var startPos = pos;\n\n while (pos < this.expression.length) {\n var c = this.expression.charAt(pos);\n if (validDigit.test(c)) {\n pos++;\n valid = true;\n } else {\n break;\n }\n }\n\n if (valid) {\n this.current = this.newToken(TNUMBER, parseInt(this.expression.substring(startPos, pos), radix));\n this.pos = pos;\n }\n return valid;\n};\n\nTokenStream.prototype.isNumber = function () {\n var valid = false;\n var pos = this.pos;\n var startPos = pos;\n var resetPos = pos;\n var foundDot = false;\n var foundDigits = false;\n var c;\n\n while (pos < this.expression.length) {\n c = this.expression.charAt(pos);\n if ((c >= '0' && c <= '9') || (!foundDot && c === '.')) {\n if (c === '.') {\n foundDot = true;\n } else {\n foundDigits = true;\n }\n pos++;\n valid = foundDigits;\n } else {\n break;\n }\n }\n\n if (valid) {\n resetPos = pos;\n }\n\n if (c === 'e' || c === 'E') {\n pos++;\n var acceptSign = true;\n var validExponent = false;\n while (pos < this.expression.length) {\n c = this.expression.charAt(pos);\n if (acceptSign && (c === '+' || c === '-')) {\n acceptSign = false;\n } else if (c >= '0' && c <= '9') {\n validExponent = true;\n acceptSign = false;\n } else {\n break;\n }\n pos++;\n }\n\n if (!validExponent) {\n pos = resetPos;\n }\n }\n\n if (valid) {\n this.current = this.newToken(TNUMBER, parseFloat(this.expression.substring(startPos, pos)));\n this.pos = pos;\n } else {\n this.pos = resetPos;\n }\n return valid;\n};\n\nTokenStream.prototype.isOperator = function () {\n var startPos = this.pos;\n var c = this.expression.charAt(this.pos);\n\n if (c === '+' || c === '-' || c === '*' || c === '/' || c === '%' || c === '^' || c === '?' || c === ':' || c === '.') {\n this.current = this.newToken(TOP, c);\n } else if (c === '∙' || c === '•') {\n this.current = this.newToken(TOP, '*');\n } else if (c === '>') {\n if (this.expression.charAt(this.pos + 1) === '=') {\n this.current = this.newToken(TOP, '>=');\n this.pos++;\n } else {\n this.current = this.newToken(TOP, '>');\n }\n } else if (c === '<') {\n if (this.expression.charAt(this.pos + 1) === '=') {\n this.current = this.newToken(TOP, '<=');\n this.pos++;\n } else {\n this.current = this.newToken(TOP, '<');\n }\n } else if (c === '|') {\n if (this.expression.charAt(this.pos + 1) === '|') {\n this.current = this.newToken(TOP, '||');\n this.pos++;\n } else {\n return false;\n }\n } else if (c === '=') {\n if (this.expression.charAt(this.pos + 1) === '=') {\n this.current = this.newToken(TOP, '==');\n this.pos++;\n } else {\n this.current = this.newToken(TOP, c);\n }\n } else if (c === '!') {\n if (this.expression.charAt(this.pos + 1) === '=') {\n this.current = this.newToken(TOP, '!=');\n this.pos++;\n } else {\n this.current = this.newToken(TOP, c);\n }\n } else {\n return false;\n }\n this.pos++;\n\n if (this.isOperatorEnabled(this.current.value)) {\n return true;\n } else {\n this.pos = startPos;\n return false;\n }\n};\n\nTokenStream.prototype.isOperatorEnabled = function (op) {\n return this.parser.isOperatorEnabled(op);\n};\n\nTokenStream.prototype.getCoordinates = function () {\n var line = 0;\n var column;\n var newline = -1;\n do {\n line++;\n column = this.pos - newline;\n newline = this.expression.indexOf('\\n', newline + 1);\n } while (newline >= 0 && newline < this.pos);\n\n return {\n line: line,\n column: column\n };\n};\n\nTokenStream.prototype.parseError = function (msg) {\n var coords = this.getCoordinates();\n throw new Error('parse error [' + coords.line + ':' + coords.column + ']: ' + msg);\n};\n\nfunction ParserState(parser, tokenStream, options) {\n this.parser = parser;\n this.tokens = tokenStream;\n this.current = null;\n this.nextToken = null;\n this.next();\n this.savedCurrent = null;\n this.savedNextToken = null;\n this.allowMemberAccess = options.allowMemberAccess !== false;\n}\n\nParserState.prototype.next = function () {\n this.current = this.nextToken;\n return (this.nextToken = this.tokens.next());\n};\n\nParserState.prototype.tokenMatches = function (token, value) {\n if (typeof value === 'undefined') {\n return true;\n } else if (Array.isArray(value)) {\n return contains(value, token.value);\n } else if (typeof value === 'function') {\n return value(token);\n } else {\n return token.value === value;\n }\n};\n\nParserState.prototype.save = function () {\n this.savedCurrent = this.current;\n this.savedNextToken = this.nextToken;\n this.tokens.save();\n};\n\nParserState.prototype.restore = function () {\n this.tokens.restore();\n this.current = this.savedCurrent;\n this.nextToken = this.savedNextToken;\n};\n\nParserState.prototype.accept = function (type, value) {\n if (this.nextToken.type === type && this.tokenMatches(this.nextToken, value)) {\n this.next();\n return true;\n }\n return false;\n};\n\nParserState.prototype.expect = function (type, value) {\n if (!this.accept(type, value)) {\n var coords = this.tokens.getCoordinates();\n throw new Error('parse error [' + coords.line + ':' + coords.column + ']: Expected ' + (value || type));\n }\n};\n\nParserState.prototype.parseAtom = function (instr) {\n var unaryOps = this.tokens.unaryOps;\n function isPrefixOperator(token) {\n return token.value in unaryOps;\n }\n\n if (this.accept(TNAME) || this.accept(TOP, isPrefixOperator)) {\n instr.push(new Instruction(IVAR, this.current.value));\n } else if (this.accept(TNUMBER)) {\n instr.push(new Instruction(INUMBER, this.current.value));\n } else if (this.accept(TSTRING)) {\n instr.push(new Instruction(INUMBER, this.current.value));\n } else if (this.accept(TPAREN, '(')) {\n this.parseExpression(instr);\n this.expect(TPAREN, ')');\n } else if (this.accept(TBRACKET, '[')) {\n if (this.accept(TBRACKET, ']')) {\n instr.push(new Instruction(IARRAY, 0));\n } else {\n var argCount = this.parseArrayList(instr);\n instr.push(new Instruction(IARRAY, argCount));\n }\n } else {\n throw new Error('unexpected ' + this.nextToken);\n }\n};\n\nParserState.prototype.parseExpression = function (instr) {\n var exprInstr = [];\n if (this.parseUntilEndStatement(instr, exprInstr)) {\n return;\n }\n this.parseVariableAssignmentExpression(exprInstr);\n if (this.parseUntilEndStatement(instr, exprInstr)) {\n return;\n }\n this.pushExpression(instr, exprInstr);\n};\n\nParserState.prototype.pushExpression = function (instr, exprInstr) {\n for (var i = 0, len = exprInstr.length; i < len; i++) {\n instr.push(exprInstr[i]);\n }\n};\n\nParserState.prototype.parseUntilEndStatement = function (instr, exprInstr) {\n if (!this.accept(TSEMICOLON)) return false;\n if (this.nextToken && this.nextToken.type !== TEOF && !(this.nextToken.type === TPAREN && this.nextToken.value === ')')) {\n exprInstr.push(new Instruction(IENDSTATEMENT));\n }\n if (this.nextToken.type !== TEOF) {\n this.parseExpression(exprInstr);\n }\n instr.push(new Instruction(IEXPR, exprInstr));\n return true;\n};\n\nParserState.prototype.parseArrayList = function (instr) {\n var argCount = 0;\n\n while (!this.accept(TBRACKET, ']')) {\n this.parseExpression(instr);\n ++argCount;\n while (this.accept(TCOMMA)) {\n this.parseExpression(instr);\n ++argCount;\n }\n }\n\n return argCount;\n};\n\nParserState.prototype.parseVariableAssignmentExpression = function (instr) {\n this.parseConditionalExpression(instr);\n while (this.accept(TOP, '=')) {\n var varName = instr.pop();\n var varValue = [];\n var lastInstrIndex = instr.length - 1;\n if (varName.type === IFUNCALL) {\n if (!this.tokens.isOperatorEnabled('()=')) {\n throw new Error('function definition is not permitted');\n }\n for (var i = 0, len = varName.value + 1; i < len; i++) {\n var index = lastInstrIndex - i;\n if (instr[index].type === IVAR) {\n instr[index] = new Instruction(IVARNAME, instr[index].value);\n }\n }\n this.parseVariableAssignmentExpression(varValue);\n instr.push(new Instruction(IEXPR, varValue));\n instr.push(new Instruction(IFUNDEF, varName.value));\n continue;\n }\n if (varName.type !== IVAR && varName.type !== IMEMBER) {\n throw new Error('expected variable for assignment');\n }\n this.parseVariableAssignmentExpression(varValue);\n instr.push(new Instruction(IVARNAME, varName.value));\n instr.push(new Instruction(IEXPR, varValue));\n instr.push(binaryInstruction('='));\n }\n};\n\nParserState.prototype.parseConditionalExpression = function (instr) {\n this.parseOrExpression(instr);\n while (this.accept(TOP, '?')) {\n var trueBranch = [];\n var falseBranch = [];\n this.parseConditionalExpression(trueBranch);\n this.expect(TOP, ':');\n this.parseConditionalExpression(falseBranch);\n instr.push(new Instruction(IEXPR, trueBranch));\n instr.push(new Instruction(IEXPR, falseBranch));\n instr.push(ternaryInstruction('?'));\n }\n};\n\nParserState.prototype.parseOrExpression = function (instr) {\n this.parseAndExpression(instr);\n while (this.accept(TOP, 'or')) {\n var falseBranch = [];\n this.parseAndExpression(falseBranch);\n instr.push(new Instruction(IEXPR, falseBranch));\n instr.push(binaryInstruction('or'));\n }\n};\n\nParserState.prototype.parseAndExpression = function (instr) {\n this.parseComparison(instr);\n while (this.accept(TOP, 'and')) {\n var trueBranch = [];\n this.parseComparison(trueBranch);\n instr.push(new Instruction(IEXPR, trueBranch));\n instr.push(binaryInstruction('and'));\n }\n};\n\nvar COMPARISON_OPERATORS = ['==', '!=', '<', '<=', '>=', '>', 'in'];\n\nParserState.prototype.parseComparison = function (instr) {\n this.parseAddSub(instr);\n while (this.accept(TOP, COMPARISON_OPERATORS)) {\n var op = this.current;\n this.parseAddSub(instr);\n instr.push(binaryInstruction(op.value));\n }\n};\n\nvar ADD_SUB_OPERATORS = ['+', '-', '||'];\n\nParserState.prototype.parseAddSub = function (instr) {\n this.parseTerm(instr);\n while (this.accept(TOP, ADD_SUB_OPERATORS)) {\n var op = this.current;\n this.parseTerm(instr);\n instr.push(binaryInstruction(op.value));\n }\n};\n\nvar TERM_OPERATORS = ['*', '/', '%'];\n\nParserState.prototype.parseTerm = function (instr) {\n this.parseFactor(instr);\n while (this.accept(TOP, TERM_OPERATORS)) {\n var op = this.current;\n this.parseFactor(instr);\n instr.push(binaryInstruction(op.value));\n }\n};\n\nParserState.prototype.parseFactor = function (instr) {\n var unaryOps = this.tokens.unaryOps;\n function isPrefixOperator(token) {\n return token.value in unaryOps;\n }\n\n this.save();\n if (this.accept(TOP, isPrefixOperator)) {\n if (this.current.value !== '-' && this.current.value !== '+') {\n if (this.nextToken.type === TPAREN && this.nextToken.value === '(') {\n this.restore();\n this.parseExponential(instr);\n return;\n } else if (this.nextToken.type === TSEMICOLON || this.nextToken.type === TCOMMA || this.nextToken.type === TEOF || (this.nextToken.type === TPAREN && this.nextToken.value === ')')) {\n this.restore();\n this.parseAtom(instr);\n return;\n }\n }\n\n var op = this.current;\n this.parseFactor(instr);\n instr.push(unaryInstruction(op.value));\n } else {\n this.parseExponential(instr);\n }\n};\n\nParserState.prototype.parseExponential = function (instr) {\n this.parsePostfixExpression(instr);\n while (this.accept(TOP, '^')) {\n this.parseFactor(instr);\n instr.push(binaryInstruction('^'));\n }\n};\n\nParserState.prototype.parsePostfixExpression = function (instr) {\n this.parseFunctionCall(instr);\n while (this.accept(TOP, '!')) {\n instr.push(unaryInstruction('!'));\n }\n};\n\nParserState.prototype.parseFunctionCall = function (instr) {\n var unaryOps = this.tokens.unaryOps;\n function isPrefixOperator(token) {\n return token.value in unaryOps;\n }\n\n if (this.accept(TOP, isPrefixOperator)) {\n var op = this.current;\n this.parseAtom(instr);\n instr.push(unaryInstruction(op.value));\n } else {\n this.parseMemberExpression(instr);\n while (this.accept(TPAREN, '(')) {\n if (this.accept(TPAREN, ')')) {\n instr.push(new Instruction(IFUNCALL, 0));\n } else {\n var argCount = this.parseArgumentList(instr);\n instr.push(new Instruction(IFUNCALL, argCount));\n }\n }\n }\n};\n\nParserState.prototype.parseArgumentList = function (instr) {\n var argCount = 0;\n\n while (!this.accept(TPAREN, ')')) {\n this.parseExpression(instr);\n ++argCount;\n while (this.accept(TCOMMA)) {\n this.parseExpression(instr);\n ++argCount;\n }\n }\n\n return argCount;\n};\n\nParserState.prototype.parseMemberExpression = function (instr) {\n this.parseAtom(instr);\n while (this.accept(TOP, '.') || this.accept(TBRACKET, '[')) {\n var op = this.current;\n\n if (op.value === '.') {\n if (!this.allowMemberAccess) {\n throw new Error('unexpected \".\", member access is not permitted');\n }\n\n this.expect(TNAME);\n instr.push(new Instruction(IMEMBER, this.current.value));\n } else if (op.value === '[') {\n if (!this.tokens.isOperatorEnabled('[')) {\n throw new Error('unexpected \"[]\", arrays are disabled');\n }\n\n this.parseExpression(instr);\n this.expect(TBRACKET, ']');\n instr.push(binaryInstruction('['));\n } else {\n throw new Error('unexpected symbol: ' + op.value);\n }\n }\n};\n\nfunction add(a, b) {\n return Number(a) + Number(b);\n}\n\nfunction sub(a, b) {\n return a - b;\n}\n\nfunction mul(a, b) {\n return a * b;\n}\n\nfunction div(a, b) {\n return a / b;\n}\n\nfunction mod(a, b) {\n return a % b;\n}\n\nfunction concat(a, b) {\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.concat(b);\n }\n return '' + a + b;\n}\n\nfunction equal(a, b) {\n return a === b;\n}\n\nfunction notEqual(a, b) {\n return a !== b;\n}\n\nfunction greaterThan(a, b) {\n return a > b;\n}\n\nfunction lessThan(a, b) {\n return a < b;\n}\n\nfunction greaterThanEqual(a, b) {\n return a >= b;\n}\n\nfunction lessThanEqual(a, b) {\n return a <= b;\n}\n\nfunction andOperator(a, b) {\n return Boolean(a && b);\n}\n\nfunction orOperator(a, b) {\n return Boolean(a || b);\n}\n\nfunction inOperator(a, b) {\n return contains(b, a);\n}\n\nfunction sinh(a) {\n return ((Math.exp(a) - Math.exp(-a)) / 2);\n}\n\nfunction cosh(a) {\n return ((Math.exp(a) + Math.exp(-a)) / 2);\n}\n\nfunction tanh(a) {\n if (a === Infinity) return 1;\n if (a === -Infinity) return -1;\n return (Math.exp(a) - Math.exp(-a)) / (Math.exp(a) + Math.exp(-a));\n}\n\nfunction asinh(a) {\n if (a === -Infinity) return a;\n return Math.log(a + Math.sqrt((a * a) + 1));\n}\n\nfunction acosh(a) {\n return Math.log(a + Math.sqrt((a * a) - 1));\n}\n\nfunction atanh(a) {\n return (Math.log((1 + a) / (1 - a)) / 2);\n}\n\nfunction log10(a) {\n return Math.log(a) * Math.LOG10E;\n}\n\nfunction neg(a) {\n return -a;\n}\n\nfunction not(a) {\n return !a;\n}\n\nfunction trunc(a) {\n return a < 0 ? Math.ceil(a) : Math.floor(a);\n}\n\nfunction random(a) {\n return Math.random() * (a || 1);\n}\n\nfunction factorial(a) { // a!\n return gamma(a + 1);\n}\n\nfunction isInteger(value) {\n return isFinite(value) && (value === Math.round(value));\n}\n\nvar GAMMA_G = 4.7421875;\nvar GAMMA_P = [\n 0.99999999999999709182,\n 57.156235665862923517, -59.597960355475491248,\n 14.136097974741747174, -0.49191381609762019978,\n 0.33994649984811888699e-4,\n 0.46523628927048575665e-4, -0.98374475304879564677e-4,\n 0.15808870322491248884e-3, -0.21026444172410488319e-3,\n 0.21743961811521264320e-3, -0.16431810653676389022e-3,\n 0.84418223983852743293e-4, -0.26190838401581408670e-4,\n 0.36899182659531622704e-5\n];\n\n// Gamma function from math.js\nfunction gamma(n) {\n var t, x;\n\n if (isInteger(n)) {\n if (n <= 0) {\n return isFinite(n) ? Infinity : NaN;\n }\n\n if (n > 171) {\n return Infinity; // Will overflow\n }\n\n var value = n - 2;\n var res = n - 1;\n while (value > 1) {\n res *= value;\n value--;\n }\n\n if (res === 0) {\n res = 1; // 0! is per definition 1\n }\n\n return res;\n }\n\n if (n < 0.5) {\n return Math.PI / (Math.sin(Math.PI * n) * gamma(1 - n));\n }\n\n if (n >= 171.35) {\n return Infinity; // will overflow\n }\n\n if (n > 85.0) { // Extended Stirling Approx\n var twoN = n * n;\n var threeN = twoN * n;\n var fourN = threeN * n;\n var fiveN = fourN * n;\n return Math.sqrt(2 * Math.PI / n) * Math.pow((n / Math.E), n) *\n (1 + (1 / (12 * n)) + (1 / (288 * twoN)) - (139 / (51840 * threeN)) -\n (571 / (2488320 * fourN)) + (163879 / (209018880 * fiveN)) +\n (5246819 / (75246796800 * fiveN * n)));\n }\n\n --n;\n x = GAMMA_P[0];\n for (var i = 1; i < GAMMA_P.length; ++i) {\n x += GAMMA_P[i] / (n + i);\n }\n\n t = n + GAMMA_G + 0.5;\n return Math.sqrt(2 * Math.PI) * Math.pow(t, n + 0.5) * Math.exp(-t) * x;\n}\n\nfunction stringOrArrayLength(s) {\n if (Array.isArray(s)) {\n return s.length;\n }\n return String(s).length;\n}\n\nfunction hypot() {\n var sum = 0;\n var larg = 0;\n for (var i = 0; i < arguments.length; i++) {\n var arg = Math.abs(arguments[i]);\n var div;\n if (larg < arg) {\n div = larg / arg;\n sum = (sum * div * div) + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else {\n sum += arg;\n }\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n}\n\nfunction condition(cond, yep, nope) {\n return cond ? yep : nope;\n}\n\n/**\n* Decimal adjustment of a number.\n* From @escopecz.\n*\n* @param {Number} value The number.\n* @param {Integer} exp The exponent (the 10 logarithm of the adjustment base).\n* @return {Number} The adjusted value.\n*/\nfunction roundTo(value, exp) {\n // If the exp is undefined or zero...\n if (typeof exp === 'undefined' || +exp === 0) {\n return Math.round(value);\n }\n value = +value;\n exp = -(+exp);\n // If the value is not a number or the exp is not an integer...\n if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {\n return NaN;\n }\n // Shift\n value = value.toString().split('e');\n value = Math.round(+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp)));\n // Shift back\n value = value.toString().split('e');\n return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp));\n}\n\nfunction setVar(name, value, variables) {\n if (variables) variables[name] = value;\n return value;\n}\n\nfunction arrayIndex(array, index) {\n return array[index | 0];\n}\n\nfunction max(array) {\n if (arguments.length === 1 && Array.isArray(array)) {\n return Math.max.apply(Math, array);\n } else {\n return Math.max.apply(Math, arguments);\n }\n}\n\nfunction min(array) {\n if (arguments.length === 1 && Array.isArray(array)) {\n return Math.min.apply(Math, array);\n } else {\n return Math.min.apply(Math, arguments);\n }\n}\n\nfunction arrayMap(f, a) {\n if (typeof f !== 'function') {\n throw new Error('First argument to map is not a function');\n }\n if (!Array.isArray(a)) {\n throw new Error('Second argument to map is not an array');\n }\n return a.map(function (x, i) {\n return f(x, i);\n });\n}\n\nfunction arrayFold(f, init, a) {\n if (typeof f !== 'function') {\n throw new Error('First argument to fold is not a function');\n }\n if (!Array.isArray(a)) {\n throw new Error('Second argument to fold is not an array');\n }\n return a.reduce(function (acc, x, i) {\n return f(acc, x, i);\n }, init);\n}\n\nfunction arrayFilter(f, a) {\n if (typeof f !== 'function') {\n throw new Error('First argument to filter is not a function');\n }\n if (!Array.isArray(a)) {\n throw new Error('Second argument to filter is not an array');\n }\n return a.filter(function (x, i) {\n return f(x, i);\n });\n}\n\nfunction stringOrArrayIndexOf(target, s) {\n if (!(Array.isArray(s) || typeof s === 'string')) {\n throw new Error('Second argument to indexOf is not a string or array');\n }\n\n return s.indexOf(target);\n}\n\nfunction arrayJoin(sep, a) {\n if (!Array.isArray(a)) {\n throw new Error('Second argument to join is not an array');\n }\n\n return a.join(sep);\n}\n\nfunction sign(x) {\n return ((x > 0) - (x < 0)) || +x;\n}\n\nvar ONE_THIRD = 1/3;\nfunction cbrt(x) {\n return x < 0 ? -Math.pow(-x, ONE_THIRD) : Math.pow(x, ONE_THIRD);\n}\n\nfunction expm1(x) {\n return Math.exp(x) - 1;\n}\n\nfunction log1p(x) {\n return Math.log(1 + x);\n}\n\nfunction log2(x) {\n return Math.log(x) / Math.LN2;\n}\n\nfunction Parser(options) {\n this.options = options || {};\n this.unaryOps = {\n sin: Math.sin,\n cos: Math.cos,\n tan: Math.tan,\n asin: Math.asin,\n acos: Math.acos,\n atan: Math.atan,\n sinh: Math.sinh || sinh,\n cosh: Math.cosh || cosh,\n tanh: Math.tanh || tanh,\n asinh: Math.asinh || asinh,\n acosh: Math.acosh || acosh,\n atanh: Math.atanh || atanh,\n sqrt: Math.sqrt,\n cbrt: Math.cbrt || cbrt,\n log: Math.log,\n log2: Math.log2 || log2,\n ln: Math.log,\n lg: Math.log10 || log10,\n log10: Math.log10 || log10,\n expm1: Math.expm1 || expm1,\n log1p: Math.log1p || log1p,\n abs: Math.abs,\n ceil: Math.ceil,\n floor: Math.floor,\n round: Math.round,\n trunc: Math.trunc || trunc,\n '-': neg,\n '+': Number,\n exp: Math.exp,\n not: not,\n length: stringOrArrayLength,\n '!': factorial,\n sign: Math.sign || sign\n };\n\n this.binaryOps = {\n '+': add,\n '-': sub,\n '*': mul,\n '/': div,\n '%': mod,\n '^': Math.pow,\n '||': concat,\n '==': equal,\n '!=': notEqual,\n '>': greaterThan,\n '<': lessThan,\n '>=': greaterThanEqual,\n '<=': lessThanEqual,\n and: andOperator,\n or: orOperator,\n 'in': inOperator,\n '=': setVar,\n '[': arrayIndex\n };\n\n this.ternaryOps = {\n '?': condition\n };\n\n this.functions = {\n random: random,\n fac: factorial,\n min: min,\n max: max,\n hypot: Math.hypot || hypot,\n pyt: Math.hypot || hypot, // backward compat\n pow: Math.pow,\n atan2: Math.atan2,\n 'if': condition,\n gamma: gamma,\n roundTo: roundTo,\n map: arrayMap,\n fold: arrayFold,\n filter: arrayFilter,\n indexOf: stringOrArrayIndexOf,\n join: arrayJoin\n };\n\n this.consts = {\n E: Math.E,\n PI: Math.PI,\n 'true': true,\n 'false': false\n };\n}\n\nParser.prototype.parse = function (expr) {\n var instr = [];\n var parserState = new ParserState(\n this,\n new TokenStream(this, expr),\n { allowMemberAccess: this.options.allowMemberAccess }\n );\n\n parserState.parseExpression(instr);\n parserState.expect(TEOF, 'EOF');\n\n return new Expression(instr, this);\n};\n\nParser.prototype.evaluate = function (expr, variables) {\n return this.parse(expr).evaluate(variables);\n};\n\nvar sharedParser = new Parser();\n\nParser.parse = function (expr) {\n return sharedParser.parse(expr);\n};\n\nParser.evaluate = function (expr, variables) {\n return sharedParser.parse(expr).evaluate(variables);\n};\n\nvar optionNameMap = {\n '+': 'add',\n '-': 'subtract',\n '*': 'multiply',\n '/': 'divide',\n '%': 'remainder',\n '^': 'power',\n '!': 'factorial',\n '<': 'comparison',\n '>': 'comparison',\n '<=': 'comparison',\n '>=': 'comparison',\n '==': 'comparison',\n '!=': 'comparison',\n '||': 'concatenate',\n 'and': 'logical',\n 'or': 'logical',\n 'not': 'logical',\n '?': 'conditional',\n ':': 'conditional',\n '=': 'assignment',\n '[': 'array',\n '()=': 'fndef'\n};\n\nfunction getOptionName(op) {\n return optionNameMap.hasOwnProperty(op) ? optionNameMap[op] : op;\n}\n\nParser.prototype.isOperatorEnabled = function (op) {\n var optionName = getOptionName(op);\n var operators = this.options.operators || {};\n\n return !(optionName in operators) || !!operators[optionName];\n};\n\n/*!\n Based on ndef.parser, by Raphael Graf(r@undefined.ch)\n http://www.undefined.ch/mparser/index.html\n\n Ported to JavaScript and modified by Matthew Crumley (email@matthewcrumley.com, http://silentmatt.com/)\n\n You are free to use and modify this code in anyway you find useful. Please leave this comment in the code\n to acknowledge its original source. If you feel like it, I enjoy hearing about projects that use my code,\n but don't feel like you have to let me know or ask permission.\n*/\n\n// Backwards compatibility\nvar index = {\n Parser: Parser,\n Expression: Expression\n};\n\nexport default index;\nexport { Expression, Parser };\n","/**\n * A2UI 绑定解析工具\n * 提供路径绑定和表达式绑定的运行时解析能力\n */\n\nimport { Parser, type Values } from 'expr-eval';\nimport type { PathBinding, ExprBinding, Bindable } from '../types/types';\n\n// 创建 expr-eval Parser 实例\nconst parser = new Parser();\n\n/**\n * 判断是否为路径绑定\n */\nexport function isPathBinding(value: unknown): value is PathBinding {\n return typeof value === 'object' && value !== null && 'path' in value && !('expr' in value);\n}\n\n/**\n * 判断是否为表达式绑定\n */\nexport function isExprBinding(value: unknown): value is ExprBinding {\n return typeof value === 'object' && value !== null && 'expr' in value;\n}\n\n/**\n * 解析绑定值\n */\nexport function resolveBinding<T>(\n value: Bindable<T>,\n data: Record<string, unknown>,\n contextPath = '/'\n): T {\n // 表达式绑定\n if (isExprBinding(value)) {\n return resolveExprBinding(value, data, contextPath) as T;\n }\n \n // 路径绑定\n if (isPathBinding(value)) {\n return resolvePathBinding(value.path, data, contextPath) as T;\n }\n\n // 字面值\n return value;\n}\n\n/**\n * 解析路径绑定\n */\nexport function resolvePathBinding(\n path: string,\n data: Record<string, unknown>,\n contextPath: string\n): unknown {\n // 处理路径\n let fullPath = path;\n \n if (!path.startsWith('/')) {\n // 相对路径,与 contextPath 结合\n if (!contextPath || contextPath === '/') {\n fullPath = `/${path}`;\n } else {\n fullPath = `${contextPath}/${path}`;\n }\n }\n\n // 规范化路径\n fullPath = fullPath.replace(/\\/+/g, '/');\n\n const segments = fullPath.split('/').filter(Boolean);\n let result: unknown = data;\n\n for (const segment of segments) {\n if (result === null || result === undefined) {\n return undefined;\n }\n result = (result as Record<string, unknown>)[segment];\n }\n\n return result;\n}\n\n/**\n * 解析表达式绑定\n * 使用 expr-eval 库进行安全的表达式求值\n */\nexport function resolveExprBinding(\n binding: ExprBinding,\n data: Record<string, unknown>,\n contextPath: string\n): unknown {\n const { expr, vars = {}, format } = binding;\n \n // 解析所有变量\n const resolvedVars: Record<string, unknown> = {};\n for (const [key, varBinding] of Object.entries(vars)) {\n if (isPathBinding(varBinding)) {\n resolvedVars[key] = resolvePathBinding(varBinding.path, data, contextPath);\n } else if (isExprBinding(varBinding)) {\n resolvedVars[key] = resolveExprBinding(varBinding, data, contextPath);\n } else {\n resolvedVars[key] = varBinding;\n }\n }\n \n // 执行表达式\n try {\n const result = evaluateExpression(expr, resolvedVars);\n \n // 应用格式化\n if (format && typeof result === 'number') {\n return formatValue(result, format);\n }\n \n return result;\n } catch (e) {\n console.warn('Expression evaluation error:', e);\n return undefined;\n }\n}\n\n/**\n * 使用 expr-eval 进行安全的表达式求值\n */\nexport function evaluateExpression(\n expr: string,\n vars: Record<string, unknown>\n): unknown {\n // 预处理变量\n const processedVars: Values = {};\n let hasString = false;\n \n for (const [key, value] of Object.entries(vars)) {\n if (Array.isArray(value)) {\n processedVars[key] = value.length;\n } else if (typeof value === 'number') {\n processedVars[key] = value;\n } else if (typeof value === 'string') {\n processedVars[key] = value;\n hasString = true;\n } else if (typeof value === 'boolean') {\n processedVars[key] = value ? 1 : 0;\n } else if (value === null || value === undefined) {\n processedVars[key] = 0;\n } else {\n processedVars[key] = String(value);\n hasString = true;\n }\n }\n \n // 检测是否为字符串拼接表达式\n const hasStringLiteral = /\"[^\"]*\"/.test(expr);\n \n if (hasString || hasStringLiteral) {\n return evaluateStringExpression(expr, processedVars);\n }\n \n // 纯数学表达式\n const parsedExpr = parser.parse(expr);\n return parsedExpr.evaluate(processedVars);\n}\n\n/**\n * 处理包含字符串的表达式\n */\nfunction evaluateStringExpression(\n expr: string,\n vars: Values\n): unknown {\n let processedExpr = expr;\n \n // 替换变量\n for (const [key, value] of Object.entries(vars)) {\n const regex = new RegExp(`\\\\b${key}\\\\b`, 'g');\n if (typeof value === 'number') {\n processedExpr = processedExpr.replace(regex, String(value));\n } else if (typeof value === 'string') {\n processedExpr = processedExpr.replace(regex, `\"${value}\"`);\n }\n }\n \n // 安全检查\n const dangerousPatterns = [\n /\\beval\\b/i,\n /\\bFunction\\b/,\n /\\bwindow\\b/i,\n /\\bdocument\\b/i,\n /\\bglobal\\b/i,\n /\\bprocess\\b/i,\n /\\brequire\\b/i,\n /\\bimport\\b/i,\n /\\bexport\\b/i,\n /\\b__proto__\\b/,\n /\\bconstructor\\b/,\n /\\bprototype\\b/,\n /\\bfetch\\b/i,\n /\\bXMLHttpRequest\\b/i,\n ];\n \n for (const pattern of dangerousPatterns) {\n if (pattern.test(processedExpr)) {\n throw new Error('Unsafe expression: contains forbidden pattern');\n }\n }\n \n // eslint-disable-next-line no-new-func\n return new Function(`return (${processedExpr})`)();\n}\n\n/**\n * 格式化数值\n */\nexport function formatValue(value: number, format: string): string {\n switch (format) {\n case 'currency':\n return `¥${value.toFixed(2)}`;\n case 'currency-int':\n return `¥${value}`;\n case 'percent':\n return `${(value * 100).toFixed(0)}%`;\n default:\n return String(value);\n }\n}\n"],"names":["INUMBER","IOP1","IOP2","IOP3","IVAR","IVARNAME","IFUNCALL","IFUNDEF","IEXPR","IEXPREVAL","IMEMBER","IENDSTATEMENT","IARRAY","Instruction","type","value","undefined","prototype","toString","unaryInstruction","binaryInstruction","ternaryInstruction","simplify","tokens","unaryOps","binaryOps","ternaryOps","values","nstack","newexpression","n1","n2","n3","f","i","length","item","Array","isArray","push","apply","map","x","concat","hasOwnProperty","pop","shift","substitute","variable","expr","j","expritem","replitem","evaluate","args","argCount","isExpressionEvaluator","resolveExpression","numTokens","functions","parser","isOperatorEnabled","v","Error","unshift","call","scope","Object","assign","len","arguments","defineProperty","writable","createExpressionEvaluator","token","n","expressionToString","toJS","escapeValue","join","String","JSON","stringify","replace","contains","array","obj","getSymbols","symbols","options","withMembers","prevVar","Expression","parse","vars","variables","filter","name","toJSFunction","param","Function","TEOF","TOP","TNUMBER","TSTRING","TPAREN","TBRACKET","TCOMMA","TNAME","TSEMICOLON","Token","index","TokenStream","expression","pos","current","consts","savedPosition","savedCurrent","newToken","save","restore","next","isWhitespace","isComment","isRadixInteger","isNumber","isOperator","isString","isParen","isBracket","isComma","isSemicolon","isNamedOp","isConst","isName","parseError","charAt","r","startPos","quote","indexOf","rawString","substring","unescape","c","toUpperCase","toLowerCase","str","hasLetter","codePointPattern","buffer","codePoint","test","fromCharCode","parseInt","backslash","radix","validDigit","valid","resetPos","foundDot","foundDigits","acceptSign","validExponent","parseFloat","op","getCoordinates","line","column","newline","msg","coords","ParserState","tokenStream","nextToken","savedNextToken","allowMemberAccess","tokenMatches","accept","expect","parseAtom","instr","isPrefixOperator","parseExpression","parseArrayList","exprInstr","parseUntilEndStatement","parseVariableAssignmentExpression","pushExpression","parseConditionalExpression","varName","varValue","lastInstrIndex","parseOrExpression","trueBranch","falseBranch","parseAndExpression","parseComparison","COMPARISON_OPERATORS","parseAddSub","ADD_SUB_OPERATORS","parseTerm","TERM_OPERATORS","parseFactor","parseExponential","parsePostfixExpression","parseFunctionCall","parseMemberExpression","parseArgumentList","add","a","b","Number","sub","mul","div","mod","equal","notEqual","greaterThan","lessThan","greaterThanEqual","lessThanEqual","andOperator","Boolean","orOperator","inOperator","sinh","Math","exp","cosh","tanh","Infinity","asinh","log","sqrt","acosh","atanh","log10","LOG10E","neg","not","trunc","ceil","floor","random","factorial","gamma","isInteger","isFinite","round","GAMMA_G","GAMMA_P","t","NaN","res","PI","sin","twoN","threeN","fourN","fiveN","pow","E","stringOrArrayLength","s","hypot","sum","larg","arg","abs","condition","cond","yep","nope","roundTo","isNaN","split","setVar","arrayIndex","max","min","arrayMap","arrayFold","init","reduce","acc","arrayFilter","stringOrArrayIndexOf","target","arrayJoin","sep","sign","ONE_THIRD","cbrt","expm1","log1p","log2","LN2","Parser","cos","tan","asin","acos","atan","ln","lg","and","or","fac","pyt","atan2","fold","parserState","sharedParser","optionNameMap","getOptionName","optionName","operators","isPathBinding","_typeof","isExprBinding","resolveBinding","data","contextPath","resolveExprBinding","resolvePathBinding","path","fullPath","startsWith","segments","result","_iterator","_createForOfIteratorHelper","_step","done","segment","err","e","binding","_binding$vars","format","resolvedVars","_i","_Object$entries","entries","_Object$entries$_i","_slicedToArray","key","varBinding","evaluateExpression","formatValue","console","warn","processedVars","hasString","_i2","_Object$entries2","_Object$entries2$_i","hasStringLiteral","evaluateStringExpression","parsedExpr","processedExpr","_i3","_Object$entries3","_Object$entries3$_i","regex","RegExp","dangerousPatterns","_i4","_dangerousPatterns","pattern","toFixed"],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2UI 工具函数导出
|
|
3
|
+
*/
|
|
4
|
+
export { isPathBinding, isExprBinding, resolveBinding, resolvePathBinding, resolveExprBinding, evaluateExpression, formatValue, } from './binding';
|
|
5
|
+
export { validateComponent, validateOperation, validateAction, validateBindingPath, validateOperations, safeParseJSON, formatValidationErrors, type A2UIValidationError, type A2UIValidationErrorType, type A2UIValidationResult, type A2UIValidationOptions, } from './validation';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.0.2-alpha.14
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export { evaluateExpression, formatValue, isExprBinding, isPathBinding, resolveBinding, resolveExprBinding, resolvePathBinding } from './binding.js';
|
|
8
|
+
export { formatValidationErrors, safeParseJSON, validateAction, validateBindingPath, validateComponent, validateOperation, validateOperations } from './validation.js';
|
|
9
|
+
import '@babel/runtime/helpers/slicedToArray';
|
|
10
|
+
import '@babel/runtime/helpers/typeof';
|
|
11
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
12
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2UI 协议解析容错工具
|
|
3
|
+
* 提供数据验证、默认值填充、错误恢复等能力
|
|
4
|
+
*/
|
|
5
|
+
import type { A2UIComponent, A2UIOperation, A2UIAction } from '../types';
|
|
6
|
+
export type A2UIValidationErrorType = 'INVALID_COMPONENT' | 'INVALID_OPERATION' | 'INVALID_SURFACE' | 'INVALID_ACTION' | 'MISSING_REQUIRED_FIELD' | 'TYPE_MISMATCH' | 'UNKNOWN_COMPONENT_TYPE';
|
|
7
|
+
export interface A2UIValidationError {
|
|
8
|
+
type: A2UIValidationErrorType;
|
|
9
|
+
message: string;
|
|
10
|
+
path?: string;
|
|
11
|
+
value?: unknown;
|
|
12
|
+
recoverable: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface A2UIValidationResult<T> {
|
|
15
|
+
success: boolean;
|
|
16
|
+
data?: T;
|
|
17
|
+
errors: A2UIValidationError[];
|
|
18
|
+
/** 是否进行了自动修复 */
|
|
19
|
+
repaired: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface A2UIValidationOptions {
|
|
22
|
+
/** 是否严格模式(默认 false,宽松模式会尝试修复) */
|
|
23
|
+
strict?: boolean;
|
|
24
|
+
/** 是否输出警告日志(默认 true) */
|
|
25
|
+
logWarnings?: boolean;
|
|
26
|
+
/** 已知的组件类型列表(用于校验) */
|
|
27
|
+
knownComponentTypes?: string[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 验证并修复组件数据
|
|
31
|
+
*/
|
|
32
|
+
export declare function validateComponent(component: unknown, options?: A2UIValidationOptions): A2UIValidationResult<A2UIComponent>;
|
|
33
|
+
/**
|
|
34
|
+
* 验证并修复操作数据
|
|
35
|
+
*/
|
|
36
|
+
export declare function validateOperation(operation: unknown, options?: A2UIValidationOptions): A2UIValidationResult<A2UIOperation>;
|
|
37
|
+
/**
|
|
38
|
+
* 验证 Action 数据
|
|
39
|
+
*/
|
|
40
|
+
export declare function validateAction(action: unknown, options?: A2UIValidationOptions): A2UIValidationResult<A2UIAction>;
|
|
41
|
+
/**
|
|
42
|
+
* 验证数据绑定路径
|
|
43
|
+
*/
|
|
44
|
+
export declare function validateBindingPath(path: unknown): {
|
|
45
|
+
valid: boolean;
|
|
46
|
+
path?: string;
|
|
47
|
+
error?: string;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* 安全解析 JSON
|
|
51
|
+
*/
|
|
52
|
+
export declare function safeParseJSON<T = unknown>(json: string, fallback: T): {
|
|
53
|
+
success: boolean;
|
|
54
|
+
data: T;
|
|
55
|
+
error?: Error;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* 批量验证操作列表
|
|
59
|
+
*/
|
|
60
|
+
export declare function validateOperations(operations: unknown[], options?: A2UIValidationOptions): {
|
|
61
|
+
valid: A2UIOperation[];
|
|
62
|
+
invalid: Array<{
|
|
63
|
+
index: number;
|
|
64
|
+
errors: A2UIValidationError[];
|
|
65
|
+
}>;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* 格式化验证错误为可读字符串
|
|
69
|
+
*/
|
|
70
|
+
export declare function formatValidationErrors(errors: A2UIValidationError[]): string;
|