├── .editorconfig ├── .github └── workflows │ └── CI.yml ├── .gitignore ├── Bin ├── BuildCodeBlocks.sh ├── BuildMSVC2019.cmd ├── BuildMSVC2022.cmd ├── BuildMakefiles.sh ├── BuildXcode.command ├── GenerateCodeBlocks.sh ├── GenerateDocs.cmd ├── GenerateHeader.cmd ├── GenerateMSVC2019.cmd ├── GenerateMSVC2022.cmd ├── GenerateMakefiles.sh ├── GenerateXcode.command ├── Heady.exe ├── Jinx.cfg ├── ProcessDocs.cmd ├── doxygen.exe ├── doxyindexer.exe ├── doxysearch.cgi.exe └── libclang.dll ├── CMakeLists.txt ├── Docs ├── API │ └── html │ │ ├── _jinx_8h.html │ │ ├── _jinx_8h_source.html │ │ ├── _jx_buffer_8h.html │ │ ├── _jx_buffer_8h_source.html │ │ ├── _jx_collection_8h.html │ │ ├── _jx_collection_8h_source.html │ │ ├── _jx_variant_8h.html │ │ ├── _jx_variant_8h_source.html │ │ ├── annotated.html │ │ ├── bc_s.png │ │ ├── bdwn.png │ │ ├── class_jinx_1_1_buffer-members.html │ │ ├── class_jinx_1_1_buffer.html │ │ ├── class_jinx_1_1_i_library-members.html │ │ ├── class_jinx_1_1_i_library.html │ │ ├── class_jinx_1_1_i_runtime-members.html │ │ ├── class_jinx_1_1_i_runtime.html │ │ ├── class_jinx_1_1_i_script-members.html │ │ ├── class_jinx_1_1_i_script.html │ │ ├── class_jinx_1_1_i_user_object-members.html │ │ ├── class_jinx_1_1_i_user_object.html │ │ ├── class_jinx_1_1_variant-members.html │ │ ├── class_jinx_1_1_variant.html │ │ ├── classes.html │ │ ├── closed.png │ │ ├── dir_74389ed8173ad57b461b9d623a1f3867.html │ │ ├── doc.png │ │ ├── doxygen.css │ │ ├── doxygen.png │ │ ├── dynsections.js │ │ ├── files.html │ │ ├── folderclosed.png │ │ ├── folderopen.png │ │ ├── functions.html │ │ ├── functions_func.html │ │ ├── functions_vars.html │ │ ├── index.html │ │ ├── jquery.js │ │ ├── menu.js │ │ ├── menudata.js │ │ ├── nav_f.png │ │ ├── nav_g.png │ │ ├── nav_h.png │ │ ├── open.png │ │ ├── search │ │ ├── all_0.html │ │ ├── all_0.js │ │ ├── all_1.html │ │ ├── all_1.js │ │ ├── all_2.html │ │ ├── all_2.js │ │ ├── all_3.html │ │ ├── all_3.js │ │ ├── all_4.html │ │ ├── all_4.js │ │ ├── all_5.html │ │ ├── all_5.js │ │ ├── all_6.html │ │ ├── all_6.js │ │ ├── all_7.html │ │ ├── all_7.js │ │ ├── all_8.html │ │ ├── all_8.js │ │ ├── all_9.html │ │ ├── all_9.js │ │ ├── all_a.html │ │ ├── all_a.js │ │ ├── all_b.html │ │ ├── all_b.js │ │ ├── all_c.html │ │ ├── all_c.js │ │ ├── all_d.html │ │ ├── all_d.js │ │ ├── classes_0.html │ │ ├── classes_0.js │ │ ├── classes_1.html │ │ ├── classes_1.js │ │ ├── classes_2.html │ │ ├── classes_2.js │ │ ├── classes_3.html │ │ ├── classes_3.js │ │ ├── classes_4.html │ │ ├── classes_4.js │ │ ├── close.png │ │ ├── enums_0.html │ │ ├── enums_0.js │ │ ├── enums_1.html │ │ ├── enums_1.js │ │ ├── enums_2.html │ │ ├── enums_2.js │ │ ├── files_0.html │ │ ├── files_0.js │ │ ├── functions_0.html │ │ ├── functions_0.js │ │ ├── functions_1.html │ │ ├── functions_1.js │ │ ├── functions_2.html │ │ ├── functions_2.js │ │ ├── functions_3.html │ │ ├── functions_3.js │ │ ├── functions_4.html │ │ ├── functions_4.js │ │ ├── functions_5.html │ │ ├── functions_5.js │ │ ├── functions_6.html │ │ ├── functions_6.js │ │ ├── mag_sel.png │ │ ├── nomatches.html │ │ ├── pages_0.html │ │ ├── pages_0.js │ │ ├── search.css │ │ ├── search.js │ │ ├── search_l.png │ │ ├── search_m.png │ │ ├── search_r.png │ │ ├── searchdata.js │ │ ├── typedefs_0.html │ │ ├── typedefs_0.js │ │ ├── typedefs_1.html │ │ ├── typedefs_1.js │ │ ├── typedefs_2.html │ │ ├── typedefs_2.js │ │ ├── typedefs_3.html │ │ ├── typedefs_3.js │ │ ├── variables_0.html │ │ ├── variables_0.js │ │ ├── variables_1.html │ │ ├── variables_1.js │ │ ├── variables_2.html │ │ ├── variables_2.js │ │ ├── variables_3.html │ │ ├── variables_3.js │ │ ├── variables_4.html │ │ ├── variables_4.js │ │ ├── variables_5.html │ │ ├── variables_5.js │ │ ├── variables_6.html │ │ ├── variables_6.js │ │ ├── variables_7.html │ │ ├── variables_7.js │ │ ├── variables_8.html │ │ ├── variables_8.js │ │ ├── variables_9.html │ │ └── variables_9.js │ │ ├── splitbar.png │ │ ├── struct_jinx_1_1_global_params-members.html │ │ ├── struct_jinx_1_1_global_params.html │ │ ├── struct_jinx_1_1_performance_stats-members.html │ │ ├── struct_jinx_1_1_performance_stats.html │ │ ├── sync_off.png │ │ ├── sync_on.png │ │ ├── tab_a.png │ │ ├── tab_b.png │ │ ├── tab_h.png │ │ ├── tab_s.png │ │ └── tabs.css ├── Changelog.md ├── LibCore.docx ├── LibCore.htm ├── LibCore.pdf ├── Performance.docx ├── Performance.htm ├── Performance.pdf ├── Tutorial.docx ├── Tutorial.htm └── Tutorial.pdf ├── Include └── Jinx.hpp ├── LICENSE ├── README.md ├── Source ├── Jinx.h ├── JxBuffer.cpp ├── JxBuffer.h ├── JxCollection.cpp ├── JxCollection.h ├── JxCommon.cpp ├── JxCommon.h ├── JxConversion.cpp ├── JxConversion.h ├── JxCoroutine.cpp ├── JxCoroutine.h ├── JxFunctionDefinition.h ├── JxFunctionSignature.cpp ├── JxFunctionSignature.h ├── JxHash.cpp ├── JxHash.h ├── JxInternal.h ├── JxLexer.cpp ├── JxLexer.h ├── JxLibCore.cpp ├── JxLibCore.h ├── JxLibrary.cpp ├── JxLibrary.h ├── JxLogging.cpp ├── JxLogging.h ├── JxMemory.cpp ├── JxMemory.h ├── JxParser.cpp ├── JxParser.h ├── JxPropertyName.cpp ├── JxPropertyName.h ├── JxRuntime.cpp ├── JxRuntime.h ├── JxScript.cpp ├── JxScript.h ├── JxSerialize.cpp ├── JxSerialize.h ├── JxTypes.h ├── JxUnicode.cpp ├── JxUnicode.h ├── JxUnicodeCaseFolding.cpp ├── JxUnicodeCaseFolding.h ├── JxVariableStackFrame.cpp ├── JxVariableStackFrame.h ├── JxVariant.cpp └── JxVariant.h ├── Tests ├── Features │ └── Main.cpp ├── FuzzTests │ ├── Main.cpp │ └── clara.hpp ├── PerfTest │ └── Main.cpp └── UnitTests │ ├── Main.cpp │ ├── TestCasts.cpp │ ├── TestCollections.cpp │ ├── TestCoroutines.cpp │ ├── TestErrors.cpp │ ├── TestExpressions.cpp │ ├── TestFunctions.cpp │ ├── TestIfElse.cpp │ ├── TestLibCore.cpp │ ├── TestLibraries.cpp │ ├── TestLoops.cpp │ ├── TestNative.cpp │ ├── TestStatements.cpp │ ├── TestStrings.cpp │ ├── TestUnicode.cpp │ ├── UnitTest.cpp │ ├── UnitTest.h │ └── catch.hpp └── Utils ├── CaseFoldGen ├── CaseFolding.txt └── Main.cpp ├── JinxPad ├── AboutWindow.xaml ├── AboutWindow.xaml.cs ├── App.config ├── App.xaml ├── App.xaml.cs ├── CMakeLists.txt ├── MainWindow.xaml ├── MainWindow.xaml.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings └── Resources │ ├── Jinx.ico │ └── Jinx.png └── JinxTools ├── CMakeLists.txt ├── Editor.xaml ├── Editor.xaml.cs └── Properties └── AssemblyInfo.cs /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | # Matches multiple files with brace expansion notation 4 | [*.{cpp,c,h,hpp}] 5 | charset = utf-8 6 | indent_style = tab 7 | indent_size = 4 8 | trim_trailing_whitespace = true -------------------------------------------------------------------------------- /.github/workflows/CI.yml: -------------------------------------------------------------------------------- 1 | # Continuous Integration action 2 | 3 | name: CI 4 | 5 | # Controls when the action will run. Triggers the workflow on push or pull request 6 | # events but only for the master branch 7 | on: 8 | push: 9 | branches: [ '*' ] 10 | pull_request: 11 | branches: [ '*' ] 12 | 13 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel 14 | jobs: 15 | # This workflow contains build jobs 16 | build_windows: 17 | # The type of runner that the job will run on 18 | runs-on: windows-latest 19 | defaults: 20 | run: 21 | working-directory: Bin 22 | shell: pwsh 23 | 24 | # Steps represent a sequence of tasks that will be executed as part of the job 25 | steps: 26 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it 27 | - uses: actions/checkout@v2 28 | 29 | # Ensure MSVC tools are available 30 | - name: Add msbuild to PATH 31 | uses: microsoft/setup-msbuild@v1.0.2 32 | 33 | # Generate and build MSVC project using batch file 34 | - name: Build using MSVC 35 | run: ./BuildMSVC2022.cmd 36 | 37 | # Run unit tests 38 | - name: Run unit tests 39 | run: ./../Build/Release/UnitTests.exe 40 | 41 | # Run header-only unit tests 42 | - name: Run header-only unit tests 43 | run: ./../Build/Release/HeaderTests.exe 44 | 45 | build_macos: 46 | # The type of runner that the job will run on 47 | runs-on: macos-latest 48 | defaults: 49 | run: 50 | working-directory: Bin 51 | shell: bash 52 | 53 | # Steps represent a sequence of tasks that will be executed as part of the job 54 | steps: 55 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it 56 | - uses: actions/checkout@v2 57 | 58 | # Generate and build makefiles using shell script 59 | - name: Build using make 60 | run: ./BuildMakefiles.sh 61 | 62 | # Run unit tests 63 | - name: Run unit tests 64 | run: ./../Build/Release/UnitTests 65 | 66 | # Run header-ony unit tests 67 | - name: Run header-only unit tests 68 | run: ./../Build/Release/HeaderTests 69 | 70 | build_linux: 71 | # The type of runner that the job will run on 72 | runs-on: ubuntu-latest 73 | defaults: 74 | run: 75 | working-directory: Bin 76 | shell: bash 77 | 78 | # Steps represent a sequence of tasks that will be executed as part of the job 79 | steps: 80 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it 81 | - uses: actions/checkout@v2 82 | 83 | # Generate and build makefiles using shell script 84 | - name: Build using make 85 | run: ./BuildMakefiles.sh 86 | 87 | # Run unit tests 88 | - name: Run unit tests 89 | run: ./../Build/Release/UnitTests 90 | 91 | # Run header-only unit tests 92 | - name: Run header-only unit tests 93 | run: ./../Build/Release/HeaderTests -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | Build/ 2 | 3 | 4 | .DS_Store 5 | 6 | .idea/ 7 | -------------------------------------------------------------------------------- /Bin/BuildCodeBlocks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Generate CodeBlocks project and makefiles 4 | ./GenerateCodeBlocks.sh || exit 1 5 | 6 | # Navigate to build folder 7 | cd .. 8 | cd Build/ 9 | 10 | # Build Debug and Release configurations 11 | cd Debug/ 12 | make || exit 1 13 | cd .. 14 | cd Release 15 | make || exit 1 16 | 17 | cd .. 18 | cd .. 19 | cd Bin/ 20 | 21 | -------------------------------------------------------------------------------- /Bin/BuildMSVC2019.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | call GenerateMSVC2019.cmd 3 | cd .. 4 | 5 | IF NOT EXIST Build ( 6 | echo Build folder does not exist. 7 | goto ERROR 8 | ) 9 | 10 | cd Build 11 | 12 | MSBuild Jinx.sln /p:Configuration=Debug && ( 13 | echo Debug build succeeded 14 | ) || ( 15 | echo Debug build failed 16 | goto ERROR 17 | ) 18 | 19 | MSBuild Jinx.sln /p:Configuration=Release && ( 20 | echo Release build succeeded 21 | ) || ( 22 | echo Release build failed 23 | goto ERROR 24 | ) 25 | 26 | cd .. 27 | cd Bin 28 | EXIT /B 0 29 | 30 | :ERROR 31 | cd .. 32 | cd Bin 33 | EXIT /B 1 34 | -------------------------------------------------------------------------------- /Bin/BuildMSVC2022.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | call GenerateMSVC2022.cmd 3 | cd .. 4 | 5 | IF NOT EXIST Build ( 6 | echo Build folder does not exist. 7 | goto ERROR 8 | ) 9 | 10 | cd Build 11 | 12 | MSBuild Jinx.sln /p:Configuration=Debug && ( 13 | echo Debug build succeeded 14 | ) || ( 15 | echo Debug build failed 16 | goto ERROR 17 | ) 18 | 19 | MSBuild Jinx.sln /p:Configuration=Release && ( 20 | echo Release build succeeded 21 | ) || ( 22 | echo Release build failed 23 | goto ERROR 24 | ) 25 | 26 | cd .. 27 | cd Bin 28 | EXIT /B 0 29 | 30 | :ERROR 31 | cd .. 32 | cd Bin 33 | EXIT /B 1 34 | -------------------------------------------------------------------------------- /Bin/BuildMakefiles.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Generate makefiles 4 | ./GenerateMakefiles.sh || exit 1 5 | 6 | # Navigate to build folder 7 | cd .. 8 | cd Build/ 9 | 10 | # Build Debug and Release configurations 11 | cd Debug/ 12 | make || exit 1 13 | cd .. 14 | cd Release 15 | make || exit 1 16 | 17 | cd .. 18 | cd .. 19 | cd Bin/ 20 | 21 | -------------------------------------------------------------------------------- /Bin/BuildXcode.command: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | 3 | # Set to current working dir 4 | DIR=$( cd "$( dirname "${(%):-%x}" )" && pwd ) 5 | cd "${DIR}" 6 | 7 | # Generate Xcode project 8 | ./GenerateXcode.command || exit 1 9 | 10 | cd .. 11 | cd Build/ 12 | 13 | # Build Debug and Release configurations of the project 14 | xcodebuild -project Jinx.xcodeproj -target ALL_BUILD -configuration Debug || exit 1 15 | xcodebuild -project Jinx.xcodeproj -target ALL_BUILD -configuration Release || exit 1 16 | 17 | cd .. 18 | cd Bin/ -------------------------------------------------------------------------------- /Bin/GenerateCodeBlocks.sh: -------------------------------------------------------------------------------- 1 | cd .. 2 | if ! [ -e Build ]; then 3 | mkdir Build 4 | fi 5 | cd Build/ 6 | 7 | if ! [ -e Debug ]; then 8 | mkdir Debug 9 | fi 10 | cd Debug/ 11 | cmake ../../ -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" 12 | cd .. 13 | 14 | if ! [ -e Release ]; then 15 | mkdir Release 16 | fi 17 | cd Release/ 18 | cmake ../../ -DCMAKE_BUILD_TYPE=Release -G "CodeBlocks - Unix Makefiles" 19 | cd .. 20 | 21 | if ! [ -e RelWithDebInfo ]; then 22 | mkdir RelWithDebInfo 23 | fi 24 | cd RelWithDebInfo/ 25 | cmake ../../ -DCMAKE_BUILD_TYPE=RelWithDebInfo -G "CodeBlocks - Unix Makefiles" 26 | cd .. 27 | 28 | if ! [ -e MinSizeRel ]; then 29 | mkdir MinSizeRel 30 | fi 31 | cd MinSizeRel/ 32 | cmake ../../ -DCMAKE_BUILD_TYPE=MinSizeRel -G "CodeBlocks - Unix Makefiles" 33 | cd .. 34 | 35 | cd .. 36 | -------------------------------------------------------------------------------- /Bin/GenerateDocs.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | rem Generate API documents from source using Doxygen 4 | doxygen Jinx.cfg 5 | -------------------------------------------------------------------------------- /Bin/GenerateHeader.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | rem Generate unified header file from all library source 4 | Heady.exe --define JINX_HEADER_ONLY --source "../Source" --output "../Include/Jinx.hpp" 5 | -------------------------------------------------------------------------------- /Bin/GenerateMSVC2019.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | cd .. 3 | IF NOT EXIST Build ( 4 | echo Creating Build/ folder 5 | mkdir Build 6 | ) 7 | cd Build/ 8 | cmake ../ -G "Visual Studio 16 2019" -A x64 9 | cd .. 10 | cd Bin 11 | -------------------------------------------------------------------------------- /Bin/GenerateMSVC2022.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | cd .. 3 | IF NOT EXIST Build ( 4 | echo Creating Build/ folder 5 | mkdir Build 6 | ) 7 | cd Build/ 8 | cmake ../ -G "Visual Studio 17 2022" -A x64 9 | cd .. 10 | cd Bin 11 | -------------------------------------------------------------------------------- /Bin/GenerateMakefiles.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Generate Build folder if it doesn't exist and navigate there 4 | cd .. 5 | if ! [ -e Build ]; then 6 | mkdir Build 7 | fi 8 | cd Build/ 9 | 10 | # Build Debug makefiles 11 | if ! [ -e Debug ]; then 12 | mkdir Debug 13 | fi 14 | cd Debug/ 15 | cmake ../../ -DCMAKE_BUILD_TYPE=Debug -G "Unix Makefiles" || exit 1 16 | cd .. 17 | 18 | # Build Release makefiles 19 | if ! [ -e Release ]; then 20 | mkdir Release 21 | fi 22 | cd Release/ 23 | cmake ../../ -DCMAKE_BUILD_TYPE=Release -G "Unix Makefiles" || exit 1 24 | cd .. 25 | 26 | # Build RelWithDebInfo makefiles 27 | if ! [ -e RelWithDebInfo ]; then 28 | mkdir RelWithDebInfo 29 | fi 30 | cd RelWithDebInfo/ 31 | cmake ../../ -DCMAKE_BUILD_TYPE=RelWithDebInfo -G "Unix Makefiles" || exit 1 32 | cd .. 33 | 34 | # Build MinSizeRel makefiles 35 | if ! [ -e MinSizeRel ]; then 36 | mkdir MinSizeRel 37 | fi 38 | cd MinSizeRel/ 39 | cmake ../../ -DCMAKE_BUILD_TYPE=MinSizeRel -G "Unix Makefiles" || exit 1 40 | cd .. 41 | 42 | cd .. 43 | cd Bin/ 44 | -------------------------------------------------------------------------------- /Bin/GenerateXcode.command: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | 3 | # Set to current working dir 4 | DIR=$( cd "$( dirname "${(%):-%x}" )" && pwd ) 5 | cd "${DIR}" 6 | 7 | cd .. 8 | 9 | # Check if build folder exists, and if not, create it 10 | if ! [ -e Build ]; then 11 | mkdir Build 12 | fi 13 | 14 | cd Build/ 15 | 16 | # Generate Xcode project using CMake 17 | cmake ../ -G Xcode || exit 1 18 | 19 | cd .. 20 | cd Bin/ 21 | -------------------------------------------------------------------------------- /Bin/Heady.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Bin/Heady.exe -------------------------------------------------------------------------------- /Bin/ProcessDocs.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | rem Add Courier as a backup font to Consolas, which may not be available on all systems 4 | powershell -Command "(gc ../Docs/LibCore.htm) -replace 'Consolas;', 'Consolas, Hack, Inconsolata, Monaco, monospace;' | Out-File ../Docs/LibCore.htm" 5 | powershell -Command "(gc ../Docs/Tutorial.htm) -replace 'Consolas;', 'Consolas, Hack, Inconsolata, Monaco, monospace;' | Out-File ../Docs/Tutorial.htm" 6 | powershell -Command "(gc ../Docs/Performance.htm) -replace 'Consolas;', 'Consolas, Hack, Inconsolata, Monaco, monospace;' | Out-File ../Docs/Performance.htm" -------------------------------------------------------------------------------- /Bin/doxygen.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Bin/doxygen.exe -------------------------------------------------------------------------------- /Bin/doxyindexer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Bin/doxyindexer.exe -------------------------------------------------------------------------------- /Bin/doxysearch.cgi.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Bin/doxysearch.cgi.exe -------------------------------------------------------------------------------- /Bin/libclang.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Bin/libclang.dll -------------------------------------------------------------------------------- /Docs/API/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/bc_s.png -------------------------------------------------------------------------------- /Docs/API/html/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/bdwn.png -------------------------------------------------------------------------------- /Docs/API/html/class_jinx_1_1_i_user_object-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Jinx: Member List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
Jinx 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 | 49 |
53 |
54 | 55 | 56 |
57 | 60 |
61 | 62 | 66 |
67 |
68 |
69 |
Jinx::IUserObject Member List
70 |
71 |
72 | 73 |

This is the complete list of members for Jinx::IUserObject, including all inherited members.

74 | 75 | 76 |
~IUserObject() (defined in Jinx::IUserObject)Jinx::IUserObjectinlinevirtual
77 | 78 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /Docs/API/html/class_jinx_1_1_i_user_object.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Jinx: Jinx::IUserObject Class Reference 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
Jinx 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 | 49 |
53 |
54 | 55 | 56 |
57 | 60 |
61 | 62 | 66 |
67 |
68 |
69 | List of all members
70 |
71 |
Jinx::IUserObject Class Reference
72 |
73 |
74 | 75 |

Interface for user objects in scripts. 76 | More...

77 | 78 |

#include <JxVariant.h>

79 |

Detailed Description

80 |

Interface for user objects in scripts.

81 |

The documentation for this class was generated from the following file: 84 |
85 | 86 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /Docs/API/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/closed.png -------------------------------------------------------------------------------- /Docs/API/html/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/doc.png -------------------------------------------------------------------------------- /Docs/API/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/doxygen.png -------------------------------------------------------------------------------- /Docs/API/html/folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/folderclosed.png -------------------------------------------------------------------------------- /Docs/API/html/folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/folderopen.png -------------------------------------------------------------------------------- /Docs/API/html/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Jinx: Jinx Documentation Index Page 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
Jinx 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 |
49 | 50 |
54 |
55 | 56 | 57 |
58 | 61 |
62 | 63 |
64 |
65 |
Jinx Documentation Index Page
66 |
67 |
68 |

69 | Introduction

70 |

Jinx is an embedded scripting language designed for use in real-time applications like videogames. It features a simple, intuitive scripting syntax that looks remarkably like pseudo-code, and a clean, modern C++ interface for ease of use and integration.

71 |

The Jinx source code, documentation, and all related files are copyrighted (c) 2016 by James Boer, and distributed under the MIT license.

72 |
73 | 74 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /Docs/API/html/menu.js: -------------------------------------------------------------------------------- 1 | /* 2 | @licstart The following is the entire license notice for the 3 | JavaScript code in this file. 4 | 5 | Copyright (C) 1997-2017 by Dimitri van Heesch 6 | 7 | This program is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 2 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License along 18 | with this program; if not, write to the Free Software Foundation, Inc., 19 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 20 | 21 | @licend The above is the entire license notice 22 | for the JavaScript code in this file 23 | */ 24 | function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { 25 | function makeTree(data,relPath) { 26 | var result=''; 27 | if ('children' in data) { 28 | result+=''; 35 | } 36 | return result; 37 | } 38 | 39 | $('#main-nav').append(makeTree(menudata,relPath)); 40 | $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); 41 | if (searchEnabled) { 42 | if (serverSide) { 43 | $('#main-menu').append('
  • '); 44 | } else { 45 | $('#main-menu').append('
  • '); 46 | } 47 | } 48 | $('#main-menu').smartmenus(); 49 | } 50 | /* @license-end */ 51 | -------------------------------------------------------------------------------- /Docs/API/html/menudata.js: -------------------------------------------------------------------------------- 1 | /* 2 | @ @licstart The following is the entire license notice for the 3 | JavaScript code in this file. 4 | 5 | Copyright (C) 1997-2017 by Dimitri van Heesch 6 | 7 | This program is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 2 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License along 18 | with this program; if not, write to the Free Software Foundation, Inc., 19 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 20 | 21 | @licend The above is the entire license notice 22 | for the JavaScript code in this file 23 | */ 24 | var menudata={children:[ 25 | {text:"Main Page",url:"index.html"}, 26 | {text:"Classes",url:"annotated.html",children:[ 27 | {text:"Class List",url:"annotated.html"}, 28 | {text:"Class Index",url:"classes.html"}, 29 | {text:"Class Members",url:"functions.html",children:[ 30 | {text:"All",url:"functions.html",children:[ 31 | {text:"a",url:"functions.html#index_a"}, 32 | {text:"c",url:"functions.html#index_c"}, 33 | {text:"e",url:"functions.html#index_e"}, 34 | {text:"f",url:"functions.html#index_f"}, 35 | {text:"g",url:"functions.html#index_g"}, 36 | {text:"i",url:"functions.html#index_i"}, 37 | {text:"l",url:"functions.html#index_l"}, 38 | {text:"m",url:"functions.html#index_m"}, 39 | {text:"p",url:"functions.html#index_p"}, 40 | {text:"r",url:"functions.html#index_r"}, 41 | {text:"s",url:"functions.html#index_s"}]}, 42 | {text:"Functions",url:"functions_func.html"}, 43 | {text:"Variables",url:"functions_vars.html"}]}]}, 44 | {text:"Files",url:"files.html",children:[ 45 | {text:"File List",url:"files.html"}]}]} 46 | -------------------------------------------------------------------------------- /Docs/API/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/nav_f.png -------------------------------------------------------------------------------- /Docs/API/html/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/nav_g.png -------------------------------------------------------------------------------- /Docs/API/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/nav_h.png -------------------------------------------------------------------------------- /Docs/API/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/open.png -------------------------------------------------------------------------------- /Docs/API/html/search/all_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['access',['Access',['../_jinx_8h.html#aa375c9c285c2ba5c61b1efcf104330d9',1,'Jinx']]], 4 | ['allocfn',['allocFn',['../struct_jinx_1_1_global_params.html#aab3f56daccf8ee50fe81df959dfc0fec',1,'Jinx::GlobalParams::allocFn()'],['../_jinx_8h.html#ab2865e7908102ee2e5a87610c09884c1',1,'Jinx::AllocFn()']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['buffer',['Buffer',['../class_jinx_1_1_buffer.html',1,'Jinx']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['callasyncfunction',['CallAsyncFunction',['../class_jinx_1_1_i_script.html#a62a745b8725a1054d2259a7777858e29',1,'Jinx::IScript']]], 4 | ['callfunction',['CallFunction',['../class_jinx_1_1_i_script.html#af4df3369ab82192a9a00c7eae47d7e15',1,'Jinx::IScript']]], 5 | ['compilationtimens',['compilationTimeNs',['../struct_jinx_1_1_performance_stats.html#ae21efe2845c419482372258f56851c64',1,'Jinx::PerformanceStats']]], 6 | ['compile',['Compile',['../class_jinx_1_1_i_runtime.html#a85a3a6697eea6c30b8d02b4ca1dc2131',1,'Jinx::IRuntime']]], 7 | ['createruntime',['CreateRuntime',['../_jinx_8h.html#a5016b82d1aaae052ed18a98aef3af7fa',1,'Jinx']]], 8 | ['createscript',['CreateScript',['../class_jinx_1_1_i_runtime.html#a239db2d9140dca0ec8ae96d3b178e871',1,'Jinx::IRuntime::CreateScript(BufferPtr bytecode, Any userContext=nullptr)=0'],['../class_jinx_1_1_i_runtime.html#a6c79daf99b262418ff7e074696f9c76b',1,'Jinx::IRuntime::CreateScript(const char *scriptText, Any userContext=nullptr, String name=String(), std::initializer_list< String > libraries={})=0']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['enabledebuginfo',['enableDebugInfo',['../struct_jinx_1_1_global_params.html#a25139c92bfdf85ce475f81e9d43e8ea1',1,'Jinx::GlobalParams']]], 4 | ['enablelogging',['enableLogging',['../struct_jinx_1_1_global_params.html#ad23e565d0be06e2a9e948dfb1188050b',1,'Jinx::GlobalParams']]], 5 | ['erroronmaxinstrunctions',['errorOnMaxInstrunctions',['../struct_jinx_1_1_global_params.html#a3a67ff80a1b3eeef389c81884eeb4bf4',1,'Jinx::GlobalParams']]], 6 | ['execute',['Execute',['../class_jinx_1_1_i_script.html#adfcdb6fe4b84536430ba4a5f152fc2d4',1,'Jinx::IScript']]], 7 | ['executescript',['ExecuteScript',['../class_jinx_1_1_i_runtime.html#a9d12f9da6b15a529b7421def67753191',1,'Jinx::IRuntime']]], 8 | ['executiontimens',['executionTimeNs',['../struct_jinx_1_1_performance_stats.html#a80a9545c0c470fcdcbffb4d8b8caab07',1,'Jinx::PerformanceStats']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['findfunction',['FindFunction',['../class_jinx_1_1_i_script.html#afbd7cee1f07529610818524402933b8d',1,'Jinx::IScript']]], 4 | ['freefn',['freeFn',['../struct_jinx_1_1_global_params.html#a82b02db5c24487a99d0c0ee83cb66c53',1,'Jinx::GlobalParams::freeFn()'],['../_jinx_8h.html#a432163615a0352f82470e53f8d9cc92c',1,'Jinx::FreeFn()']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['getlibrary',['GetLibrary',['../class_jinx_1_1_i_script.html#ad80a5db9cc81fc4aee13b0cad96c564e',1,'Jinx::IScript::GetLibrary()'],['../class_jinx_1_1_i_runtime.html#ade7ef682dd686f45c59a6ca94d3ef85e',1,'Jinx::IRuntime::GetLibrary()']]], 4 | ['getname',['GetName',['../class_jinx_1_1_i_script.html#a9911d5bcc3cae4c97ed134173d871a17',1,'Jinx::IScript']]], 5 | ['getproperty',['GetProperty',['../class_jinx_1_1_i_library.html#ab5df0f09aa9355332ce77312ce9762d6',1,'Jinx::ILibrary']]], 6 | ['getscriptperformancestats',['GetScriptPerformanceStats',['../class_jinx_1_1_i_runtime.html#a6d7746368465101742d064d7608da376',1,'Jinx::IRuntime']]], 7 | ['getusercontext',['GetUserContext',['../class_jinx_1_1_i_script.html#ab9073356b8e747080d3f4ec0d058357d',1,'Jinx::IScript']]], 8 | ['getvariable',['GetVariable',['../class_jinx_1_1_i_script.html#a900674bcfd7f8535cb698ccec70b7882',1,'Jinx::IScript']]], 9 | ['getversionstring',['GetVersionString',['../_jinx_8h.html#afa25a05f2310c45cb387816b7abfcc7d',1,'Jinx']]], 10 | ['globalparams',['GlobalParams',['../struct_jinx_1_1_global_params.html',1,'Jinx']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ilibrary',['ILibrary',['../class_jinx_1_1_i_library.html',1,'Jinx']]], 4 | ['initialize',['Initialize',['../_jinx_8h.html#adb060668cdad309c60871c2fe38bb448',1,'Jinx']]], 5 | ['instructioncount',['instructionCount',['../struct_jinx_1_1_performance_stats.html#a46a2a1acfda33a64f82f4cebdc22ff6c',1,'Jinx::PerformanceStats']]], 6 | ['iruntime',['IRuntime',['../class_jinx_1_1_i_runtime.html',1,'Jinx']]], 7 | ['iscript',['IScript',['../class_jinx_1_1_i_script.html',1,'Jinx']]], 8 | ['isfinished',['IsFinished',['../class_jinx_1_1_i_script.html#aa93b5417177804d9f2b4ec3cf1c7247e',1,'Jinx::IScript']]], 9 | ['iuserobject',['IUserObject',['../class_jinx_1_1_i_user_object.html',1,'Jinx']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['jinx_20documentation_20index_20page',['Jinx Documentation Index Page',['../index.html',1,'']]], 4 | ['jinx_2eh',['Jinx.h',['../_jinx_8h.html',1,'']]], 5 | ['jxbuffer_2eh',['JxBuffer.h',['../_jx_buffer_8h.html',1,'']]], 6 | ['jxcollection_2eh',['JxCollection.h',['../_jx_collection_8h.html',1,'']]], 7 | ['jxvariant_2eh',['JxVariant.h',['../_jx_variant_8h.html',1,'']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['libraryptr',['LibraryPtr',['../_jinx_8h.html#a9a15aa942bfe1dfd6f95188f63b06a86',1,'Jinx']]], 4 | ['logbytecode',['logBytecode',['../struct_jinx_1_1_global_params.html#a0476d70f1f4882b4473833f2b2c8043f',1,'Jinx::GlobalParams']]], 5 | ['logfn',['logFn',['../struct_jinx_1_1_global_params.html#a0c10ba9b5cfe1252d2d1e9be1a2b8b01',1,'Jinx::GlobalParams::logFn()'],['../_jinx_8h.html#a7aba71cd0e3171fa55f7744f1fdd2bf0',1,'Jinx::LogFn()']]], 6 | ['loglevel',['LogLevel',['../_jinx_8h.html#a5fed9410c5a78b303fd1ae48fe7e9853',1,'Jinx']]], 7 | ['logsymbols',['logSymbols',['../struct_jinx_1_1_global_params.html#a53385b4ecd52fc991cff7bbc01b100c8',1,'Jinx::GlobalParams']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['majorversion',['MajorVersion',['../_jinx_8h.html#abc9bcee8a4c4585ceea90f77eb9fa4b9',1,'Jinx']]], 4 | ['maxinstructions',['maxInstructions',['../struct_jinx_1_1_global_params.html#a45765b6551a42767ddf6f335495d9e95',1,'Jinx::GlobalParams']]], 5 | ['minorversion',['MinorVersion',['../_jinx_8h.html#a1c7318012adc2d64540cd28ed5f78b01',1,'Jinx']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['patchnumber',['PatchNumber',['../_jinx_8h.html#ae0e5e517609d07abbe8c6aa37e974d3a',1,'Jinx']]], 4 | ['performancestats',['PerformanceStats',['../struct_jinx_1_1_performance_stats.html',1,'Jinx']]], 5 | ['perftimens',['perfTimeNs',['../struct_jinx_1_1_performance_stats.html#ab17059eff4fac7dc6057bcaa6a85f2fc',1,'Jinx::PerformanceStats']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['reallocfn',['reallocFn',['../struct_jinx_1_1_global_params.html#ae135b2616b7c2df0f5ec8e12b3f1c9e3',1,'Jinx::GlobalParams::reallocFn()'],['../_jinx_8h.html#a42000e1230568109142f772f8919abe2',1,'Jinx::ReallocFn()']]], 4 | ['registerfunction',['RegisterFunction',['../class_jinx_1_1_i_library.html#a64126532a15c72254e32114d796737ff',1,'Jinx::ILibrary']]], 5 | ['registerproperty',['RegisterProperty',['../class_jinx_1_1_i_library.html#adf209831e54668f48fc9f241cb545825',1,'Jinx::ILibrary']]], 6 | ['runtimeptr',['RuntimePtr',['../_jinx_8h.html#a97637f9585b6e3e53b8cd7d6c629bb03',1,'Jinx']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['scriptcompilationcount',['scriptCompilationCount',['../struct_jinx_1_1_performance_stats.html#aba191d83588d9d5540f169dc5fe6fc3d',1,'Jinx::PerformanceStats']]], 4 | ['scriptcompletioncount',['scriptCompletionCount',['../struct_jinx_1_1_performance_stats.html#aeaf32bdd32a265840fee676e098025d9',1,'Jinx::PerformanceStats']]], 5 | ['scriptexecutioncount',['scriptExecutionCount',['../struct_jinx_1_1_performance_stats.html#a6259647201f263969d57cee2df01d984',1,'Jinx::PerformanceStats']]], 6 | ['setproperty',['SetProperty',['../class_jinx_1_1_i_library.html#a32346265f79792d69d6ffe5e4945d9d9',1,'Jinx::ILibrary']]], 7 | ['setvariable',['SetVariable',['../class_jinx_1_1_i_script.html#a00c9be2222beda416088575b5b8d9918',1,'Jinx::IScript']]], 8 | ['str',['Str',['../_jx_variant_8h.html#abd5271bd7d642ff13666a73edef95e06',1,'Jinx']]], 9 | ['stripdebuginfo',['StripDebugInfo',['../class_jinx_1_1_i_runtime.html#a1b285910bd22c7c7ccdee2daadb09171',1,'Jinx::IRuntime']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/all_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['valuetype',['ValueType',['../_jx_variant_8h.html#a538a4d035f2d23781bef9e13f5bbb21e',1,'Jinx']]], 4 | ['variant',['Variant',['../class_jinx_1_1_variant.html',1,'Jinx']]], 5 | ['visibility',['Visibility',['../_jinx_8h.html#ace25cfda5f173f74baaf91cec0f7f95b',1,'Jinx']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /Docs/API/html/search/classes_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['buffer',['Buffer',['../class_jinx_1_1_buffer.html',1,'Jinx']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Docs/API/html/search/classes_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/classes_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['globalparams',['GlobalParams',['../struct_jinx_1_1_global_params.html',1,'Jinx']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Docs/API/html/search/classes_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/classes_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ilibrary',['ILibrary',['../class_jinx_1_1_i_library.html',1,'Jinx']]], 4 | ['iruntime',['IRuntime',['../class_jinx_1_1_i_runtime.html',1,'Jinx']]], 5 | ['iscript',['IScript',['../class_jinx_1_1_i_script.html',1,'Jinx']]], 6 | ['iuserobject',['IUserObject',['../class_jinx_1_1_i_user_object.html',1,'Jinx']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /Docs/API/html/search/classes_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/classes_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['performancestats',['PerformanceStats',['../struct_jinx_1_1_performance_stats.html',1,'Jinx']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Docs/API/html/search/classes_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/classes_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['variant',['Variant',['../class_jinx_1_1_variant.html',1,'Jinx']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Docs/API/html/search/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/search/close.png -------------------------------------------------------------------------------- /Docs/API/html/search/enums_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/enums_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['access',['Access',['../_jinx_8h.html#aa375c9c285c2ba5c61b1efcf104330d9',1,'Jinx']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Docs/API/html/search/enums_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/enums_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['loglevel',['LogLevel',['../_jinx_8h.html#a5fed9410c5a78b303fd1ae48fe7e9853',1,'Jinx']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Docs/API/html/search/enums_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/enums_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['valuetype',['ValueType',['../_jx_variant_8h.html#a538a4d035f2d23781bef9e13f5bbb21e',1,'Jinx']]], 4 | ['visibility',['Visibility',['../_jinx_8h.html#ace25cfda5f173f74baaf91cec0f7f95b',1,'Jinx']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Docs/API/html/search/files_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/files_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['jinx_2eh',['Jinx.h',['../_jinx_8h.html',1,'']]], 4 | ['jxbuffer_2eh',['JxBuffer.h',['../_jx_buffer_8h.html',1,'']]], 5 | ['jxcollection_2eh',['JxCollection.h',['../_jx_collection_8h.html',1,'']]], 6 | ['jxvariant_2eh',['JxVariant.h',['../_jx_variant_8h.html',1,'']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /Docs/API/html/search/functions_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/functions_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['callasyncfunction',['CallAsyncFunction',['../class_jinx_1_1_i_script.html#a62a745b8725a1054d2259a7777858e29',1,'Jinx::IScript']]], 4 | ['callfunction',['CallFunction',['../class_jinx_1_1_i_script.html#af4df3369ab82192a9a00c7eae47d7e15',1,'Jinx::IScript']]], 5 | ['compile',['Compile',['../class_jinx_1_1_i_runtime.html#a85a3a6697eea6c30b8d02b4ca1dc2131',1,'Jinx::IRuntime']]], 6 | ['createruntime',['CreateRuntime',['../_jinx_8h.html#a5016b82d1aaae052ed18a98aef3af7fa',1,'Jinx']]], 7 | ['createscript',['CreateScript',['../class_jinx_1_1_i_runtime.html#a239db2d9140dca0ec8ae96d3b178e871',1,'Jinx::IRuntime::CreateScript(BufferPtr bytecode, Any userContext=nullptr)=0'],['../class_jinx_1_1_i_runtime.html#a6c79daf99b262418ff7e074696f9c76b',1,'Jinx::IRuntime::CreateScript(const char *scriptText, Any userContext=nullptr, String name=String(), std::initializer_list< String > libraries={})=0']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /Docs/API/html/search/functions_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/functions_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['execute',['Execute',['../class_jinx_1_1_i_script.html#adfcdb6fe4b84536430ba4a5f152fc2d4',1,'Jinx::IScript']]], 4 | ['executescript',['ExecuteScript',['../class_jinx_1_1_i_runtime.html#a9d12f9da6b15a529b7421def67753191',1,'Jinx::IRuntime']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Docs/API/html/search/functions_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/functions_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['findfunction',['FindFunction',['../class_jinx_1_1_i_script.html#afbd7cee1f07529610818524402933b8d',1,'Jinx::IScript']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Docs/API/html/search/functions_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/functions_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['getlibrary',['GetLibrary',['../class_jinx_1_1_i_script.html#ad80a5db9cc81fc4aee13b0cad96c564e',1,'Jinx::IScript::GetLibrary()'],['../class_jinx_1_1_i_runtime.html#ade7ef682dd686f45c59a6ca94d3ef85e',1,'Jinx::IRuntime::GetLibrary()']]], 4 | ['getname',['GetName',['../class_jinx_1_1_i_script.html#a9911d5bcc3cae4c97ed134173d871a17',1,'Jinx::IScript']]], 5 | ['getproperty',['GetProperty',['../class_jinx_1_1_i_library.html#ab5df0f09aa9355332ce77312ce9762d6',1,'Jinx::ILibrary']]], 6 | ['getscriptperformancestats',['GetScriptPerformanceStats',['../class_jinx_1_1_i_runtime.html#a6d7746368465101742d064d7608da376',1,'Jinx::IRuntime']]], 7 | ['getusercontext',['GetUserContext',['../class_jinx_1_1_i_script.html#ab9073356b8e747080d3f4ec0d058357d',1,'Jinx::IScript']]], 8 | ['getvariable',['GetVariable',['../class_jinx_1_1_i_script.html#a900674bcfd7f8535cb698ccec70b7882',1,'Jinx::IScript']]], 9 | ['getversionstring',['GetVersionString',['../_jinx_8h.html#afa25a05f2310c45cb387816b7abfcc7d',1,'Jinx']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /Docs/API/html/search/functions_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/functions_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['initialize',['Initialize',['../_jinx_8h.html#adb060668cdad309c60871c2fe38bb448',1,'Jinx']]], 4 | ['isfinished',['IsFinished',['../class_jinx_1_1_i_script.html#aa93b5417177804d9f2b4ec3cf1c7247e',1,'Jinx::IScript']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Docs/API/html/search/functions_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/functions_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['registerfunction',['RegisterFunction',['../class_jinx_1_1_i_library.html#a64126532a15c72254e32114d796737ff',1,'Jinx::ILibrary']]], 4 | ['registerproperty',['RegisterProperty',['../class_jinx_1_1_i_library.html#adf209831e54668f48fc9f241cb545825',1,'Jinx::ILibrary']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Docs/API/html/search/functions_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/functions_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['setproperty',['SetProperty',['../class_jinx_1_1_i_library.html#a32346265f79792d69d6ffe5e4945d9d9',1,'Jinx::ILibrary']]], 4 | ['setvariable',['SetVariable',['../class_jinx_1_1_i_script.html#a00c9be2222beda416088575b5b8d9918',1,'Jinx::IScript']]], 5 | ['str',['Str',['../_jx_variant_8h.html#abd5271bd7d642ff13666a73edef95e06',1,'Jinx']]], 6 | ['stripdebuginfo',['StripDebugInfo',['../class_jinx_1_1_i_runtime.html#a1b285910bd22c7c7ccdee2daadb09171',1,'Jinx::IRuntime']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /Docs/API/html/search/mag_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/search/mag_sel.png -------------------------------------------------------------------------------- /Docs/API/html/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
    9 |
    No Matches
    10 |
    11 | 12 | 13 | -------------------------------------------------------------------------------- /Docs/API/html/search/pages_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/pages_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['jinx_20documentation_20index_20page',['Jinx Documentation Index Page',['../index.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Docs/API/html/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/search/search_l.png -------------------------------------------------------------------------------- /Docs/API/html/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/search/search_m.png -------------------------------------------------------------------------------- /Docs/API/html/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/search/search_r.png -------------------------------------------------------------------------------- /Docs/API/html/search/searchdata.js: -------------------------------------------------------------------------------- 1 | var indexSectionsWithContent = 2 | { 3 | 0: "abcefgijlmprsv", 4 | 1: "bgipv", 5 | 2: "j", 6 | 3: "cefgirs", 7 | 4: "acefilmprs", 8 | 5: "aflr", 9 | 6: "alv", 10 | 7: "j" 11 | }; 12 | 13 | var indexSectionNames = 14 | { 15 | 0: "all", 16 | 1: "classes", 17 | 2: "files", 18 | 3: "functions", 19 | 4: "variables", 20 | 5: "typedefs", 21 | 6: "enums", 22 | 7: "pages" 23 | }; 24 | 25 | var indexSectionLabels = 26 | { 27 | 0: "All", 28 | 1: "Classes", 29 | 2: "Files", 30 | 3: "Functions", 31 | 4: "Variables", 32 | 5: "Typedefs", 33 | 6: "Enumerations", 34 | 7: "Pages" 35 | }; 36 | 37 | -------------------------------------------------------------------------------- /Docs/API/html/search/typedefs_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/typedefs_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['allocfn',['AllocFn',['../_jinx_8h.html#ab2865e7908102ee2e5a87610c09884c1',1,'Jinx']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Docs/API/html/search/typedefs_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/typedefs_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['freefn',['FreeFn',['../_jinx_8h.html#a432163615a0352f82470e53f8d9cc92c',1,'Jinx']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Docs/API/html/search/typedefs_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/typedefs_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['libraryptr',['LibraryPtr',['../_jinx_8h.html#a9a15aa942bfe1dfd6f95188f63b06a86',1,'Jinx']]], 4 | ['logfn',['LogFn',['../_jinx_8h.html#a7aba71cd0e3171fa55f7744f1fdd2bf0',1,'Jinx']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Docs/API/html/search/typedefs_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/typedefs_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['reallocfn',['ReallocFn',['../_jinx_8h.html#a42000e1230568109142f772f8919abe2',1,'Jinx']]], 4 | ['runtimeptr',['RuntimePtr',['../_jinx_8h.html#a97637f9585b6e3e53b8cd7d6c629bb03',1,'Jinx']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['allocfn',['allocFn',['../struct_jinx_1_1_global_params.html#aab3f56daccf8ee50fe81df959dfc0fec',1,'Jinx::GlobalParams']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['compilationtimens',['compilationTimeNs',['../struct_jinx_1_1_performance_stats.html#ae21efe2845c419482372258f56851c64',1,'Jinx::PerformanceStats']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['enabledebuginfo',['enableDebugInfo',['../struct_jinx_1_1_global_params.html#a25139c92bfdf85ce475f81e9d43e8ea1',1,'Jinx::GlobalParams']]], 4 | ['enablelogging',['enableLogging',['../struct_jinx_1_1_global_params.html#ad23e565d0be06e2a9e948dfb1188050b',1,'Jinx::GlobalParams']]], 5 | ['erroronmaxinstrunctions',['errorOnMaxInstrunctions',['../struct_jinx_1_1_global_params.html#a3a67ff80a1b3eeef389c81884eeb4bf4',1,'Jinx::GlobalParams']]], 6 | ['executiontimens',['executionTimeNs',['../struct_jinx_1_1_performance_stats.html#a80a9545c0c470fcdcbffb4d8b8caab07',1,'Jinx::PerformanceStats']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['freefn',['freeFn',['../struct_jinx_1_1_global_params.html#a82b02db5c24487a99d0c0ee83cb66c53',1,'Jinx::GlobalParams']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['instructioncount',['instructionCount',['../struct_jinx_1_1_performance_stats.html#a46a2a1acfda33a64f82f4cebdc22ff6c',1,'Jinx::PerformanceStats']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['logbytecode',['logBytecode',['../struct_jinx_1_1_global_params.html#a0476d70f1f4882b4473833f2b2c8043f',1,'Jinx::GlobalParams']]], 4 | ['logfn',['logFn',['../struct_jinx_1_1_global_params.html#a0c10ba9b5cfe1252d2d1e9be1a2b8b01',1,'Jinx::GlobalParams']]], 5 | ['logsymbols',['logSymbols',['../struct_jinx_1_1_global_params.html#a53385b4ecd52fc991cff7bbc01b100c8',1,'Jinx::GlobalParams']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['majorversion',['MajorVersion',['../_jinx_8h.html#abc9bcee8a4c4585ceea90f77eb9fa4b9',1,'Jinx']]], 4 | ['maxinstructions',['maxInstructions',['../struct_jinx_1_1_global_params.html#a45765b6551a42767ddf6f335495d9e95',1,'Jinx::GlobalParams']]], 5 | ['minorversion',['MinorVersion',['../_jinx_8h.html#a1c7318012adc2d64540cd28ed5f78b01',1,'Jinx']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['patchnumber',['PatchNumber',['../_jinx_8h.html#ae0e5e517609d07abbe8c6aa37e974d3a',1,'Jinx']]], 4 | ['perftimens',['perfTimeNs',['../struct_jinx_1_1_performance_stats.html#ab17059eff4fac7dc6057bcaa6a85f2fc',1,'Jinx::PerformanceStats']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['reallocfn',['reallocFn',['../struct_jinx_1_1_global_params.html#ae135b2616b7c2df0f5ec8e12b3f1c9e3',1,'Jinx::GlobalParams']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 18 |
    Searching...
    19 |
    No Matches
    20 | 28 |
    29 | 30 | 31 | -------------------------------------------------------------------------------- /Docs/API/html/search/variables_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['scriptcompilationcount',['scriptCompilationCount',['../struct_jinx_1_1_performance_stats.html#aba191d83588d9d5540f169dc5fe6fc3d',1,'Jinx::PerformanceStats']]], 4 | ['scriptcompletioncount',['scriptCompletionCount',['../struct_jinx_1_1_performance_stats.html#aeaf32bdd32a265840fee676e098025d9',1,'Jinx::PerformanceStats']]], 5 | ['scriptexecutioncount',['scriptExecutionCount',['../struct_jinx_1_1_performance_stats.html#a6259647201f263969d57cee2df01d984',1,'Jinx::PerformanceStats']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /Docs/API/html/splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/splitbar.png -------------------------------------------------------------------------------- /Docs/API/html/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/sync_off.png -------------------------------------------------------------------------------- /Docs/API/html/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/sync_on.png -------------------------------------------------------------------------------- /Docs/API/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/tab_a.png -------------------------------------------------------------------------------- /Docs/API/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/tab_b.png -------------------------------------------------------------------------------- /Docs/API/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/tab_h.png -------------------------------------------------------------------------------- /Docs/API/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/API/html/tab_s.png -------------------------------------------------------------------------------- /Docs/LibCore.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/LibCore.docx -------------------------------------------------------------------------------- /Docs/LibCore.htm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/LibCore.htm -------------------------------------------------------------------------------- /Docs/LibCore.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/LibCore.pdf -------------------------------------------------------------------------------- /Docs/Performance.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/Performance.docx -------------------------------------------------------------------------------- /Docs/Performance.htm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/Performance.htm -------------------------------------------------------------------------------- /Docs/Performance.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/Performance.pdf -------------------------------------------------------------------------------- /Docs/Tutorial.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/Tutorial.docx -------------------------------------------------------------------------------- /Docs/Tutorial.htm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/Tutorial.htm -------------------------------------------------------------------------------- /Docs/Tutorial.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamesBoer/Jinx/e8dc44bd931c3a47784ec9e49ae72e9661e8cd4f/Docs/Tutorial.pdf -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | The MIT License (MIT) 3 | 4 | Copyright (c) 2016 James Boer 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Jinx ![CI](https://github.com/JamesBoer/Jinx/workflows/CI/badge.svg) 2 | 3 | 4 | Jinx is a lightweight embeddable scripting language, written in modern C++, intended to be compiled and used from within a host application. The Jinx language is clean and simple, looking like a cross between pseudo-code and natural language phrases, thanks to its highly flexible function syntax and identifiers that can incorporate whitespace. 5 | 6 | It was inspired by languages such as Lua, Python, C++, AppleScript, and a few others. A significant design goal was to make Jinx not only simple to use as a language, but also to make it straightforward to integrate and use via the native API. Jinx scripts are designed to be executed asynchronously as co-routines, or even on separate threads, since the runtime is thread-safe. The language also uses no garbage collection, ensuring predictable CPU usage. This makes it a potential candidate for real-time applications like videogames. 7 | 8 | You can [visit the main Jinx website here](https://jamesboer.github.io/Jinx/), or [see recent changes](https://github.com/JamesBoer/Jinx/blob/master/Docs/Changelog.md) 9 | 10 | ## Getting Started with Jinx 11 | 12 | Jinx requires a C++ 17 compliant compiler to build, and it is available both as a traditional or header-only library. 13 | 14 | Jinx supports the CMake build system, so for CMake users, adding Jinx should be as simple as pointing your build scripts to the root folder of the project. Stand-alone build scripts for several platforms/IDEs are found in the ```Bin``` folder. Alternatively, to build the library manually, copy all the files within the ```Source``` folder to your project, add them via your IDE or build system of choice, and include ```Source/Jinx.h``` from your own source files. This should be reasonably simple, since the entire library is contained in a single folder. 15 | 16 | Using the header-only version is even simple. Include the header file ```Include/Jinx.hpp``` from your own source, which contains the entire library in a single amalgamated header. 17 | 18 | ## Your First Jinx Script 19 | 20 | Jinx is incredibly simple to use, requiring only a few lines of C++ code to compile and execute your first script. Here's a Hello, World that not only demonstrates the Jinx script, but all the C++ code required as well. 21 | 22 | ``` c++ 23 | #include "Jinx.h" 24 | 25 | // Create the Jinx runtime object 26 | auto runtime = Jinx::CreateRuntime(); 27 | 28 | // Text containing our Jinx script 29 | const char * scriptText = 30 | u8R"( 31 | 32 | -- Use the core library 33 | import core 34 | 35 | -- Write to the debug output 36 | write line "Hello, world!" 37 | 38 | )"; 39 | 40 | // Create and execute a script object 41 | auto script = runtime->ExecuteScript(scriptText); 42 | ``` 43 | 44 | There is a [more comprehensive tutorial](https://jamesboer.github.io/Jinx/Tutorial.pdf) on the Jinx website for anyone who wants to dive a bit deeper into the language. 45 | 46 | ## Jinx Status 47 | 48 | Jinx was released as 1.0.0 (stable) on January 1, 2019, after three years of development, refinement, and testing. Since then, mostly minor language features and API enhancements have been edded. Additional work, for the immediate future, will be restricted to bug fixing or critical refinements, with the intention of retaining backwards compatibility. 49 | 50 | -------------------------------------------------------------------------------- /Source/JxBuffer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | The Jinx library is distributed under the MIT License (MIT) 3 | https://opensource.org/licenses/MIT 4 | See LICENSE.TXT or Jinx.h for license details. 5 | Copyright (c) 2016 James Boer 6 | */ 7 | 8 | #include "JxInternal.h" 9 | 10 | namespace Jinx 11 | { 12 | inline_t Buffer::Buffer() 13 | : m_data(nullptr), m_size(0), m_capacity(0) 14 | { 15 | } 16 | 17 | inline_t Buffer::~Buffer() 18 | { 19 | MemFree(m_data, m_capacity); 20 | } 21 | 22 | inline_t size_t Buffer::Capacity() const 23 | { 24 | return m_capacity; 25 | } 26 | 27 | inline_t void Buffer::Clear() 28 | { 29 | m_size = 0; 30 | } 31 | 32 | inline_t void Buffer::Read(size_t * pos, void * data, size_t bytes) 33 | { 34 | assert(bytes <= (m_size - *pos)); 35 | size_t bytesToCopy = std::min(bytes, m_size - *pos); 36 | assert(bytesToCopy); 37 | assert(bytesToCopy == bytes); 38 | memcpy(data, m_data + *pos, bytesToCopy); 39 | *pos += bytes; 40 | } 41 | 42 | inline_t void Buffer::Read(size_t * pos, BufferPtr & buffer, size_t bytes) 43 | { 44 | assert(bytes <= (m_size - *pos)); 45 | size_t bytesToCopy = std::min(bytes, m_size - *pos); 46 | assert(bytesToCopy); 47 | assert(bytesToCopy == bytes); 48 | buffer->Reserve(bytesToCopy); 49 | memcpy(buffer->m_data, m_data + *pos, bytesToCopy); 50 | *pos += bytes; 51 | buffer->m_size = bytesToCopy; 52 | } 53 | 54 | inline_t void Buffer::Reserve(size_t size) 55 | { 56 | if (size <= m_capacity) 57 | return; 58 | m_data = static_cast(MemReallocate(m_data, size, m_capacity)); 59 | m_capacity = size; 60 | } 61 | 62 | inline_t void Buffer::Write(const void * data, size_t bytes) 63 | { 64 | assert(data && bytes); 65 | if (m_capacity < bytes) 66 | Reserve((m_capacity + bytes) + (m_capacity / 2)); 67 | memcpy(m_data, data, bytes); 68 | m_size = bytes; 69 | } 70 | 71 | inline_t void Buffer::Write(size_t * pos, const void * data, size_t bytes) 72 | { 73 | assert(*pos <= m_size); 74 | assert(data && bytes); 75 | if (m_capacity < (*pos + bytes)) 76 | Reserve((m_capacity + bytes) + (m_capacity / 2)); 77 | memcpy(m_data + *pos, data, bytes); 78 | *pos += bytes; 79 | if (m_size < *pos) 80 | m_size = *pos; 81 | } 82 | 83 | inline_t BufferPtr CreateBuffer() 84 | { 85 | return std::allocate_shared(Allocator()); 86 | } 87 | 88 | } // namespace Jinx 89 | -------------------------------------------------------------------------------- /Source/JxBuffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | The Jinx library is distributed under the MIT License (MIT) 3 | https://opensource.org/licenses/MIT 4 | See LICENSE.TXT or Jinx.h for license details. 5 | Copyright (c) 2016 James Boer 6 | */ 7 | 8 | #pragma once 9 | #ifndef JX_BUFFER_H__ 10 | #define JX_BUFFER_H__ 11 | 12 | /*! \file */ 13 | 14 | /*! \namespace */ 15 | namespace Jinx 16 | { 17 | class Buffer; 18 | using BufferPtr = std::shared_ptr; 19 | 20 | class Buffer 21 | { 22 | public: 23 | Buffer(); 24 | ~Buffer(); 25 | size_t Capacity() const; 26 | void Clear(); 27 | template 28 | void Read(size_t * pos, T data) 29 | { 30 | assert(sizeof(*data) <= (m_size - *pos)); 31 | *data = *reinterpret_cast(m_data + *pos); 32 | *pos += sizeof(*data); 33 | } 34 | void Read(size_t * pos, void * data, size_t bytes); 35 | void Read(size_t * pos, BufferPtr & buffer, size_t bytes); 36 | void Reserve(size_t size); 37 | inline uint8_t * Ptr() const { return m_data; } 38 | inline size_t Size() const { return m_size; } 39 | void Write(const void * data, size_t bytes); 40 | void Write(size_t * pos, const void * data, size_t bytes); 41 | 42 | private: 43 | uint8_t * m_data; 44 | size_t m_size; 45 | size_t m_capacity; 46 | }; 47 | 48 | 49 | BufferPtr CreateBuffer(); 50 | } 51 | 52 | #endif // JX_BUFFER_H__ 53 | -------------------------------------------------------------------------------- /Source/JxCollection.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | The Jinx library is distributed under the MIT License (MIT) 3 | https://opensource.org/licenses/MIT 4 | See LICENSE.TXT or Jinx.h for license details. 5 | Copyright (c) 2016 James Boer 6 | */ 7 | 8 | #include "JxInternal.h" 9 | 10 | 11 | namespace Jinx 12 | { 13 | inline_t CollectionPtr CreateCollection() 14 | { 15 | return std::allocate_shared(Allocator()); 16 | } 17 | 18 | } // namespace Jinx 19 | 20 | -------------------------------------------------------------------------------- /Source/JxCollection.h: -------------------------------------------------------------------------------- 1 | /* 2 | The Jinx library is distributed under the MIT License (MIT) 3 | https://opensource.org/licenses/MIT 4 | See LICENSE.TXT or Jinx.h for license details. 5 | Copyright (c) 2016 James Boer 6 | */ 7 | 8 | #pragma once 9 | #ifndef JX_COLLECTION_H__ 10 | #define JX_COLLECTION_H__ 11 | 12 | /*! \file */ 13 | 14 | /*! \namespace */ 15 | namespace Jinx 16 | { 17 | class Variant; 18 | using Collection = std::map, Allocator>>; 19 | using CollectionPtr = std::shared_ptr; 20 | using CollectionItr = Collection::iterator; 21 | using CollectionItrPair = std::pair; 22 | CollectionPtr CreateCollection(); 23 | } 24 | 25 | #endif // JX_COLLECTION_H__ 26 | 27 | -------------------------------------------------------------------------------- /Source/JxConversion.h: -------------------------------------------------------------------------------- 1 | /* 2 | The Jinx library is distributed under the MIT License (MIT) 3 | https://opensource.org/licenses/MIT 4 | See LICENSE.TXT or Jinx.h for license details. 5 | Copyright (c) 2016 James Boer 6 | */ 7 | 8 | #pragma once 9 | #ifndef JX_CONVERSION_H__ 10 | #define JX_CONVERSION_H__ 11 | 12 | 13 | namespace Jinx::Impl 14 | { 15 | 16 | // Convert value type to byte and back 17 | ValueType ByteToValueType(uint8_t byte); 18 | uint8_t ValueTypeToByte(ValueType type); 19 | 20 | // Null conversions 21 | constexpr inline double NullToNumber() { return 0.0; } 22 | constexpr inline int64_t NullToInteger() { return 0ll; } 23 | constexpr inline bool NullToBoolean() { return false; } 24 | inline String NullToString() { return String("null"); } 25 | 26 | // Number conversions 27 | inline int64_t NumberToInteger(double value) { return static_cast(value); } 28 | inline bool NumberToBoolean(double value) { return value != 0.0f ? true : false; } 29 | inline String NumberToString(double value) 30 | { 31 | char buffer[32]; 32 | snprintf(buffer, 32, "%.6f", value); 33 | return String(buffer); 34 | } 35 | 36 | // Integer conversions 37 | inline double IntegerToNumber(int64_t value) { return static_cast(value); } 38 | inline bool IntegerToBoolean(int64_t value) { return value != 0 ? true : false; } 39 | inline String IntegerToString(int64_t value) 40 | { 41 | char buffer[32]; 42 | snprintf(buffer, 32, "%" PRId64, value); 43 | return String(buffer); 44 | } 45 | 46 | // Unsigned integer conversions 47 | inline String UnsignedIntegerToString(uint64_t value) 48 | { 49 | char buffer[32]; 50 | snprintf(buffer, 32, "%" PRIu64, value); 51 | return String(buffer); 52 | } 53 | 54 | // Boolean conversions 55 | inline double BooleanToNumber(bool value) { return value ? 1.0 : 0.0; } 56 | inline int64_t BooleanToInteger(bool value) { return value ? 1ll : 0ll; } 57 | inline String BooleanToString(bool value) { return value ? String("true") : String("false"); } 58 | 59 | enum class NumericFormat 60 | { 61 | International, // Uses dot as decimal indicator 62 | Continental // Uses comma as decimal indicator 63 | }; 64 | 65 | // String conversions 66 | bool StringToBoolean(const String & inValue, bool * outValue); 67 | bool StringToNumber(const String & value, double * outValue, NumericFormat format = NumericFormat::International); 68 | bool StringToInteger(const String & value, int64_t * outValue); 69 | bool StringToValueType(const String & value, ValueType * outValue); 70 | bool StringToGuid(const String & value, Guid * outValue); 71 | bool StringToCollection(const String & value, CollectionPtr * outValue); 72 | 73 | // GUID conversions 74 | String GuidToString(const Guid & value); 75 | 76 | } // namespace Jinx::Impl 77 | 78 | #endif // JX_CONVERSION_H__ 79 | 80 | -------------------------------------------------------------------------------- /Source/JxCoroutine.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | The Jinx library is distributed under the MIT License (MIT) 3 | https://opensource.org/licenses/MIT 4 | See LICENSE.TXT or Jinx.h for license details. 5 | Copyright (c) 2016 James Boer 6 | */ 7 | 8 | #include "JxInternal.h" 9 | 10 | 11 | namespace Jinx::Impl 12 | { 13 | 14 | class Coroutine final : public ICoroutine 15 | { 16 | public: 17 | Coroutine(const std::shared_ptr