├── py
├── core
│ └── DUMMY_README.md
├── docs
│ └── DUMMY_README.md
├── libs
│ └── DUMMY_README.md
├── diag
│ ├── data
│ │ ├── DUMMY_README.md
│ │ ├── initial_diag_file_resource_example.txt
│ │ └── data_partikel_pun.txt
│ ├── libs
│ │ └── DUMMY_README.md
│ ├── core
│ │ ├── PySipebiHelper.py
│ │ ├── PySipebiDiagnosticsError.py
│ │ └── PySipebiDiagnosticsBase.py
│ ├── PySipebiDiagAturanPartikelLahKahTah.py
│ ├── PySipebiDiagAturanAngkaBilanganBesar.py
│ ├── PySipebiDiagAturanPartikelPun.py
│ ├── README.md
│ ├── PySipebiDiagExample.py
│ └── PySipebiDiagAturanTandaBacaPadaDialog.py
├── data
│ ├── initial_file_resource_example.txt
│ ├── PySipebiDiagAturanAngkaBilanganBesar_common_check.txt
│ ├── results
│ │ ├── PySipebiDiagAturanPartikelPun_result.txt
│ │ ├── PySipebiDiagAturanPartikelLahKahTah_result.txt
│ │ ├── PySipebiDiagAturanAngkaBilanganBesar_Val_result.txt
│ │ └── PySipebiDiagAturanTandaBacaPadaDialog_result.txt
│ ├── PySipebiDiagAturanAngkaBilanganBesar_test.txt
│ ├── PySipebiDiagAturanPartikelPun_test.txt
│ ├── PySipebiDiagAturanPartikelPun_common_check.txt
│ ├── PySipebiPerbaikanKataHubung_common_check.txt
│ ├── PySipebiPerbaikanKataHubung_test.txt
│ ├── PySipebiDiagAturanPartikelLahKahTah_common_check.txt
│ ├── PySipebiPerbaikanKataHubung_result.txt
│ ├── PySipebiDiagAturanPartikelLahKahTah_test.txt
│ ├── PySipebiDiagAturanTandaBacaPadaDialog_common_check.txt
│ ├── PySipebiDiagAturanTandaBacaPadaDialog_test.txt
│ └── README.md
├── PySipebiCommonValidationRunner.py
├── README.md
├── PySipebiDiagAturanPartikelPun_Val.py
├── PySipebiDiagAturanPartikelLahKahTah_Val.py
├── PySipebiDiagAturanAngkaBilanganBesar_Val.py
├── PySipebiDiagExample_Val.py
└── PySipebiDiagAturanTandaBacaPadaDialog_Val.py
├── packages
├── System.Buffers.4.5.1
│ ├── lib
│ │ ├── netcoreapp2.0
│ │ │ └── _._
│ │ ├── uap10.0.16299
│ │ │ └── _._
│ │ ├── net461
│ │ │ ├── System.Buffers.dll
│ │ │ └── System.Buffers.xml
│ │ ├── netstandard1.1
│ │ │ ├── System.Buffers.dll
│ │ │ └── System.Buffers.xml
│ │ └── netstandard2.0
│ │ │ ├── System.Buffers.dll
│ │ │ └── System.Buffers.xml
│ ├── ref
│ │ ├── netcoreapp2.0
│ │ │ └── _._
│ │ ├── uap10.0.16299
│ │ │ └── _._
│ │ ├── net45
│ │ │ ├── System.Buffers.dll
│ │ │ └── System.Buffers.xml
│ │ ├── netstandard1.1
│ │ │ ├── System.Buffers.dll
│ │ │ └── System.Buffers.xml
│ │ └── netstandard2.0
│ │ │ ├── System.Buffers.dll
│ │ │ └── System.Buffers.xml
│ ├── useSharedDesignerContext.txt
│ ├── version.txt
│ ├── .signature.p7s
│ ├── System.Buffers.4.5.1.nupkg
│ └── LICENSE.TXT
├── System.Memory.4.5.5
│ ├── lib
│ │ ├── netcoreapp2.1
│ │ │ └── _._
│ │ ├── net461
│ │ │ └── System.Memory.dll
│ │ ├── netstandard1.1
│ │ │ └── System.Memory.dll
│ │ └── netstandard2.0
│ │ │ └── System.Memory.dll
│ ├── ref
│ │ └── netcoreapp2.1
│ │ │ └── _._
│ ├── useSharedDesignerContext.txt
│ ├── version.txt
│ ├── .signature.p7s
│ ├── System.Memory.4.5.5.nupkg
│ └── LICENSE.TXT
├── System.Numerics.Vectors.4.5.0
│ ├── lib
│ │ ├── MonoTouch10
│ │ │ └── _._
│ │ ├── MonoAndroid10
│ │ │ └── _._
│ │ ├── netcoreapp2.0
│ │ │ └── _._
│ │ ├── uap10.0.16299
│ │ │ └── _._
│ │ ├── xamarinios10
│ │ │ └── _._
│ │ ├── xamarinmac20
│ │ │ └── _._
│ │ ├── xamarintvos10
│ │ │ └── _._
│ │ ├── xamarinwatchos10
│ │ │ └── _._
│ │ ├── net46
│ │ │ └── System.Numerics.Vectors.dll
│ │ ├── netstandard1.0
│ │ │ └── System.Numerics.Vectors.dll
│ │ ├── netstandard2.0
│ │ │ └── System.Numerics.Vectors.dll
│ │ └── portable-net45+win8+wp8+wpa81
│ │ │ └── System.Numerics.Vectors.dll
│ ├── ref
│ │ ├── MonoTouch10
│ │ │ └── _._
│ │ ├── MonoAndroid10
│ │ │ └── _._
│ │ ├── netcoreapp2.0
│ │ │ └── _._
│ │ ├── uap10.0.16299
│ │ │ └── _._
│ │ ├── xamarinios10
│ │ │ └── _._
│ │ ├── xamarinmac20
│ │ │ └── _._
│ │ ├── xamarintvos10
│ │ │ └── _._
│ │ ├── xamarinwatchos10
│ │ │ └── _._
│ │ ├── net45
│ │ │ └── System.Numerics.Vectors.dll
│ │ ├── net46
│ │ │ └── System.Numerics.Vectors.dll
│ │ ├── netstandard1.0
│ │ │ └── System.Numerics.Vectors.dll
│ │ └── netstandard2.0
│ │ │ └── System.Numerics.Vectors.dll
│ ├── useSharedDesignerContext.txt
│ ├── version.txt
│ ├── .signature.p7s
│ ├── System.Numerics.Vectors.4.5.0.nupkg
│ └── LICENSE.TXT
├── System.Runtime.CompilerServices.Unsafe.4.5.3
│ ├── useSharedDesignerContext.txt
│ ├── version.txt
│ ├── .signature.p7s
│ ├── System.Runtime.CompilerServices.Unsafe.4.5.3.nupkg
│ ├── lib
│ │ ├── net461
│ │ │ └── System.Runtime.CompilerServices.Unsafe.dll
│ │ ├── netcoreapp2.0
│ │ │ └── System.Runtime.CompilerServices.Unsafe.dll
│ │ ├── netstandard1.0
│ │ │ └── System.Runtime.CompilerServices.Unsafe.dll
│ │ └── netstandard2.0
│ │ │ └── System.Runtime.CompilerServices.Unsafe.dll
│ ├── ref
│ │ ├── net461
│ │ │ └── System.Runtime.CompilerServices.Unsafe.dll
│ │ ├── netstandard1.0
│ │ │ └── System.Runtime.CompilerServices.Unsafe.dll
│ │ └── netstandard2.0
│ │ │ └── System.Runtime.CompilerServices.Unsafe.dll
│ └── LICENSE.TXT
├── IronPython.3.4.1
│ ├── logo.png
│ ├── .signature.p7s
│ ├── IronPython.3.4.1.nupkg
│ ├── lib
│ │ ├── net462
│ │ │ ├── IronPython.dll
│ │ │ ├── IronPython.Wpf.dll
│ │ │ ├── IronPython.Modules.dll
│ │ │ ├── IronPython.SQLite.dll
│ │ │ ├── IronPython.SQLite.xml
│ │ │ └── IronPython.Wpf.xml
│ │ ├── net6.0
│ │ │ ├── IronPython.dll
│ │ │ ├── IronPython.Wpf.dll
│ │ │ ├── IronPython.Modules.dll
│ │ │ ├── IronPython.SQLite.dll
│ │ │ ├── IronPython.SQLite.xml
│ │ │ └── IronPython.Wpf.xml
│ │ ├── netcoreapp3.1
│ │ │ ├── IronPython.dll
│ │ │ ├── IronPython.Wpf.dll
│ │ │ ├── IronPython.Modules.dll
│ │ │ ├── IronPython.SQLite.dll
│ │ │ ├── IronPython.SQLite.xml
│ │ │ └── IronPython.Wpf.xml
│ │ └── netstandard2.0
│ │ │ ├── IronPython.dll
│ │ │ ├── IronPython.SQLite.dll
│ │ │ ├── IronPython.Modules.dll
│ │ │ └── IronPython.SQLite.xml
│ └── README.md
└── DynamicLanguageRuntime.1.3.4
│ ├── .signature.p7s
│ ├── lib
│ ├── net452
│ │ ├── Microsoft.Dynamic.dll
│ │ ├── Microsoft.Scripting.dll
│ │ └── Microsoft.Scripting.Metadata.dll
│ ├── net6.0
│ │ ├── Microsoft.Dynamic.dll
│ │ ├── Microsoft.Scripting.dll
│ │ └── Microsoft.Scripting.Metadata.dll
│ ├── netcoreapp3.1
│ │ ├── Microsoft.Dynamic.dll
│ │ ├── Microsoft.Scripting.dll
│ │ └── Microsoft.Scripting.Metadata.dll
│ └── netstandard2.0
│ │ ├── Microsoft.Dynamic.dll
│ │ ├── Microsoft.Scripting.dll
│ │ └── Microsoft.Scripting.Metadata.dll
│ ├── DynamicLanguageRuntime.1.3.4.nupkg
│ └── README.md
├── bin
├── Debug
│ ├── kata.sipebi
│ ├── SipebiMini.Core.dll
│ ├── pengaturan.sipebi
│ ├── SipebiMini.Editor.exe
│ ├── SipebiMini.Analyser.exe
│ ├── tambahan-data-buatan.txt
│ ├── pengaturan-pengguna.xml
│ ├── contoh-teks.txt
│ └── daftar-diagnosis.xml
└── Release
│ ├── kata.sipebi
│ ├── SipebiMini.exe
│ ├── SipebiMini.pdb
│ ├── pengaturan.sipebi
│ ├── SipebiMini.Core.dll
│ ├── SipebiMini.Editor.exe
│ ├── SipebiMini.Analyser.exe
│ ├── SipebiMini.exe.config
│ ├── tambahan-data-buatan.txt
│ ├── pengaturan-pengguna.xml
│ ├── contoh-teks.txt
│ └── daftar-diagnosis.xml
├── Morphology
├── IndoMorph-Dataset.xlsx
└── IndoMorph-Earlier-Dataset.xlsx
├── Analyses
└── EYD Analyzed Simplified v4.xlsx
├── CODEOWNERS
├── Properties
├── Settings.settings
├── Settings.Designer.cs
├── AssemblyInfo.cs
├── Resources.Designer.cs
└── Resources.resx
├── Program.cs
├── packages.config
├── initiator.bat
├── App.config
├── SipebiMini.Sample.sln
├── FileHelper.cs
├── Files
├── contoh-teks.txt
├── daftar-diagnosis-tambahan.xml
└── daftar-diagnosis.xml
├── README.md
├── SipebiMiniForm.cs
└── SipebiMini.Sample.csproj
/py/core/DUMMY_README.md:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/py/docs/DUMMY_README.md:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/py/libs/DUMMY_README.md:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/py/diag/data/DUMMY_README.md:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/py/diag/libs/DUMMY_README.md:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/lib/netcoreapp2.0/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/lib/uap10.0.16299/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/ref/netcoreapp2.0/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/ref/uap10.0.16299/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Memory.4.5.5/lib/netcoreapp2.1/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Memory.4.5.5/ref/netcoreapp2.1/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/useSharedDesignerContext.txt:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Memory.4.5.5/useSharedDesignerContext.txt:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/lib/MonoTouch10/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/ref/MonoTouch10/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/lib/MonoAndroid10/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/lib/netcoreapp2.0/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/lib/uap10.0.16299/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/lib/xamarinios10/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/lib/xamarinmac20/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/lib/xamarintvos10/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/lib/xamarinwatchos10/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/ref/MonoAndroid10/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/ref/netcoreapp2.0/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/ref/uap10.0.16299/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/ref/xamarinios10/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/ref/xamarinmac20/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/ref/xamarintvos10/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/ref/xamarinwatchos10/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/useSharedDesignerContext.txt:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/useSharedDesignerContext.txt:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/version.txt:
--------------------------------------------------------------------------------
1 | 7601f4f6225089ffb291dc7d58293c7bbf5c5d4f
2 |
--------------------------------------------------------------------------------
/packages/System.Memory.4.5.5/version.txt:
--------------------------------------------------------------------------------
1 | 32b491939fbd125f304031c35038b1e14b4e3958
2 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/version.txt:
--------------------------------------------------------------------------------
1 | 30ab651fcb4354552bd4891619a0bdd81e0ebdbf
2 |
--------------------------------------------------------------------------------
/py/data/initial_file_resource_example.txt:
--------------------------------------------------------------------------------
1 | isi
2 | dari
3 | file
4 | resource
5 | skrip validasi
--------------------------------------------------------------------------------
/bin/Debug/kata.sipebi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/bin/Debug/kata.sipebi
--------------------------------------------------------------------------------
/bin/Release/kata.sipebi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/bin/Release/kata.sipebi
--------------------------------------------------------------------------------
/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/version.txt:
--------------------------------------------------------------------------------
1 | 7601f4f6225089ffb291dc7d58293c7bbf5c5d4f
2 |
--------------------------------------------------------------------------------
/py/data/PySipebiDiagAturanAngkaBilanganBesar_common_check.txt:
--------------------------------------------------------------------------------
1 | KG05
2 | 1
3 | KG05|01|05|100.000.000|100 juta|False
--------------------------------------------------------------------------------
/bin/Release/SipebiMini.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/bin/Release/SipebiMini.exe
--------------------------------------------------------------------------------
/bin/Release/SipebiMini.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/bin/Release/SipebiMini.pdb
--------------------------------------------------------------------------------
/bin/Debug/SipebiMini.Core.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/bin/Debug/SipebiMini.Core.dll
--------------------------------------------------------------------------------
/bin/Debug/pengaturan.sipebi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/bin/Debug/pengaturan.sipebi
--------------------------------------------------------------------------------
/bin/Release/pengaturan.sipebi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/bin/Release/pengaturan.sipebi
--------------------------------------------------------------------------------
/bin/Debug/SipebiMini.Editor.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/bin/Debug/SipebiMini.Editor.exe
--------------------------------------------------------------------------------
/bin/Release/SipebiMini.Core.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/bin/Release/SipebiMini.Core.dll
--------------------------------------------------------------------------------
/Morphology/IndoMorph-Dataset.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/Morphology/IndoMorph-Dataset.xlsx
--------------------------------------------------------------------------------
/bin/Debug/SipebiMini.Analyser.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/bin/Debug/SipebiMini.Analyser.exe
--------------------------------------------------------------------------------
/bin/Release/SipebiMini.Editor.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/bin/Release/SipebiMini.Editor.exe
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/IronPython.3.4.1/logo.png
--------------------------------------------------------------------------------
/py/diag/data/initial_diag_file_resource_example.txt:
--------------------------------------------------------------------------------
1 | isi
2 | dari
3 | file
4 | resource
5 | skrip diagnosis
6 | atau
7 | skrip validasi
--------------------------------------------------------------------------------
/bin/Release/SipebiMini.Analyser.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/bin/Release/SipebiMini.Analyser.exe
--------------------------------------------------------------------------------
/py/data/results/PySipebiDiagAturanPartikelPun_result.txt:
--------------------------------------------------------------------------------
1 | complete
2 | pass
3 | 0 common mistakes found
4 | 0 special mistakes found
5 |
--------------------------------------------------------------------------------
/Analyses/EYD Analyzed Simplified v4.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/Analyses/EYD Analyzed Simplified v4.xlsx
--------------------------------------------------------------------------------
/Morphology/IndoMorph-Earlier-Dataset.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/Morphology/IndoMorph-Earlier-Dataset.xlsx
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/.signature.p7s:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/IronPython.3.4.1/.signature.p7s
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/.signature.p7s:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Buffers.4.5.1/.signature.p7s
--------------------------------------------------------------------------------
/packages/System.Memory.4.5.5/.signature.p7s:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Memory.4.5.5/.signature.p7s
--------------------------------------------------------------------------------
/py/data/PySipebiDiagAturanAngkaBilanganBesar_test.txt:
--------------------------------------------------------------------------------
1 | Dia berhasil mengumpulkan donasi 100.000.000 untuk biaya sekolah anak-anak kurang mampu di desanya.
--------------------------------------------------------------------------------
/py/data/results/PySipebiDiagAturanPartikelLahKahTah_result.txt:
--------------------------------------------------------------------------------
1 | complete
2 | pass
3 | 0 common mistakes found
4 | 0 special mistakes found
5 |
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/IronPython.3.4.1.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/IronPython.3.4.1/IronPython.3.4.1.nupkg
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/net462/IronPython.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/IronPython.3.4.1/lib/net462/IronPython.dll
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/net6.0/IronPython.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/IronPython.3.4.1/lib/net6.0/IronPython.dll
--------------------------------------------------------------------------------
/packages/DynamicLanguageRuntime.1.3.4/.signature.p7s:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/DynamicLanguageRuntime.1.3.4/.signature.p7s
--------------------------------------------------------------------------------
/packages/System.Memory.4.5.5/System.Memory.4.5.5.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Memory.4.5.5/System.Memory.4.5.5.nupkg
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/.signature.p7s:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Numerics.Vectors.4.5.0/.signature.p7s
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/net462/IronPython.Wpf.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/IronPython.3.4.1/lib/net462/IronPython.Wpf.dll
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/net6.0/IronPython.Wpf.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/IronPython.3.4.1/lib/net6.0/IronPython.Wpf.dll
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/System.Buffers.4.5.1.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Buffers.4.5.1/System.Buffers.4.5.1.nupkg
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/net462/IronPython.Modules.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/IronPython.3.4.1/lib/net462/IronPython.Modules.dll
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/net462/IronPython.SQLite.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/IronPython.3.4.1/lib/net462/IronPython.SQLite.dll
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/net6.0/IronPython.Modules.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/IronPython.3.4.1/lib/net6.0/IronPython.Modules.dll
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/net6.0/IronPython.SQLite.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/IronPython.3.4.1/lib/net6.0/IronPython.SQLite.dll
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/netcoreapp3.1/IronPython.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/IronPython.3.4.1/lib/netcoreapp3.1/IronPython.dll
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/netstandard2.0/IronPython.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/IronPython.3.4.1/lib/netstandard2.0/IronPython.dll
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/lib/net461/System.Buffers.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Buffers.4.5.1/lib/net461/System.Buffers.dll
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/ref/net45/System.Buffers.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Buffers.4.5.1/ref/net45/System.Buffers.dll
--------------------------------------------------------------------------------
/packages/System.Memory.4.5.5/lib/net461/System.Memory.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Memory.4.5.5/lib/net461/System.Memory.dll
--------------------------------------------------------------------------------
/py/data/PySipebiDiagAturanPartikelPun_test.txt:
--------------------------------------------------------------------------------
1 | Merekapun sering menyanyikan lagu daerah di acara kenegaraan.
2 | Biar pun kalah, dia tidak sedih.
3 | Meski pun kalah, dia tidak sedih.
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/netcoreapp3.1/IronPython.Wpf.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/IronPython.3.4.1/lib/netcoreapp3.1/IronPython.Wpf.dll
--------------------------------------------------------------------------------
/py/data/PySipebiDiagAturanPartikelPun_common_check.txt:
--------------------------------------------------------------------------------
1 | KE02, KE03
2 | 3
3 | KE02|01|01|Merekapun|Mereka pun|False
4 | KE03|02|01|Biar pun|Biarpun|False
5 | KE04|03|01|Meski pun|Meskipun|False
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/netcoreapp3.1/IronPython.Modules.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/IronPython.3.4.1/lib/netcoreapp3.1/IronPython.Modules.dll
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/netcoreapp3.1/IronPython.SQLite.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/IronPython.3.4.1/lib/netcoreapp3.1/IronPython.SQLite.dll
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/netstandard2.0/IronPython.SQLite.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/IronPython.3.4.1/lib/netstandard2.0/IronPython.SQLite.dll
--------------------------------------------------------------------------------
/packages/System.Memory.4.5.5/lib/netstandard1.1/System.Memory.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Memory.4.5.5/lib/netstandard1.1/System.Memory.dll
--------------------------------------------------------------------------------
/packages/System.Memory.4.5.5/lib/netstandard2.0/System.Memory.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Memory.4.5.5/lib/netstandard2.0/System.Memory.dll
--------------------------------------------------------------------------------
/py/data/results/PySipebiDiagAturanAngkaBilanganBesar_Val_result.txt:
--------------------------------------------------------------------------------
1 | fail
2 | Exception: ('list index out of range',)
3 | fail
4 | 0 common mistakes found
5 | 0 special mistakes found
6 |
--------------------------------------------------------------------------------
/py/data/results/PySipebiDiagAturanTandaBacaPadaDialog_result.txt:
--------------------------------------------------------------------------------
1 | complete
2 | fail
3 | 1 common mistakes found
4 | P1 E2 | Expected 'ibu,,' but got 'ibu,'
5 | 0 special mistakes found
6 |
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/netstandard2.0/IronPython.Modules.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/IronPython.3.4.1/lib/netstandard2.0/IronPython.Modules.dll
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/lib/netstandard1.1/System.Buffers.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Buffers.4.5.1/lib/netstandard1.1/System.Buffers.dll
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/lib/netstandard2.0/System.Buffers.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Buffers.4.5.1/lib/netstandard2.0/System.Buffers.dll
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/ref/netstandard1.1/System.Buffers.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Buffers.4.5.1/ref/netstandard1.1/System.Buffers.dll
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/ref/netstandard2.0/System.Buffers.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Buffers.4.5.1/ref/netstandard2.0/System.Buffers.dll
--------------------------------------------------------------------------------
/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/.signature.p7s:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/.signature.p7s
--------------------------------------------------------------------------------
/packages/DynamicLanguageRuntime.1.3.4/lib/net452/Microsoft.Dynamic.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/DynamicLanguageRuntime.1.3.4/lib/net452/Microsoft.Dynamic.dll
--------------------------------------------------------------------------------
/packages/DynamicLanguageRuntime.1.3.4/lib/net6.0/Microsoft.Dynamic.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/DynamicLanguageRuntime.1.3.4/lib/net6.0/Microsoft.Dynamic.dll
--------------------------------------------------------------------------------
/packages/DynamicLanguageRuntime.1.3.4/DynamicLanguageRuntime.1.3.4.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/DynamicLanguageRuntime.1.3.4/DynamicLanguageRuntime.1.3.4.nupkg
--------------------------------------------------------------------------------
/packages/DynamicLanguageRuntime.1.3.4/lib/net452/Microsoft.Scripting.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/DynamicLanguageRuntime.1.3.4/lib/net452/Microsoft.Scripting.dll
--------------------------------------------------------------------------------
/packages/DynamicLanguageRuntime.1.3.4/lib/net6.0/Microsoft.Scripting.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/DynamicLanguageRuntime.1.3.4/lib/net6.0/Microsoft.Scripting.dll
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/System.Numerics.Vectors.4.5.0.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Numerics.Vectors.4.5.0/System.Numerics.Vectors.4.5.0.nupkg
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/lib/net46/System.Numerics.Vectors.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Numerics.Vectors.4.5.0/lib/net46/System.Numerics.Vectors.dll
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/ref/net45/System.Numerics.Vectors.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Numerics.Vectors.4.5.0/ref/net45/System.Numerics.Vectors.dll
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/ref/net46/System.Numerics.Vectors.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Numerics.Vectors.4.5.0/ref/net46/System.Numerics.Vectors.dll
--------------------------------------------------------------------------------
/packages/DynamicLanguageRuntime.1.3.4/lib/netcoreapp3.1/Microsoft.Dynamic.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/DynamicLanguageRuntime.1.3.4/lib/netcoreapp3.1/Microsoft.Dynamic.dll
--------------------------------------------------------------------------------
/packages/DynamicLanguageRuntime.1.3.4/lib/netcoreapp3.1/Microsoft.Scripting.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/DynamicLanguageRuntime.1.3.4/lib/netcoreapp3.1/Microsoft.Scripting.dll
--------------------------------------------------------------------------------
/packages/DynamicLanguageRuntime.1.3.4/lib/netstandard2.0/Microsoft.Dynamic.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/DynamicLanguageRuntime.1.3.4/lib/netstandard2.0/Microsoft.Dynamic.dll
--------------------------------------------------------------------------------
/py/data/PySipebiPerbaikanKataHubung_common_check.txt:
--------------------------------------------------------------------------------
1 | KH01, KH02, Sipebi Error 1
2 | 3
3 | KH01|01|02|burungburung|burung-burung|False
4 | KH01|01|13|berhari hari|berhari-hari|False
5 | KH01|02|08|Kurukuru,|kuru-kuru,|True
--------------------------------------------------------------------------------
/packages/DynamicLanguageRuntime.1.3.4/lib/net452/Microsoft.Scripting.Metadata.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/DynamicLanguageRuntime.1.3.4/lib/net452/Microsoft.Scripting.Metadata.dll
--------------------------------------------------------------------------------
/packages/DynamicLanguageRuntime.1.3.4/lib/net6.0/Microsoft.Scripting.Metadata.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/DynamicLanguageRuntime.1.3.4/lib/net6.0/Microsoft.Scripting.Metadata.dll
--------------------------------------------------------------------------------
/packages/DynamicLanguageRuntime.1.3.4/lib/netstandard2.0/Microsoft.Scripting.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/DynamicLanguageRuntime.1.3.4/lib/netstandard2.0/Microsoft.Scripting.dll
--------------------------------------------------------------------------------
/py/diag/data/data_partikel_pun.txt:
--------------------------------------------------------------------------------
1 | adapun
2 | andaipun
3 | ataupun
4 | bagaimanapun
5 | biarpun
6 | jikapun
7 | kalaupun
8 | kendatipun
9 | maupun
10 | meskipun
11 | sekalipun
12 | sementangpun
13 | sungguhpun
14 | walaupun
--------------------------------------------------------------------------------
/CODEOWNERS:
--------------------------------------------------------------------------------
1 | # These owners will be the default owners for everything in
2 | # the repo. Unless a later match takes precedence,
3 | # @ian5666987 will be requested for
4 | # review when someone opens a pull request.
5 | * @ian5666987
--------------------------------------------------------------------------------
/bin/Release/SipebiMini.exe.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/lib/netstandard1.0/System.Numerics.Vectors.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Numerics.Vectors.4.5.0/lib/netstandard1.0/System.Numerics.Vectors.dll
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/lib/netstandard2.0/System.Numerics.Vectors.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Numerics.Vectors.4.5.0/lib/netstandard2.0/System.Numerics.Vectors.dll
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/ref/netstandard1.0/System.Numerics.Vectors.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Numerics.Vectors.4.5.0/ref/netstandard1.0/System.Numerics.Vectors.dll
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/ref/netstandard2.0/System.Numerics.Vectors.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Numerics.Vectors.4.5.0/ref/netstandard2.0/System.Numerics.Vectors.dll
--------------------------------------------------------------------------------
/packages/DynamicLanguageRuntime.1.3.4/lib/netcoreapp3.1/Microsoft.Scripting.Metadata.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/DynamicLanguageRuntime.1.3.4/lib/netcoreapp3.1/Microsoft.Scripting.Metadata.dll
--------------------------------------------------------------------------------
/packages/DynamicLanguageRuntime.1.3.4/lib/netstandard2.0/Microsoft.Scripting.Metadata.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/DynamicLanguageRuntime.1.3.4/lib/netstandard2.0/Microsoft.Scripting.Metadata.dll
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Numerics.Vectors.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.dll
--------------------------------------------------------------------------------
/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/System.Runtime.CompilerServices.Unsafe.4.5.3.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/System.Runtime.CompilerServices.Unsafe.4.5.3.nupkg
--------------------------------------------------------------------------------
/py/data/PySipebiPerbaikanKataHubung_test.txt:
--------------------------------------------------------------------------------
1 | Bahkan burungburung di sana tidak mendapatkan cukup makanan. Dan ini sudah terjadi berhari hari.
2 | Aku pergi mengunjungi kebun binatang itu bersama Kurukuru, teman baikku. Sudah berjam-jam kami berjalan di kebun binatang.
3 |
--------------------------------------------------------------------------------
/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/lib/net461/System.Runtime.CompilerServices.Unsafe.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/lib/net461/System.Runtime.CompilerServices.Unsafe.dll
--------------------------------------------------------------------------------
/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/ref/net461/System.Runtime.CompilerServices.Unsafe.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/ref/net461/System.Runtime.CompilerServices.Unsafe.dll
--------------------------------------------------------------------------------
/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll
--------------------------------------------------------------------------------
/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll
--------------------------------------------------------------------------------
/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll
--------------------------------------------------------------------------------
/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll
--------------------------------------------------------------------------------
/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ian5666987/Sipebi-Mini-Sample/HEAD/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll
--------------------------------------------------------------------------------
/bin/Release/tambahan-data-buatan.txt:
--------------------------------------------------------------------------------
1 | sdh|sudah
2 | utk|untuk
3 | kpd|kepada
4 | tll|terlalu
5 | spt|seperti
6 | rmh|rumah,ramah
7 | rpt|rapat,repot
8 | msk|masuk,masak,musik
9 | byk|banyak
10 | yg|yang
11 | tdk|tidak
12 | dpt|dapat
13 | dgn|dengan
14 | org|orang
15 | jg|juga
16 | sdg|sedang
--------------------------------------------------------------------------------
/py/data/PySipebiDiagAturanPartikelLahKahTah_common_check.txt:
--------------------------------------------------------------------------------
1 | KE01
2 | 6
3 | KE01|01|07|mantap lah|mantaplah|False
4 | KE01|02|01|Bukan kah|Bukankah|False
5 | KE01|03|01|Aku tah|Akutah|False
6 | KE01|04|01|Apa tah|Apatah|False
7 | KE01|04|10|merah lah|merahlah|False
8 | KE01|04|11|atau kah|ataukah|False
--------------------------------------------------------------------------------
/bin/Debug/tambahan-data-buatan.txt:
--------------------------------------------------------------------------------
1 | sdh|sudah
2 | utk|untuk
3 | kpd|kepada
4 | tll|terlalu
5 | spt|seperti
6 | rmh|rumah,ramah
7 | rpt|rapat,repot
8 | msk|masuk,masak,musik
9 | byk|banyak
10 | yg|yang
11 | tdk|tidak
12 | dpt|dapat
13 | dgn|dengan
14 | org|orang
15 | jg|juga
16 | sdg|sedang
17 | jgn|jangan
--------------------------------------------------------------------------------
/py/data/PySipebiPerbaikanKataHubung_result.txt:
--------------------------------------------------------------------------------
1 | complete
2 | fail
3 | 2
4 | diagnostics index [1] [berhari hari] is not generated by [PySipebiPerbaikanKataHubung.py]
5 | [IsAmbiguous] value for diagnostics index [2] [Kurukuru, -> kuru-kuru,] is [False]. Excpected: [True]
6 | 1
7 | special comments for special mistakes here
8 |
--------------------------------------------------------------------------------
/py/data/PySipebiDiagAturanPartikelLahKahTah_test.txt:
--------------------------------------------------------------------------------
1 | Setelah mendapatkan dukungan dari para tetua, mantap lah dia membuat keputusan itu.
2 | Bukan kah bulan ini seharusnya sudah memasuki musim kemarau?
3 | Aku tah yang dia panggil?
4 | Apa tah perkataan ku yang membuat nya marah hingga merah lah muka nya seperti itu atau kah ada sebab lain nya?
--------------------------------------------------------------------------------
/py/diag/core/PySipebiHelper.py:
--------------------------------------------------------------------------------
1 | # This file contains helper methods for PySipebi
2 | import os
3 |
4 | class PySipebiHelper:
5 | @staticmethod
6 | def find_proper_path(filepath):
7 | if filepath is not None and not os.path.isfile(filepath) and filepath.startswith('py\\'):
8 | return filepath[len('py\\'):]
9 | return filepath
10 |
--------------------------------------------------------------------------------
/py/data/PySipebiDiagAturanTandaBacaPadaDialog_common_check.txt:
--------------------------------------------------------------------------------
1 | TB07, TB08
2 | 11
3 | TB07|01|02|ibu|ibu,,|False
4 | TB07|03|02|ibu ,"kamu|ibu, "kamu|False
5 | TB07|06|04|1|1,|False
6 | TB07|06|06|ibu|ibu,|False
7 | TB07|07|04|1",|1,"|False
8 | TB07|08|06|ibu|ibu,|False
9 | TB08|09|04|kampung?,"|kampung?"|False
10 | TB08|10|04|kampung?",|kampung?"|False
11 | TB08|11|02|bohong!,"|bohong!"|False
12 | TB08|12|02|bohong!",|bohong!"|False
--------------------------------------------------------------------------------
/py/diag/core/PySipebiDiagnosticsError.py:
--------------------------------------------------------------------------------
1 | class PySipebiDiagnosticsError:
2 | ErrorCode = '[Kode]'
3 | ParagraphNo = 0
4 | ElementNo = 0
5 | OriginalElement = ''
6 | CorrectedElement = ''
7 | OriginalParagraphOffset = 0
8 | PositionOffset = 0
9 | CorrectedCharPosition = 0
10 | IsAmbiguous = False
11 |
12 | def SimpleDisplay(self):
13 | return self.ErrorCode + ' ' + self.OriginalElement + ' -> ' + self.CorrectedElement
14 |
--------------------------------------------------------------------------------
/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Windows.Forms;
6 |
7 | namespace SipebiMini {
8 | static class Program {
9 | ///
10 | /// The main entry point for the application.
11 | ///
12 | [STAThread]
13 | static void Main() {
14 | Application.EnableVisualStyles();
15 | Application.SetCompatibleTextRenderingDefault(false);
16 | Application.Run(new SampleForm());
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/bin/Debug/pengaturan-pengguna.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | true
4 | true
5 | false
6 | false
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/bin/Release/pengaturan-pengguna.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | true
4 | true
5 | false
6 | false
7 |
8 |
9 |
--------------------------------------------------------------------------------
/py/data/PySipebiDiagAturanTandaBacaPadaDialog_test.txt:
--------------------------------------------------------------------------------
1 | Kata ibu "Jika kamu juara 1, ibu akan belikan sepatu baru."
2 | Kata ibu,"Jika kamu juara 1, ibu akan belikan sepatu baru."
3 | Kata ibu ,"Jika kamu juara 1, ibu akan belikan sepatu baru."
4 | Kata ibu, "jika kamu juara 1, ibu akan belikan sepatu baru."
5 | Kata ibu "jika kamu juara 1, ibu akan belikan sepatu baru."
6 | "Jika kamu juara 1" kata ibu "ibu akan belikan sepatu baru."
7 | "Jika kamu juara 1", kata ibu, "ibu akan belikan sepatu baru."
8 | "Jika kamu juara 1," kata ibu "ibu akan belikan sepatu baru."
9 | "Kapan kamu pulang kampung?," tanya nenek.
10 | "Kapan kamu pulang kampung?", tanya nenek.
11 | "Jangan bohong!," teriaknya.
12 | "Jangan bohong!", teriaknya.
--------------------------------------------------------------------------------
/initiator.bat:
--------------------------------------------------------------------------------
1 | :: Create all applicable folders
2 | if not exist py mkdir py
3 | if not exist py\core mkdir py\core
4 | if not exist py\libs mkdir py\libs
5 | if not exist py\data mkdir py\data
6 | if not exist py\diag mkdir py\diag
7 | if not exist bin\Debug mkdir bin\Debug
8 | if not exist bin\Release mkdir bin\Release
9 | if not exist Files mkdir Files
10 |
11 | :: Remove applicable existing directories
12 | if exist bin\Debug\py rmdir /s /q bin\Debug\py
13 | if exist bin\Release\py rmdir /s /q bin\Release\py
14 |
15 | :: Copying all the py content to debug and release folders
16 | robocopy Files bin\Debug *.*
17 | robocopy Files bin\Release *.*
18 | robocopy py bin\Debug\py /MIR
19 | robocopy py bin\Release\py /MIR
20 |
21 | :: Clean up target directories
22 | if exist bin\Debug\py\.idea rmdir /s /q bin\Debug\py\.idea
23 | if exist bin\Release\py\.idea rmdir /s /q bin\Release\py\.idea
24 |
25 | pause
26 |
--------------------------------------------------------------------------------
/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
17 |
18 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/py/data/README.md:
--------------------------------------------------------------------------------
1 | # Dua Komponen Penting Skrip Validasi
2 |
3 | ## 1. Fail `test`
4 | Fail ini merupakan fail yang berisi data teks yang akan digunakan untuk proses validasi.
5 |
6 | Berikut merupakan contoh dari isi fail test:
7 | ```txt
8 | Saya mau pergi ke sana. saya mau pergi ke sini.
9 | Dia kah? Dia lah!
10 | ```
11 |
12 | ## 2. Fail `common_check`
13 | Fail ini merupakan fail yang digunakan sebagai acuan dari penyuntingan yang benar dan valid. Oleh karena itu, perlu diperhatikan bahwa setiap elemen perbaikan dari fail ini harus valid dan benar.
14 | Template isi dari fail ini adalah sebagai berikut:
15 | ```txt
16 | ,
17 |
18 | |||||
19 | ```
20 |
21 | Berikut merupakan contoh dari isi fail common_check:
22 | ```txt
23 | KA01, KE01
24 | 3
25 | KA01|01|06|saya|Saya|False
26 | KE01|02|01|Dia kah|Diakah|False
27 | KE01|02|02|Dia lah|Dialah|False
28 | ```
--------------------------------------------------------------------------------
/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace SipebiMini.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.7.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/SipebiMini.Sample.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.30523.141
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SipebiMini.Sample", "SipebiMini.Sample.csproj", "{F6EE0D11-71CB-4005-81C2-19153F4C595F}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {F6EE0D11-71CB-4005-81C2-19153F4C595F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {F6EE0D11-71CB-4005-81C2-19153F4C595F}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {F6EE0D11-71CB-4005-81C2-19153F4C595F}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {F6EE0D11-71CB-4005-81C2-19153F4C595F}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {6A7BDD4B-33D7-4FA2-9114-C069DD6BFFAC}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/LICENSE.TXT:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) .NET Foundation and Contributors
4 |
5 | All rights reserved.
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in all
15 | copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 | SOFTWARE.
24 |
--------------------------------------------------------------------------------
/packages/System.Memory.4.5.5/LICENSE.TXT:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) .NET Foundation and Contributors
4 |
5 | All rights reserved.
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in all
15 | copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 | SOFTWARE.
24 |
--------------------------------------------------------------------------------
/packages/System.Numerics.Vectors.4.5.0/LICENSE.TXT:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) .NET Foundation and Contributors
4 |
5 | All rights reserved.
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in all
15 | copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 | SOFTWARE.
24 |
--------------------------------------------------------------------------------
/packages/System.Runtime.CompilerServices.Unsafe.4.5.3/LICENSE.TXT:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) .NET Foundation and Contributors
4 |
5 | All rights reserved.
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in all
15 | copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 | SOFTWARE.
24 |
--------------------------------------------------------------------------------
/py/PySipebiCommonValidationRunner.py:
--------------------------------------------------------------------------------
1 | # This class is used to run the validation classes
2 | import os.path
3 | from diag.core.PySipebiHelper import PySipebiHelper
4 |
5 | class PySipebiCommonValidationRunner:
6 | def __init__(self, validation_class):
7 | self.validation_class = validation_class
8 | self.shared_resources = {}
9 |
10 | def input_into_shared_resources(self, file_resource_name):
11 | abs_filename = ''
12 | if "diag" in file_resource_name:
13 | file_resource_name = file_resource_name[file_resource_name.find('diag') + 5:]
14 | abs_filename = PySipebiHelper.find_proper_path(f'py\\diag\\data\\{file_resource_name}')
15 | file_resource_name = f'diag\\data\\{file_resource_name}'
16 |
17 | else:
18 | abs_filename = PySipebiHelper.find_proper_path(f'py\\data\\{file_resource_name}')
19 | self.shared_resources[file_resource_name] = self.read_file(abs_filename)
20 |
21 | def read_file(self, filename):
22 | with open(filename, 'r', newline="\r\n") as f:
23 | return f.read()
24 |
25 | def setup_and_run_validation(self):
26 | # Instantiate and execute the validation class
27 | test = self.validation_class()
28 | for filename in test.fileResourceNames:
29 | self.input_into_shared_resources(filename)
30 |
31 | test.execute_with_shared_resources(self.shared_resources)
--------------------------------------------------------------------------------
/FileHelper.cs:
--------------------------------------------------------------------------------
1 | using System.IO;
2 | using System.Threading;
3 |
4 | namespace SipebiMini {
5 | public class FileHelper {
6 | // Fungsi untuk mengecek apakah file telah dihapus dari sistem
7 | public static bool PastikanTerhapus(string namaFail) {
8 | int counter = 0;
9 | int counterMaksimum = 50;
10 | if (File.Exists(namaFail)) {
11 | File.Delete(namaFail);
12 | while (File.Exists(namaFail) && counter <= counterMaksimum) {
13 | Thread.Sleep(100);
14 | counter++;
15 | }
16 | }
17 | return counter <= counterMaksimum;
18 | }
19 |
20 | // Fungsi untuk mengecek apakah file telah dibuat oleh sistem
21 | public static bool PastikanTerbuat(string namaFail) {
22 | FileInfo informasiFail = new FileInfo(namaFail);
23 | int counter = 0;
24 | int counterMaksimum = 50;
25 | while (isFileLocked(informasiFail) && counter <= counterMaksimum) {
26 | Thread.Sleep(100);
27 | counter++;
28 | }
29 | return counter <= counterMaksimum;
30 | }
31 |
32 | /* Mengecek apakah file tidak dikunci oleh sistem atau suatu proses
33 | * Didapat dari: https://stackoverflow.com/questions/10982104/wait-until-file-is-completely-written
34 | */
35 | private static bool isFileLocked(FileInfo file) {
36 | FileStream stream = null;
37 | try {
38 | stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None);
39 | } catch (IOException) {
40 | return true;
41 | } finally {
42 | if (stream != null)
43 | stream.Close();
44 | }
45 | return false;
46 | }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("SipebiMini")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("SipebiMini")]
13 | [assembly: AssemblyCopyright("Copyright © 2021")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("f6ee0d11-71cb-4005-81c2-19153f4c595f")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("2.0.0.0")]
36 | [assembly: AssemblyFileVersion("2.0.0.0")]
37 |
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/net462/IronPython.SQLite.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IronPython.SQLite
5 |
6 |
7 |
8 |
9 | Basic locking strategy for Console/Winform applications
10 |
11 |
12 |
13 |
14 | Locking strategy for Medium Trust. It uses the same trick used in the native code for WIN_CE
15 | which doesn't support LockFileEx as well.
16 |
17 |
18 |
19 | * The rest are extensions, not normally found in printf() */
20 |
21 |
22 | * beginning-of-error-codes */
23 |
24 |
25 | * previously SQLITE_CONFIG_CHUNKALLOC 12 which is now unused. */
26 |
27 |
28 | * The methods above are in version 1 of the sqlite_module object. Those
29 |
30 |
31 | * x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF */
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/net6.0/IronPython.SQLite.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IronPython.SQLite
5 |
6 |
7 |
8 |
9 | Basic locking strategy for Console/Winform applications
10 |
11 |
12 |
13 |
14 | Locking strategy for Medium Trust. It uses the same trick used in the native code for WIN_CE
15 | which doesn't support LockFileEx as well.
16 |
17 |
18 |
19 | * The rest are extensions, not normally found in printf() */
20 |
21 |
22 | * beginning-of-error-codes */
23 |
24 |
25 | * previously SQLITE_CONFIG_CHUNKALLOC 12 which is now unused. */
26 |
27 |
28 | * The methods above are in version 1 of the sqlite_module object. Those
29 |
30 |
31 | * x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF */
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/netcoreapp3.1/IronPython.SQLite.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IronPython.SQLite
5 |
6 |
7 |
8 |
9 | Basic locking strategy for Console/Winform applications
10 |
11 |
12 |
13 |
14 | Locking strategy for Medium Trust. It uses the same trick used in the native code for WIN_CE
15 | which doesn't support LockFileEx as well.
16 |
17 |
18 |
19 | * The rest are extensions, not normally found in printf() */
20 |
21 |
22 | * beginning-of-error-codes */
23 |
24 |
25 | * previously SQLITE_CONFIG_CHUNKALLOC 12 which is now unused. */
26 |
27 |
28 | * The methods above are in version 1 of the sqlite_module object. Those
29 |
30 |
31 | * x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF */
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/netstandard2.0/IronPython.SQLite.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IronPython.SQLite
5 |
6 |
7 |
8 |
9 | Basic locking strategy for Console/Winform applications
10 |
11 |
12 |
13 |
14 | Locking strategy for Medium Trust. It uses the same trick used in the native code for WIN_CE
15 | which doesn't support LockFileEx as well.
16 |
17 |
18 |
19 | * The rest are extensions, not normally found in printf() */
20 |
21 |
22 | * beginning-of-error-codes */
23 |
24 |
25 | * previously SQLITE_CONFIG_CHUNKALLOC 12 which is now unused. */
26 |
27 |
28 | * The methods above are in version 1 of the sqlite_module object. Those
29 |
30 |
31 | * x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF */
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/README.md:
--------------------------------------------------------------------------------
1 | IronPython Engine
2 | =================
3 |
4 | IronPython is an open-source implementation of the Python programming language that is tightly integrated with .NET. IronPython can use .NET and Python libraries, and other .NET languages can use Python code just as easily.
5 |
6 | This package contains the IronPython engine that allows embedding an IronPython interpreter in a .NET application. The interpreted Python code can call the .NET code and can be called from the .NET code. This package does not contain the IronPython Standard Library, which is distributed separately as package `IronPython.StdLib`.
7 |
8 | ## Example
9 |
10 | Execute Python code and call it from .NET code:
11 |
12 | ```cs
13 | var eng = IronPython.Hosting.Python.CreateEngine();
14 | var scope = eng.CreateScope();
15 | eng.Execute(@"
16 | def greetings(name):
17 | return 'Hello ' + name.title() + '!'
18 | ", scope);
19 | dynamic greetings = scope.GetVariable("greetings");
20 | System.Console.WriteLine(greetings("world"));
21 | ```
22 |
23 | ## Differences with CPython
24 |
25 | While compatibility with CPython is one of our main goals with IronPython 3, there are still some differences that may cause issues. See [Differences from CPython](https://github.com/IronLanguages/ironpython3/blob/master/Documentation/differences-from-c-python.md) for details.
26 |
27 | ## Package compatibility
28 |
29 | See the [Package compatibility](https://github.com/IronLanguages/ironpython3/blob/master/Documentation/package-compatibility.md) document for information on compatibility with popular Python packages. Note that to run most packages, IronPython Standard Library must be present.
30 |
--------------------------------------------------------------------------------
/Files/contoh-teks.txt:
--------------------------------------------------------------------------------
1 | Akan tetapi ia tetap bersikukuh. Dengan demikian ia menyatakan bahwa dirinya memang keras kepala. Oleh karena itu dia kupecat. Biarpun demikian, bukan artinya gajinya tidak kubayar.
2 |
3 | kapital pada huruf pertama kalimat. aku mau berjalan. tetapi apakah bisa? Utk hal spt itu, dia sdh tll byk tahu.
4 |
5 | dia mau ditangkap karena dia membantu memiralkan video didudukan tersebut. rpt yg diadakan di rmh tdk dpt dilakukan dgn baik.
6 |
7 | kapital ditambah kata ganti orang. STNKnya dan STNK ku tidak dibawa. demikian juga dengan SIM mu yang lupa kamu bawa.
8 |
9 | Selain rpt mengurusi org keluar msk rmh, hal itu jg membuat istri yg sibuk msk dan anak yg sdg main msk marah-marah kpd sang kepala rmh tangga.
10 |
11 | kata penghubung subordinatif diberi koma. aku tetap bekerja, meskipun aku sakit. apakah Anda tetap bekerja, jika Anda sakit? apakah Anda bekerja, supaya bisa hidup merdeka? Ataukah Anda bekerja, karena uang? Ataukah Anda bekerja, supaya mendapatkan kepuasan? Berkerjalah sambil belajar menyukai pekerjaan Anda agar Anda tidak perlu menderita bekerja seumur hidup.
12 |
13 | kata penghubung intra kalimat tidak diberi koma. Dia tidak bekerja melainkan bermain-main. Dia bermain-main padahal dia sudah besar. Masih kecil saja sudah tidak pantas untuk terus bermain-main, apalagi dia sudah besar.
14 |
15 | Dia melakukan hal ini untuk yang ke 4 kalinya. ia sudah diperingati ketika melakukannya untuk yang ke3 kalinya tetapi dia tetap tidak mau mendengar.
16 |
17 | Pada tahun 1940an terjadi puncak perang dunia ke2. Pada waktu itu, sekitar 200 an negara dunia terlibat.
18 |
19 | Waktu menunjukkan pukul 10:05 di tempat saya. Atau lebih tepatnya pukul 10;07;08 WIB.
20 |
21 | Akupuntur dan al-Quran, sekali lagi: al-quran, Al-quran (AL-QURAN). antik barang itu.
22 |
23 | Sinar infra-merah bukan ultra violet. Kata dia mega mendung, bukan mono-poli. Sudah lah sepatutnya. Tidak-kah memang demikian kasusnya?
24 |
25 |
--------------------------------------------------------------------------------
/bin/Debug/contoh-teks.txt:
--------------------------------------------------------------------------------
1 | Akan tetapi ia tetap bersikukuh. Dengan demikian ia menyatakan bahwa dirinya memang keras kepala. Oleh karena itu dia kupecat. Biarpun demikian, bukan artinya gajinya tidak kubayar.
2 |
3 | kapital pada huruf pertama kalimat. aku mau berjalan. tetapi apakah bisa? Utk hal spt itu, dia sdh tll byk tahu.
4 |
5 | dia mau ditangkap karena dia membantu memiralkan video didudukan tersebut. rpt yg diadakan di rmh tdk dpt dilakukan dgn baik.
6 |
7 | kapital ditambah kata ganti orang. STNKnya dan STNK ku tidak dibawa. demikian juga dengan SIM mu yang lupa kamu bawa.
8 |
9 | Selain rpt mengurusi org keluar msk rmh, hal itu jg membuat istri yg sibuk msk dan anak yg sdg main msk marah-marah kpd sang kepala rmh tangga.
10 |
11 | kata penghubung subordinatif diberi koma. aku tetap bekerja, meskipun aku sakit. apakah Anda tetap bekerja, jika Anda sakit? apakah Anda bekerja, supaya bisa hidup merdeka? Ataukah Anda bekerja, karena uang? Ataukah Anda bekerja, supaya mendapatkan kepuasan? Berkerjalah sambil belajar menyukai pekerjaan Anda agar Anda tidak perlu menderita bekerja seumur hidup.
12 |
13 | kata penghubung intra kalimat tidak diberi koma. Dia tidak bekerja melainkan bermain-main. Dia bermain-main padahal dia sudah besar. Masih kecil saja sudah tidak pantas untuk terus bermain-main, apalagi dia sudah besar.
14 |
15 | Dia melakukan hal ini untuk yang ke 4 kalinya. ia sudah diperingati ketika melakukannya untuk yang ke3 kalinya tetapi dia tetap tidak mau mendengar.
16 |
17 | Pada tahun 1940an terjadi puncak perang dunia ke2. Pada waktu itu, sekitar 200 an negara dunia terlibat.
18 |
19 | Waktu menunjukkan pukul 10:05 di tempat saya. Atau lebih tepatnya pukul 10;07;08 WIB.
20 |
21 | Akupuntur dan al-Quran, sekali lagi: al-quran, Al-quran (AL-QURAN). antik barang itu.
22 |
23 | Sinar infra-merah bukan ultra violet. Kata dia mega mendung, bukan mono-poli. Sudah lah sepatutnya. Tidak-kah memang demikian kasusnya?
24 |
25 |
--------------------------------------------------------------------------------
/bin/Release/contoh-teks.txt:
--------------------------------------------------------------------------------
1 | Akan tetapi ia tetap bersikukuh. Dengan demikian ia menyatakan bahwa dirinya memang keras kepala. Oleh karena itu dia kupecat. Biarpun demikian, bukan artinya gajinya tidak kubayar.
2 |
3 | kapital pada huruf pertama kalimat. aku mau berjalan. tetapi apakah bisa? Utk hal spt itu, dia sdh tll byk tahu.
4 |
5 | dia mau ditangkap karena dia membantu memiralkan video didudukan tersebut. rpt yg diadakan di rmh tdk dpt dilakukan dgn baik.
6 |
7 | kapital ditambah kata ganti orang. STNKnya dan STNK ku tidak dibawa. demikian juga dengan SIM mu yang lupa kamu bawa.
8 |
9 | Selain rpt mengurusi org keluar msk rmh, hal itu jg membuat istri yg sibuk msk dan anak yg sdg main msk marah-marah kpd sang kepala rmh tangga.
10 |
11 | kata penghubung subordinatif diberi koma. aku tetap bekerja, meskipun aku sakit. apakah Anda tetap bekerja, jika Anda sakit? apakah Anda bekerja, supaya bisa hidup merdeka? Ataukah Anda bekerja, karena uang? Ataukah Anda bekerja, supaya mendapatkan kepuasan? Berkerjalah sambil belajar menyukai pekerjaan Anda agar Anda tidak perlu menderita bekerja seumur hidup.
12 |
13 | kata penghubung intra kalimat tidak diberi koma. Dia tidak bekerja melainkan bermain-main. Dia bermain-main padahal dia sudah besar. Masih kecil saja sudah tidak pantas untuk terus bermain-main, apalagi dia sudah besar.
14 |
15 | Dia melakukan hal ini untuk yang ke 4 kalinya. ia sudah diperingati ketika melakukannya untuk yang ke3 kalinya tetapi dia tetap tidak mau mendengar.
16 |
17 | Pada tahun 1940an terjadi puncak perang dunia ke2. Pada waktu itu, sekitar 200 an negara dunia terlibat.
18 |
19 | Waktu menunjukkan pukul 10:05 di tempat saya. Atau lebih tepatnya pukul 10;07;08 WIB.
20 |
21 | Akupuntur dan al-Quran, sekali lagi: al-quran, Al-quran (AL-QURAN). antik barang itu.
22 |
23 | Sinar infra-merah bukan ultra violet. Kata dia mega mendung, bukan mono-poli. Sudah lah sepatutnya. Tidak-kah memang demikian kasusnya?
24 |
25 |
--------------------------------------------------------------------------------
/py/README.md:
--------------------------------------------------------------------------------
1 | # Validasi Skrip Diagnosis
2 |
3 | Skrip diagnosis tentunya harus melewati tahap validasi terlebih dahulu sebelum dimasukkan ke dalam kode Sipebi yang asli. Tahapan validasi ini dilakukan untuk memastikan bahwa skrip diagnosis yang dibuat tidak mengandung kesalahan sintaksis dan logika.
4 |
5 | Untuk melakukan validasi pada skrip diagnosis yang Anda telah buat, ikuti tahapan berikut ini:
6 | 1. Buat sebuah fail dengan nama `_Val.py` pada direktori `py/`. Misalnya, nama class skrip diagnosis Anda adalah `PySipebiDiagAturanTandaBacaPadaDialog`, maka nama fail validasi yang harus Anda buat adalah `PySipebiAturanTandaBacaPadaDialog_Val.py`.
7 | 2. Buat 2 fail `.txt` dasar yang dibutuhkan untuk dibaca pada proses validasi, yaitu fail `common_check` dan fail `test`. Fail tersebut dibuat pada folder `py/data`. Sesuaikan nama failnya dengan konvensi berikut. Misalnya, nama class skrip diagnosis Anda adalah `PySipebiDiagAturanTandaBacaPadaDialog`, maka nama fail `common_check` dan `test` yang harus Anda buat adalah `PySipebiDiagAturanTandaBacaPadaDialog_common_check.txt` dan `PySipebiDiagAturanTandaBacaPadaDialog_test.txt`. Isi dari kedua fail tersebut bisa lihat di contoh fail `common_check` dan `test` yang sudah ada.
8 | 3. Untuk pembuatan kode skrip validasi, ikuti saja alur kode yang ada pada fail validasi yang telah dibuat, seperti fail `PySipebiDiagAturanPartikelPun_Val.py`. Isi fail kurang lebih sama. Dipersilahkan jika ingin menambahkan beberapa validasi tambahan.
9 | 4. Untuk menjalankan fail validasi, pada baris paling bawah kode pada fail validasi, salin kode berikut dan ubah beberapa hal yang seharusnya diubah:
10 |
11 | ```python
12 | if __name__ == "__main__":
13 | validation_runner = PySipebiCommonValidationRunner()
14 | validation_runner.setup_and_run_validation()
15 | ```
16 |
17 | Contohnya,
18 | ```python
19 | if __name__ == "__main__":
20 | validation_runner = PySipebiCommonValidationRunner(PySipebiDiagAturanPartikelLahKahTah_Val)
21 | validation_runner.setup_and_run_validation()
22 | ```
23 | 5. Setelah itu, jalankan fail skrip validasi tersebut. Setelah dijalankan, maka akan dibuat sebuah fail txt `result` yang merupakan hasil dari validasi skrip diagnosis yang telah dibuat. Fail tersebut akan berada pada folder `py/data/results`. Fail tersebut berisi hasil validasi dari skrip diagnosis yang telah dibuat. Jika hasil validasi tersebut tidak sesuai dengan yang diharapkan, maka perbaiki skrip diagnosis yang telah dibuat. Jika hasil validasi tersebut sesuai dengan yang diharapkan, maka skrip diagnosis tersebut dapat dimasukkan ke dalam kode Sipebi yang asli.
--------------------------------------------------------------------------------
/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace SipebiMini.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// Returns the cached ResourceManager instance used by this class.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SipebiMini.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Overrides the current thread's CurrentUICulture property for all
51 | /// resource lookups using this strongly typed resource class.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/packages/DynamicLanguageRuntime.1.3.4/README.md:
--------------------------------------------------------------------------------
1 | Dynamic Language Runtime
2 | ========================
3 | The Dynamic Language Runtime enables language developers to more easily create dynamic languages for the .NET platform. In addition to being a pluggable back-end for dynamic language compilers, the DLR provides language interop for dynamic operations on objects. The DLR has common hosting APIs for using dynamic languages as libraries or for scripting in your .NET applications.
4 |
5 | | **What?** | **Where?** |
6 | | --------: | :------------: |
7 | | **Windows/Linux/macOS Builds** | [](https://dotnet.visualstudio.com/IronLanguages/_build/latest?definitionId=41) [](https://github.com/IronLanguages/dlr/actions?workflow=CI) |
8 | | **Downloads** | [](https://www.nuget.org/packages/DynamicLanguageRuntime/) [](https://github.com/IronLanguages/dlr/releases/latest)|
9 | | **Help** | [](https://gitter.im/IronLanguages/ironpython) [](http://stackoverflow.com/questions/tagged/dynamic-language-runtime) |
10 |
11 | Code of Conduct
12 | ---------------
13 | This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community.
14 | For more information see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct).
15 |
16 | Installation
17 | ------------
18 | The best way to install the DLR is through the NuGet DynamicLanguageRuntime package.
19 |
20 | Documentation
21 | -------------
22 | The best current documentation is in the Docs/ directory, in Word and PDF format (it *was* a Microsoft project, after all).
23 |
24 | Help
25 | ----
26 | If you have any questions, [open an issue](https://github.com/IronLanguages/dlr/issues/new), even if it's not an actual bug. The issues are an acceptable discussion forum as well.
27 |
28 | History
29 | -------
30 | The original DLR site is at [CodePlex](http://dlr.codeplex.com). The DLR was part of a much larger repository containing IronPython and IronRuby as well; you can find it at the [main](https://github.com/IronLanguages/main) repository. This is a smaller repository containing just the DLR, which makes it easier to package and should make it easier to do more regular releases.
31 |
32 | Build
33 | -----
34 | You will need to have Visual Studio 2019 16.8.0 or later installed on your machine.
35 |
36 | On Windows machines, start a Visual Studio command prompt and type:
37 |
38 | > make
39 |
40 | On Unix machines, make sure Mono is installed and in the PATH, and type:
41 |
42 | $ make
43 |
44 | Since the main development is on Windows, Mono bugs may inadvertantly be introduced
45 | — please report them!
46 |
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/net462/IronPython.Wpf.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IronPython.Wpf
5 |
6 |
7 |
8 |
9 | Provides helpers for interacting with Windows Presentation Foundation applications.
10 |
11 |
12 |
13 |
14 | Loads XAML from the specified XmlReader and returns the deserialized object. Any event handlers
15 | are bound to methods defined in the provided module. Any named objects are assigned to the object.
16 |
17 | The provided object is expected to be the same type as the root of the XAML element.
18 |
19 |
20 |
21 |
22 | Loads XAML from the specified XmlReader and returns the deserialized object. Any event handlers
23 | are bound to methods defined in the provided module. Any named objects are assigned to the object.
24 |
25 | The provided object is expected to be the same type as the root of the XAML element.
26 |
27 |
28 |
29 |
30 | Loads XAML from the specified XmlReader and returns the deserialized object. Any event handlers
31 | are bound to methods defined in the provided module. Any named objects are assigned to the object.
32 |
33 | The provided object is expected to be the same type as the root of the XAML element.
34 |
35 |
36 |
37 |
38 | Loads XAML from the specified XmlReader and returns the deserialized object. Any event handlers
39 | are bound to methods defined in the provided module. Any named objects are assigned to the object.
40 |
41 | The provided object is expected to be the same type as the root of the XAML element.
42 |
43 |
44 |
45 |
46 | Loads XAML from the specified XmlReader and returns the deserialized object. Any event handlers
47 | are bound to methods defined in the provided module. Any named objects are assigned to the object.
48 |
49 | The provided object is expected to be the same type as the root of the XAML element.
50 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/py/diag/PySipebiDiagAturanPartikelLahKahTah.py:
--------------------------------------------------------------------------------
1 | from .core.PySipebiDiagnosticsBase import PySipebiDiagnosticsBase
2 | from .core.PySipebiDiagnosticsError import PySipebiDiagnosticsError
3 | from .core.PySipebiStructs import PySipebiTextDivision, PySipebiParagraphDivision, PySipebiWordDivision
4 |
5 | class PySipebiDiagAturanPartikelLahKahTah(PySipebiDiagnosticsBase):
6 | hasSharedResources = True
7 | sharedResourcesOutputKeys = ['sipebi_text_division']
8 | ERROR_CODE_1 = '[KE01]'
9 |
10 | def setup(self):
11 | self.isReady = True
12 |
13 | def execute_with_shared_resources(self, text, shared_resources):
14 | sipebi_text: PySipebiTextDivision = shared_resources['sipebi_text_division'] # konvensi penamaan: sipebi_text_division
15 | for i, paragraph_div in enumerate(sipebi_text.paragraph_divs):
16 | paragraph: PySipebiParagraphDivision = paragraph_div
17 | for j, word_div in enumerate(paragraph.word_divs):
18 | word: PySipebiWordDivision = word_div
19 |
20 | # TODO: implementasi aturan partikel lah, kah, tah
21 | next_word = word.next_word_div
22 | # jika kata berikutnya adalah partikel lah, kah, atau tah, misal: apa kah
23 | # maka gabungkan kata tersebut menjadi: apakah
24 | if next_word and (next_word.pre_clean_word == "lah"
25 | or next_word.pre_clean_word == "kah"
26 | or next_word.pre_clean_word == "tah"):
27 | original_element = word.clean_word_string + " " + next_word.pre_clean_word
28 | corrected_element = word.clean_word_string + next_word.pre_clean_word
29 | self.add_diagnostics(word=word, paragraph=paragraph, error_code=self.ERROR_CODE_1
30 | , original_element=original_element, corrected_element=corrected_element)
31 |
32 |
33 | self.isCompleted = True
34 |
35 | # add_diagnostics: fungsi untuk menambahkan kesalahan ke dalam daftar kesalahan
36 | # fungsi ini harus dipanggil setiap kali sebuah kesalahan ditemukan
37 | # word: kata awal yang yang mengandung kesalahan
38 | # paragraph: paragraf yang mengandung kesalahan
39 | # error_code: kode kesalahan
40 | # original_element: elemen yang salah
41 | # corrected_element: elemen yang benar
42 | def add_diagnostics(self, word: PySipebiWordDivision, paragraph: PySipebiParagraphDivision, error_code: str
43 | , original_element: str, corrected_element: str):
44 | hasilDiagnosis = PySipebiDiagnosticsError()
45 | hasilDiagnosis.ParagraphNo = paragraph.index
46 | hasilDiagnosis.ElementNo = word.element_no
47 | hasilDiagnosis.OriginalParagraphOffset = paragraph.offset
48 | hasilDiagnosis.PositionOffset = word.position_offset + word.pre_word.length
49 | hasilDiagnosis.CorrectedCharPosition = 0
50 | hasilDiagnosis.IsAmbiguous = False
51 | hasilDiagnosis.ErrorCode = error_code
52 | hasilDiagnosis.OriginalElement = original_element
53 | hasilDiagnosis.CorrectedElement = corrected_element
54 | self.diagList.append(hasilDiagnosis)
55 |
56 | return hasilDiagnosis
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Seputar Urun Daya Sipebi
2 |
3 | ## Pendahuluan
4 |
5 | Semenjak awal tahun 2022, Sipebi resmi diluncurkan sebagai proyek urun daya semi-terbuka. Hal ini dimaksudkan agar masyarakat umum, ahli linguistik, dan ahli TI yang ingin berbagian dalam mengembangkan dan menyempurnakan Sipebi, dapat berbagian dan memiliki cara/platform standar dalam memberikan kontribusi.
6 |
7 | Sebagai proyek urun daya, setiap orang diberikan kesempatan untuk turut berbagian dalam mengembangkan Sipebi dalam kapasitasnya masing-masing
8 |
9 | Sebagai proyek semi-terbuka, data dan kode pemrograman nonkonfidensial Sipebi dibukakan kepada semua masyarakat umum
10 |
11 | Di samping itu, Sipebi versi Beta juga diluncurkan agar masyarakat dapat memiliki akses terhadap pengembangan Sipebi yang belum resmi namun termutakhir. Tidak seperti versi keluaran resmi, Sipebi versi Beta mungkin untuk dimutakhirkan kapan saja ketika terdapat pengembangan maupun fitur uji coba baru di dalam Sipebi, sebelum pengembangan/fitur baru tersebut secara resmi dimasukkan ke dalam Sipebi versi keluaran resmi selanjutnya ketika didapati bahwa fitur tersebut telah bekerja dengan cukup memuaskan
12 |
13 | Sipebi Mini merupakan suatu proyek publik pada laman github yang berisikan versi nonkonfidensial Sipebi resmi yang termutakhir. Sipebi Mini dibuat untuk mengakomodasi kebutuhan pengembang TI yang hendak berbagian dalam mengembangkan Sipebi tanpa perlu memiliki akses ke sumber kode asli Sipebi (yang dilindungi oleh Hak Cipta)
14 |
15 | ## Berkontribusi
16 |
17 | Pastikan Anda memiliki prasyarat berikut:
18 |
19 | 1. Platform desktop dengan [.NET 4.6.2 Targeting Runtime / SDK terpasang](https://dotnet.microsoft.com/en-us/download/dotnet-framework/thank-you/net462-developer-pack-offline-installer).
20 | 2. Saat bekerja dengan basis kode, sebaiknya gunakan IDE dengan penyelesaian kode cerdas dan penyorotan sintaks, seperti versi terbaru [Visual Studio](https://visualstudio.microsoft.com/), atau [Visual Studio Code](https://code.visualstudio.com//).
21 |
22 | ### Mengunduh Sumber Kode SIPEBI
23 |
24 | Kloning repositori:
25 |
26 | ``` shell
27 | git clone https://github.com/ian5666987/Sipebi-Mini-Sample
28 | cd Sipebi-Mini-Sample
29 | ```
30 |
31 | Untuk memperbarui kode sumber ke komit terbaru, jalankan perintah berikut di dalam direktori `Sipebi-Mini-Sample`:
32 |
33 | ``` shell
34 | git pull
35 | ```
36 |
37 | ### Compile Sumber Kode
38 |
39 | Konfigurasi build untuk IDE yang direkomendasikan disertakan. Anda harus menggunakan fungsionalitas Build/Run yang disediakan dari IDE Anda untuk menjalankannya.
40 |
41 | - Pengguna Visual Studio harus memuat proyek melalui file `SipebiMini.Sample.sln`.
42 |
43 | ## Tautan penting
44 |
45 | 1. [Seputar Urun Daya Sipebi](https://kbbi.kemdikbud.go.id/Sipebi/SeputarUrunDaya)
46 | 2. [Sumber Data Terbuka Sipebi](https://docs.google.com/spreadsheets/d/1b6628kbRLqsSM06XuV6iiOnFQXffmfOqMNx_joe_0vQ/edit#gid=0)
47 | 3. [Sipebi Versi Beta](https://kbbi.kemdikbud.go.id/Aplikasi/Sipebi?version=dev)
48 |
49 | ## Lisensi
50 |
51 | Sumber kode Sipebi Mini adalah sepenuhnya kode terbuka, namun menggunakan program penyuntingan (bersumber kode tertutup) yang sama persis dengan Sipebi keluaran resmi. Dengan demkian, Sipebi Mini memiliki fungsi penyuntingan dasar yang sama persis dengan Sipebi keluaran resmi, hanya berbeda di dalam hal tampilan pengguna dan fungsi-fungsi non-penyuntingan lainnya.
52 |
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/lib/net461/System.Buffers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | System.Buffers
4 |
5 |
6 |
7 | Provides a resource pool that enables reusing instances of type .
8 | The type of the objects that are in the resource pool.
9 |
10 |
11 | Initializes a new instance of the class.
12 |
13 |
14 | Creates a new instance of the class.
15 | A new instance of the class.
16 |
17 |
18 | Creates a new instance of the class using the specifed configuration.
19 | The maximum length of an array instance that may be stored in the pool.
20 | The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.
21 | A new instance of the class with the specified configuration.
22 |
23 |
24 | Retrieves a buffer that is at least the requested length.
25 | The minimum length of the array.
26 | An array of type that is at least minimumLength in length.
27 |
28 |
29 | Returns an array to the pool that was previously obtained using the method on the same instance.
30 | A buffer to return to the pool that was previously obtained using the method.
31 | Indicates whether the contents of the buffer should be cleared before reuse. If clearArray is set to true, and if the pool will store the buffer to enable subsequent reuse, the method will clear the array of its contents so that a subsequent caller using the method will not see the content of the previous caller. If clearArray is set to false or if the pool will release the buffer, the array's contents are left unchanged.
32 |
33 |
34 | Gets a shared instance.
35 | A shared instance.
36 |
37 |
38 |
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/ref/net45/System.Buffers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | System.Buffers
4 |
5 |
6 |
7 | Provides a resource pool that enables reusing instances of type .
8 | The type of the objects that are in the resource pool.
9 |
10 |
11 | Initializes a new instance of the class.
12 |
13 |
14 | Creates a new instance of the class.
15 | A new instance of the class.
16 |
17 |
18 | Creates a new instance of the class using the specifed configuration.
19 | The maximum length of an array instance that may be stored in the pool.
20 | The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.
21 | A new instance of the class with the specified configuration.
22 |
23 |
24 | Retrieves a buffer that is at least the requested length.
25 | The minimum length of the array.
26 | An array of type that is at least minimumLength in length.
27 |
28 |
29 | Returns an array to the pool that was previously obtained using the method on the same instance.
30 | A buffer to return to the pool that was previously obtained using the method.
31 | Indicates whether the contents of the buffer should be cleared before reuse. If clearArray is set to true, and if the pool will store the buffer to enable subsequent reuse, the method will clear the array of its contents so that a subsequent caller using the method will not see the content of the previous caller. If clearArray is set to false or if the pool will release the buffer, the array's contents are left unchanged.
32 |
33 |
34 | Gets a shared instance.
35 | A shared instance.
36 |
37 |
38 |
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/lib/netstandard1.1/System.Buffers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | System.Buffers
4 |
5 |
6 |
7 | Provides a resource pool that enables reusing instances of type .
8 | The type of the objects that are in the resource pool.
9 |
10 |
11 | Initializes a new instance of the class.
12 |
13 |
14 | Creates a new instance of the class.
15 | A new instance of the class.
16 |
17 |
18 | Creates a new instance of the class using the specifed configuration.
19 | The maximum length of an array instance that may be stored in the pool.
20 | The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.
21 | A new instance of the class with the specified configuration.
22 |
23 |
24 | Retrieves a buffer that is at least the requested length.
25 | The minimum length of the array.
26 | An array of type that is at least minimumLength in length.
27 |
28 |
29 | Returns an array to the pool that was previously obtained using the method on the same instance.
30 | A buffer to return to the pool that was previously obtained using the method.
31 | Indicates whether the contents of the buffer should be cleared before reuse. If clearArray is set to true, and if the pool will store the buffer to enable subsequent reuse, the method will clear the array of its contents so that a subsequent caller using the method will not see the content of the previous caller. If clearArray is set to false or if the pool will release the buffer, the array's contents are left unchanged.
32 |
33 |
34 | Gets a shared instance.
35 | A shared instance.
36 |
37 |
38 |
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/lib/netstandard2.0/System.Buffers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | System.Buffers
4 |
5 |
6 |
7 | Provides a resource pool that enables reusing instances of type .
8 | The type of the objects that are in the resource pool.
9 |
10 |
11 | Initializes a new instance of the class.
12 |
13 |
14 | Creates a new instance of the class.
15 | A new instance of the class.
16 |
17 |
18 | Creates a new instance of the class using the specifed configuration.
19 | The maximum length of an array instance that may be stored in the pool.
20 | The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.
21 | A new instance of the class with the specified configuration.
22 |
23 |
24 | Retrieves a buffer that is at least the requested length.
25 | The minimum length of the array.
26 | An array of type that is at least minimumLength in length.
27 |
28 |
29 | Returns an array to the pool that was previously obtained using the method on the same instance.
30 | A buffer to return to the pool that was previously obtained using the method.
31 | Indicates whether the contents of the buffer should be cleared before reuse. If clearArray is set to true, and if the pool will store the buffer to enable subsequent reuse, the method will clear the array of its contents so that a subsequent caller using the method will not see the content of the previous caller. If clearArray is set to false or if the pool will release the buffer, the array's contents are left unchanged.
32 |
33 |
34 | Gets a shared instance.
35 | A shared instance.
36 |
37 |
38 |
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/ref/netstandard1.1/System.Buffers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | System.Buffers
4 |
5 |
6 |
7 | Provides a resource pool that enables reusing instances of type .
8 | The type of the objects that are in the resource pool.
9 |
10 |
11 | Initializes a new instance of the class.
12 |
13 |
14 | Creates a new instance of the class.
15 | A new instance of the class.
16 |
17 |
18 | Creates a new instance of the class using the specifed configuration.
19 | The maximum length of an array instance that may be stored in the pool.
20 | The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.
21 | A new instance of the class with the specified configuration.
22 |
23 |
24 | Retrieves a buffer that is at least the requested length.
25 | The minimum length of the array.
26 | An array of type that is at least minimumLength in length.
27 |
28 |
29 | Returns an array to the pool that was previously obtained using the method on the same instance.
30 | A buffer to return to the pool that was previously obtained using the method.
31 | Indicates whether the contents of the buffer should be cleared before reuse. If clearArray is set to true, and if the pool will store the buffer to enable subsequent reuse, the method will clear the array of its contents so that a subsequent caller using the method will not see the content of the previous caller. If clearArray is set to false or if the pool will release the buffer, the array's contents are left unchanged.
32 |
33 |
34 | Gets a shared instance.
35 | A shared instance.
36 |
37 |
38 |
--------------------------------------------------------------------------------
/packages/System.Buffers.4.5.1/ref/netstandard2.0/System.Buffers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | System.Buffers
4 |
5 |
6 |
7 | Provides a resource pool that enables reusing instances of type .
8 | The type of the objects that are in the resource pool.
9 |
10 |
11 | Initializes a new instance of the class.
12 |
13 |
14 | Creates a new instance of the class.
15 | A new instance of the class.
16 |
17 |
18 | Creates a new instance of the class using the specifed configuration.
19 | The maximum length of an array instance that may be stored in the pool.
20 | The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.
21 | A new instance of the class with the specified configuration.
22 |
23 |
24 | Retrieves a buffer that is at least the requested length.
25 | The minimum length of the array.
26 | An array of type that is at least minimumLength in length.
27 |
28 |
29 | Returns an array to the pool that was previously obtained using the method on the same instance.
30 | A buffer to return to the pool that was previously obtained using the method.
31 | Indicates whether the contents of the buffer should be cleared before reuse. If clearArray is set to true, and if the pool will store the buffer to enable subsequent reuse, the method will clear the array of its contents so that a subsequent caller using the method will not see the content of the previous caller. If clearArray is set to false or if the pool will release the buffer, the array's contents are left unchanged.
32 |
33 |
34 | Gets a shared instance.
35 | A shared instance.
36 |
37 |
38 |
--------------------------------------------------------------------------------
/py/diag/PySipebiDiagAturanAngkaBilanganBesar.py:
--------------------------------------------------------------------------------
1 | from .core.PySipebiDiagnosticsBase import PySipebiDiagnosticsBase
2 | from .core.PySipebiDiagnosticsError import PySipebiDiagnosticsError
3 | from .core.PySipebiStructs import PySipebiTextDivision, PySipebiParagraphDivision, PySipebiWordDivision, PySipebiNumericDivision
4 |
5 | class PySipebiDiagAturanAngkaBilanganBesar(PySipebiDiagnosticsBase):
6 | hasSharedResources = True
7 | sharedResourcesOutputKeys = ['sipebi_text_division']
8 | ERROR_CODE_1 = '[KG05]'
9 |
10 | def setup(self):
11 | self.isReady = True
12 |
13 | def execute_with_shared_resources(self, text, shared_resources):
14 | sipebi_text: PySipebiTextDivision = shared_resources['sipebi_text_division'] # konvensi penamaan: sipebi_text_division
15 | for i, paragraph_div in enumerate(sipebi_text.paragraph_divs):
16 | paragraph: PySipebiParagraphDivision = paragraph_div
17 | for j, word_div in enumerate(paragraph.word_divs):
18 | word: PySipebiWordDivision = word_div
19 |
20 | # TODO: implementasi aturan angka bilangan besar
21 | if not isinstance(word, PySipebiNumericDivision):
22 | continue
23 | dot_index = word.clean_word_string.find('.')
24 | if dot_index != -1:
25 | if word.greater_than(9999):
26 | dot_index = word.clean_word_string.find('.')
27 | count_dot = word.clean_word_string.count('.')
28 | string_repr = ""
29 | if count_dot == 1:
30 | string_repr = "ribu"
31 | elif count_dot == 2:
32 | string_repr = "juta"
33 | elif count_dot == 3:
34 | string_repr = "miliar"
35 | elif count_dot == 4:
36 | string_repr = "triliun"
37 |
38 | original_element = word.clean_word_string
39 | corrected_element = word.clean_word_string[:dot_index] + " " + string_repr
40 | self.add_diagnostics(word=word, paragraph=paragraph, error_code=self.ERROR_CODE_1
41 | , original_element=original_element, corrected_element=corrected_element)
42 |
43 | self.isCompleted = True
44 |
45 | # add_diagnostics: fungsi untuk menambahkan kesalahan ke dalam daftar kesalahan
46 | # fungsi ini harus dipanggil setiap kali sebuah kesalahan ditemukan
47 | # word: kata awal yang yang mengandung kesalahan
48 | # paragraph: paragraf yang mengandung kesalahan
49 | # error_code: kode kesalahan
50 | # original_element: elemen yang salah
51 | # corrected_element: elemen yang benar
52 | def add_diagnostics(self, word: PySipebiWordDivision, paragraph: PySipebiParagraphDivision, error_code: str
53 | , original_element: str, corrected_element: str):
54 | hasilDiagnosis = PySipebiDiagnosticsError()
55 | hasilDiagnosis.ParagraphNo = paragraph.index
56 | hasilDiagnosis.ElementNo = word.element_no
57 | hasilDiagnosis.OriginalParagraphOffset = paragraph.offset
58 | hasilDiagnosis.PositionOffset = word.position_offset + word.pre_word.length
59 | hasilDiagnosis.CorrectedCharPosition = 0
60 | hasilDiagnosis.IsAmbiguous = False
61 | hasilDiagnosis.ErrorCode = error_code
62 | hasilDiagnosis.OriginalElement = original_element
63 | hasilDiagnosis.CorrectedElement = corrected_element
64 | self.diagList.append(hasilDiagnosis)
65 |
66 | return hasilDiagnosis
--------------------------------------------------------------------------------
/py/diag/PySipebiDiagAturanPartikelPun.py:
--------------------------------------------------------------------------------
1 | from .core.PySipebiDiagnosticsBase import PySipebiDiagnosticsBase
2 | from .core.PySipebiDiagnosticsError import PySipebiDiagnosticsError
3 | from .core.PySipebiStructs import PySipebiTextDivision, PySipebiParagraphDivision, PySipebiWordDivision
4 |
5 | class PySipebiDiagAturanPartikelPun(PySipebiDiagnosticsBase):
6 | hasSharedResources = True
7 | sharedResourcesOutputKeys = ['sipebi_text_division']
8 | ERROR_CODE_1 = '[KE02]'
9 | ERROR_CODE_2 = '[KE03]'
10 | nama_fail_daftar_partikel_pun = "data_partikel_pun.txt"
11 | fileResourceNames = [nama_fail_daftar_partikel_pun]
12 | daftar_partikel_pun = []
13 |
14 | def setup(self):
15 | self.isReady = True
16 |
17 | def execute_with_shared_resources(self, text, shared_resources):
18 | file = self.read_file(self.nama_fail_daftar_partikel_pun, shared_resources)
19 |
20 | self.daftar_partikel_pun = file.split('\r\n')
21 |
22 |
23 | sipebi_text: PySipebiTextDivision = shared_resources['sipebi_text_division'] # konvensi penamaan: sipebi_text_division
24 | for i, paragraph_div in enumerate(sipebi_text.paragraph_divs):
25 | paragraph: PySipebiParagraphDivision = paragraph_div
26 | for j, word_div in enumerate(paragraph.word_divs):
27 | word: PySipebiWordDivision = word_div
28 |
29 | # TODO: implementasi aturan partikel pun
30 | next_word = word.next_word_div
31 |
32 | if word.ended_with("pun") and len(word.clean_word_string) > len("pun"):
33 | if not word.clean_word_string in self.daftar_partikel_pun:
34 | original_element = word.clean_word_string
35 | corrected_element = word.clean_word_string[:-3] + " pun"
36 | self.add_diagnostics(word=word, paragraph=paragraph, error_code=self.ERROR_CODE_2
37 | , original_element=original_element, corrected_element=corrected_element)
38 |
39 | elif next_word and (next_word.pre_clean_word.lower() == "pun"):
40 | if word.clean_word_string.lower() + next_word.pre_clean_word.lower() in self.daftar_partikel_pun:
41 | original_element = word.clean_word_string + " " + next_word.pre_clean_word
42 | corrected_element = word.clean_word_string + next_word.pre_clean_word
43 | self.add_diagnostics(word=word, paragraph=paragraph, error_code=self.ERROR_CODE_1
44 | , original_element=original_element, corrected_element=corrected_element)
45 |
46 | self.isCompleted = True
47 |
48 | # add_diagnostics: fungsi untuk menambahkan kesalahan ke dalam daftar kesalahan
49 | # fungsi ini harus dipanggil setiap kali sebuah kesalahan ditemukan
50 | # word: kata awal yang yang mengandung kesalahan
51 | # paragraph: paragraf yang mengandung kesalahan
52 | # error_code: kode kesalahan
53 | # original_element: elemen yang salah
54 | # corrected_element: elemen yang benar
55 | def add_diagnostics(self, word: PySipebiWordDivision, paragraph: PySipebiParagraphDivision, error_code: str
56 | , original_element: str, corrected_element: str):
57 | hasilDiagnosis = PySipebiDiagnosticsError()
58 | hasilDiagnosis.ParagraphNo = paragraph.index
59 | hasilDiagnosis.ElementNo = word.element_no
60 | hasilDiagnosis.OriginalParagraphOffset = paragraph.offset
61 | hasilDiagnosis.PositionOffset = word.position_offset + word.pre_word.length
62 | hasilDiagnosis.CorrectedCharPosition = 0
63 | hasilDiagnosis.IsAmbiguous = False
64 | hasilDiagnosis.ErrorCode = error_code
65 | hasilDiagnosis.OriginalElement = original_element
66 | hasilDiagnosis.CorrectedElement = corrected_element
67 | self.diagList.append(hasilDiagnosis)
68 |
69 | return hasilDiagnosis
--------------------------------------------------------------------------------
/py/diag/README.md:
--------------------------------------------------------------------------------
1 | ## Cara Membuat Skrip Diagnostics Sipebi Mini dalam Bahasa Python
2 |
3 | ### Pendahuluan
4 | Skrip Diagnostic pada Sipebi Mini merupakan skrip yang digunakan untuk memeriksa kesalahan aturan ejaan pada Sipebi Mini. Selain bisa membuat skrip diagnostic dalam bahasa C#, Sipebi Mini juga mendukung pembuatan skrip diagnostic dalam bahasa Python. Folder `py/diag/` pada Sipebi Mini berisikan segala sesuatu yang berhubungan dengan pengerjaan skrip diagnostic dalam bahasa Python. Jika ingin membuat skrip diagnosis dalam bahasa Python, Anda diharapkan hanya fokus pada folder `py/diag/` saja dan file `App.config` pada yang terletak pada root folder `Sipebi-Mini-Sample`. Terdapat beberapa folder dan file yang terletak pada folder `py/diag/`, yaitu:
5 |
6 | 1. Folder `core`: Folder yang berisikan file-file yang berhubungan dengan fungsi-fungsi dasar yang digunakan oleh skrip diagnostic dalam bahasa Python.
7 | 2. Folder `data`: Folder yang berisikan file-file yang berhubungan dengan data yang digunakan oleh skrip diagnostic dalam bahasa Python.
8 | 3. Folder `libs`: Folder yang berisikan file-file yang berhubungan dengan pustaka-pustaka pembantu yang digunakan oleh skrip diagnostic dalam bahasa Python.
9 | 4. File `PySipebiDiagExample.py`: File yang berisikan contoh skrip diagnostic dalam bahasa Python.
10 |
11 | ### Memahami Struktur Skrip Diagnostic dalam Bahasa Python
12 | Sebelum masuk kepada tahap pembuatan skrip diagnostic dalam bahasa Python, Anda diharapkan memahami struktur skrip diagnostic dalam bahasa Python terlebih dahulu.
13 |
14 | Pada folder `core` terdapat beberapa file yang berisikan fungsi-fungsi dasar yang digunakan oleh skrip diagnostic dalam bahasa Python. File-file tersebut adalah:
15 | 1. File `PySipebiDiagnosticsBase.py`: File ini berisikan sebuah base class dari skrip - skrip diagnostics yang akan Anda buat. File ini berisikan fungsi-fungsi dasar yang digunakan oleh skrip diagnostic dalam bahasa Python. File ini juga berisikan fungsi-fungsi yang akan dipanggil oleh Sipebi Mini untuk menjalankan skrip diagnostic yang Anda buat. Luangkan waktu Anda untuk membaca file ini dan memahami fungsi-fungsi yang terdapat pada file ini.
16 | 2. File `PySipebiDiagnosticsError.py`: File ini berisikan sebuah class yang akan merepresentasikan kesalahan aturan ejaan yang ada pada teks. Satu kesalahan aturan ejaan berarti satu objek class ini. Semua atribut yang ada pada class pada file ini harus diisi semua dengan benar agar skrip diagnostic yang Anda buat dapat berjalan dengan baik. Luangkan waktu Anda untuk membaca file ini dan memahami fungsi-fungsi yang terdapat pada file ini.
17 |
18 | ### Membuat Skrip Diagnostic dalam Bahasa Python
19 | Setelah memahami struktur skrip diagnostic dalam bahasa Python, Anda dapat membuat skrip diagnostic dalam bahasa Python. Untuk membuat skrip diagnostic dalam bahasa Python, Anda diharapkan melakukan langkah-langkah berikut:
20 |
21 | 1. Membuat Sebuah file skrip diagnosis untuk masing - masing aturan ejaan yang ada dengan konvensi nama `PySipebiDiag.py`.Contohnya, `PySipebiDiagPerbaikanKataHubung.py` untuk aturan ejaan perbaikan kata hubung. Pada file ini, buatlah sebuah class yang namanya sama dengan filenya tanpa ekstensi `.py`. Class yang Anda buat **harus** *extends* dari class `PySipebiDiagnosticsBase`. Setelah itu, Anda harus melakukan *override* pada seluruh *method* yang ada pada class `PySipebiDiagnosticsBase`. Anda dapat melihat contoh pada file `PySipebiDiagExample.py` untuk lebih jelasnya.
22 |
23 | 2. Setelah Anda membuat sebuah skrip diagnostic, agar skrip yang Anda buat dijalankan oleh Sipebi Mini, Anda harus menambahkan sebuah *entry* pada file `App.config` yang terletak pada root folder `Sipebi-Mini-Sample`. Anda harus menaruh nama file skrip diagnostics Andas pada properti `value` dengan `key PyDiagnosticsScripts`. Selain itu, Anda juga harus memasukan aturan ejaan baru yang Anda buat pada file `daftar-diagnosis-tambahan.xml` yang terletak pada `bin/Debug`. Tag `ErrorCode` pada file xml tersebut nilainya harus sama dengan error code yang Anda tulis pada file diagnosis Anda. Anda dapat melihat contoh pada file `daftar-diagnosis-tambahan.xml` untuk lebih jelasnya.
24 |
25 | 3. Sebelum menjalankan aplikasi SipebiMini untuk mencoba skrip yang Anda buat, Anda harus menjalankan file `initiator.bat` yang bertujuan untuk menduplikasi file skrip Anda ke dalam folder `bin/debug`. Setelah menjalankan file `initiator.bat`, Anda dapat menjalankan aplikasi SipebiMini untuk mencoba skrip yang Anda buat.
--------------------------------------------------------------------------------
/py/PySipebiDiagAturanPartikelPun_Val.py:
--------------------------------------------------------------------------------
1 | # All validation class must be derived from PySipebiMiniValidationBase
2 | from PySipebiMiniValidationBase import PySipebiMiniValidationBase
3 | from diag.PySipebiDiagAturanPartikelPun import PySipebiDiagAturanPartikelPun
4 | from diag.core.PySipebiStructs import PySipebiTextDivision
5 | from PySipebiCommonValidationRunner import PySipebiCommonValidationRunner
6 |
7 | class PySipebiDiagAturanPartikelPun_Val(PySipebiMiniValidationBase):
8 | # Additional properties which are not in the base class
9 | isInputFileAvailable = False # Just an example
10 | commonMistakeFound = False # Just an example
11 | specialMistakeFound = False # Just an example
12 |
13 | # Values of base class properties requiring different default values
14 | diagScriptFileName = 'PySipebiDiagAturanPartikelPun.py'
15 | sipebiErrorCodes = ['[KE02]', '[KE03]']
16 |
17 | # Shared resources and output-related properties
18 | hasSharedResources = True
19 | # file resources that are taken from py\data\ folder
20 | fileResourceNames = \
21 | ['PySipebiDiagAturanPartikelPun_common_check.txt',
22 | 'PySipebiDiagAturanPartikelPun_test.txt',
23 | 'diag/data_partikel_pun.txt']
24 | # the output file name of this validation script
25 | outputFilename = 'PySipebiDiagAturanPartikelPun_result.txt'
26 |
27 | # Supposing there is no override needed in the setup, init_changing_vars, and write_output_content methods
28 | # We will only need to override execute method as shown below
29 | def execute_with_shared_resources(self, shared_resources):
30 | # Some initialization here
31 | # re-initialize all the variables (to clear the results from the previous call)
32 | self.init_changing_vars()
33 |
34 | self.isInputFileAvailable = True
35 | self.commonMistakeFound = False
36 | self.specialMistakeFound = False
37 |
38 | # Wrap the whole mechanism except for write_output_content in a single try-except block
39 | try:
40 | if not self.isInputFileAvailable:
41 | self.failReason = 'the input file is not found'
42 | return # Return immediately as nothing else can be done if there is no input file
43 |
44 | # Here, parse the common_guide text
45 | self.parse_common_check_python(shared_resources)
46 |
47 | # Run the diagnostics script here
48 | diag_script = PySipebiDiagAturanPartikelPun()
49 | test_file = shared_resources.get('PySipebiDiagAturanPartikelPun_test.txt')
50 |
51 | sipebi_text_division = PySipebiTextDivision(test_file)
52 | shared_resources['sipebi_text_division'] = sipebi_text_division
53 |
54 | diag_script.execute_with_shared_resources(test_file, shared_resources)
55 |
56 | counter = 0
57 | for diag in diag_script.diagList:
58 | if diag.ErrorCode in self.sipebiErrorCodes:
59 | checkDiag = self.commonCheckDiagnosticsErrors[counter]
60 | if diag.ElementNo == checkDiag.ElementNo and diag.ParagraphNo == checkDiag.ParagraphNo and diag.OriginalElement == checkDiag.OriginalElement:
61 | if diag.CorrectedElement != checkDiag.CorrectedElement:
62 | self.commonMistakes.append(f"P{diag.ParagraphNo} E{diag.ElementNo} | Expected '{checkDiag.CorrectedElement}' but got '{diag.CorrectedElement}'")
63 |
64 | counter += 1
65 |
66 | for i in range(counter, len(self.commonCheckDiagnosticsErrors)):
67 | self.commonMistakes.append(f"P{self.commonCheckDiagnosticsErrors[i].ParagraphNo} E{self.commonCheckDiagnosticsErrors[i].ElementNo} | Expected '{self.commonCheckDiagnosticsErrors[i].OriginalElement} => {self.commonCheckDiagnosticsErrors[i].CorrectedElement}' but not detected")
68 |
69 | # Check the conditions to consider that the validation result is 'pass' or 'fail'
70 | self.isPassed = len(self.commonMistakes) == 0 and len(self.specialMistakes) == 0
71 |
72 | # If we reach this point, the validation has been executed successfully
73 | # Mark the execution as completed successfully, emptied out all mistakes for the next call
74 | self.isCompleted = True
75 |
76 | except Exception as e: # catch essentially all exceptions, NOT the best practice but is sufficient for an example
77 | self.isCompleted = False
78 | self.failReason = 'Exception: ' + str(e.args)
79 |
80 | self.write_output_content_python()
81 |
82 | if __name__ == "__main__":
83 | validation_runner = PySipebiCommonValidationRunner(PySipebiDiagAturanPartikelPun_Val)
84 | validation_runner.setup_and_run_validation()
--------------------------------------------------------------------------------
/Files/daftar-diagnosis-tambahan.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | [Buatan-KPS-D]
5 | [Buatan] Kesalahan Penulisan Singkat (Definit)
6 | [Buatan] Kata yang digunakan merupakan bentuk penulisan singkat(an) yang tidak baku - biasa hanya dipakai dalam bentuk percakapan tertulis
7 | 1.1.0.0
8 | true
9 |
10 |
11 | [Buatan-KPS-A]
12 | [Buatan] Kesalahan Penulisan Singkat (Ambigu)
13 | [Buatan] Kata yang digunakan mungkin merupakan bentuk penulisan singkat(an) yang tidak baku - biasa hanya dipakai dalam bentuk percakapan tertulis
14 | 1.1.0.0
15 | true
16 |
17 |
18 | [Kode Contoh A]
19 | [Contoh] Contoh Kode Kesalahan A
20 | [Contoh] Contoh penjelasan kode kesalahan A
21 | 1.2.0.0
22 | true
23 |
24 |
25 | [Kode Contoh B]
26 | [Contoh] Contoh Kode Kesalahan B
27 | [Contoh] Contoh penjelasan kode kesalahan B
28 | 1.2.0.0
29 | true
30 |
31 |
32 | [TB07]
33 | Tanda koma digunakan untuk memisahkan petikan langsung dari bagian lain dalam kalimat
34 | Tanda koma digunakan untuk memisahkan petikan langsung dari bagian lain dalam kalimat
35 | 1.2.0.0
36 | false
37 |
38 |
39 | [TB08]
40 | Tanda koma tidak digunakan untuk memisahkan petikan langsung yang diakhiri tanda tanya atau tanda seru dari bagian kalimat yang mengikutinya
41 | Tanda koma tidak digunakan untuk memisahkan petikan langsung yang diakhiri tanda tanya atau tanda seru dari bagian kalimat yang mengikutinya
42 | 1.2.0.0
43 | false
44 |
45 |
46 | [KE01]
47 | Partikel -lah, -kah, dan -tah ditulis serangkai dengan kata yang mendahuluinya
48 | Partikel -lah, -kah, dan -tah ditulis serangkai dengan kata yang mendahuluinya
49 | 1.2.0.0
50 | false
51 |
52 |
53 | [KE02]
54 | Partikel pun ditulis terpisah dari kata yang mendahuluinya
55 | Partikel pun ditulis terpisah dari kata yang mendahuluinya
56 | 1.2.0.0
57 | false
58 |
59 |
60 | [KE03]
61 | Bentuk pun yang merupakan bagian kata penghubung seperti berikut ditulis serangkai
62 | Bentuk pun yang merupakan bagian kata penghubung seperti berikut ditulis serangkai
63 | 1.2.0.0
64 | false
65 |
66 |
67 | [KG05]
68 | Angka yang menunjukkan bilangan besar dapat ditulis sebagian dengan huruf supaya lebih mudah dibaca
69 | Angka yang menunjukkan bilangan besar dapat ditulis sebagian dengan huruf supaya lebih mudah dibaca
70 | 1.2.0.0
71 | false
72 |
73 |
74 | [Kode Contoh R]
75 | [Contoh] Contoh Kode Kesalahan R
76 | [Contoh] Kode ini muncul jika file resource dapat terbaca dengan sempurna
77 | 1.2.0.0
78 | true
79 |
80 |
--------------------------------------------------------------------------------
/py/PySipebiDiagAturanPartikelLahKahTah_Val.py:
--------------------------------------------------------------------------------
1 | # All validation class must be derived from PySipebiMiniValidationBase
2 | from PySipebiMiniValidationBase import PySipebiMiniValidationBase
3 | from diag.PySipebiDiagAturanPartikelLahKahTah import PySipebiDiagAturanPartikelLahKahTah
4 | from diag.core.PySipebiStructs import PySipebiTextDivision
5 | from PySipebiCommonValidationRunner import PySipebiCommonValidationRunner
6 |
7 | class PySipebiDiagAturanPartikelLahKahTah_Val(PySipebiMiniValidationBase):
8 | # Additional properties which are not in the base class
9 | isInputFileAvailable = False # Just an example
10 | commonMistakeFound = False # Just an example
11 | specialMistakeFound = False # Just an example
12 |
13 | # Values of base class properties requiring different default values
14 | diagScriptFileName = 'PySipebiDiagAturanPartikelLahKahTah.py'
15 | sipebiErrorCodes = ['[KE01]']
16 |
17 | # Shared resources and output-related properties
18 | hasSharedResources = True
19 | # file resources that are taken from py\data\ folder
20 | fileResourceNames = \
21 | ['PySipebiDiagAturanPartikelLahKahTah_common_check.txt',
22 | 'PySipebiDiagAturanPartikelLahKahTah_test.txt']
23 | # the output file name of this validation script
24 | outputFilename = 'PySipebiDiagAturanPartikelLahKahTah_result.txt'
25 |
26 | # Supposing there is no override needed in the setup, init_changing_vars, and write_output_content methods
27 | # We will only need to override execute method as shown below
28 | def execute_with_shared_resources(self, shared_resources):
29 | # Some initialization here
30 | # re-initialize all the variables (to clear the results from the previous call)
31 | self.init_changing_vars()
32 |
33 | self.isInputFileAvailable = True
34 | self.commonMistakeFound = False
35 | self.specialMistakeFound = False
36 |
37 | # Wrap the whole mechanism except for write_output_content in a single try-except block
38 | try:
39 | if not self.isInputFileAvailable:
40 | self.failReason = 'the input file is not found'
41 | return # Return immediately as nothing else can be done if there is no input file
42 |
43 | # Here, parse the common_guide text
44 | self.parse_common_check_python(shared_resources)
45 |
46 | # Run the diagnostics script here
47 | diag_script = PySipebiDiagAturanPartikelLahKahTah()
48 | # TODO read test input file here and execute the diagnostics script using the test input file [PySipebiDiagExample_test.txt]
49 | test_file = shared_resources.get('PySipebiDiagAturanPartikelLahKahTah_test.txt')
50 |
51 | sipebi_text_division = PySipebiTextDivision(test_file)
52 | shared_resources['sipebi_text_division'] = sipebi_text_division
53 |
54 | diag_script.execute_with_shared_resources(test_file, shared_resources)
55 |
56 | counter = 0
57 | for diag in diag_script.diagList:
58 | if diag.ErrorCode in self.sipebiErrorCodes:
59 | checkDiag = self.commonCheckDiagnosticsErrors[counter]
60 | if diag.ElementNo == checkDiag.ElementNo and diag.ParagraphNo == checkDiag.ParagraphNo and diag.OriginalElement == checkDiag.OriginalElement:
61 | if diag.CorrectedElement != checkDiag.CorrectedElement:
62 | self.commonMistakes.append(f"P{diag.ParagraphNo} E{diag.ElementNo} | Expected '{checkDiag.CorrectedElement}' but got '{diag.CorrectedElement}'")
63 |
64 | counter += 1
65 |
66 | for i in range(counter, len(self.commonCheckDiagnosticsErrors)):
67 | self.commonMistakes.append(f"P{self.commonCheckDiagnosticsErrors[i].ParagraphNo} E{self.commonCheckDiagnosticsErrors[i].ElementNo} | Expected '{self.commonCheckDiagnosticsErrors[i].OriginalElement} => {self.commonCheckDiagnosticsErrors[i].CorrectedElement}' but not detected")
68 |
69 | # Check the conditions to consider that the validation result is 'pass' or 'fail'
70 | self.isPassed = len(self.commonMistakes) == 0 and len(self.specialMistakes) == 0
71 |
72 | # If we reach this point, the validation has been executed successfully
73 | # Mark the execution as completed successfully, emptied out all mistakes for the next call
74 | self.isCompleted = True
75 |
76 | except Exception as e: # catch essentially all exceptions, NOT the best practice but is sufficient for an example
77 | self.isCompleted = False
78 | self.failReason = 'Exception: ' + str(e.args)
79 |
80 | self.write_output_content_python()
81 |
82 | if __name__ == "__main__":
83 | validation_runner = PySipebiCommonValidationRunner(PySipebiDiagAturanPartikelLahKahTah_Val)
84 | validation_runner.setup_and_run_validation()
--------------------------------------------------------------------------------
/py/PySipebiDiagAturanAngkaBilanganBesar_Val.py:
--------------------------------------------------------------------------------
1 | # All validation class must be derived from PySipebiMiniValidationBase
2 | from PySipebiMiniValidationBase import PySipebiMiniValidationBase
3 | from diag.PySipebiDiagAturanAngkaBilanganBesar import PySipebiDiagAturanAngkaBilanganBesar
4 | from diag.core.PySipebiStructs import PySipebiTextDivision
5 | from PySipebiCommonValidationRunner import PySipebiCommonValidationRunner
6 |
7 | class PySipebiDiagAturanAngkaBilanganBesar_Val(PySipebiMiniValidationBase):
8 | # Additional properties which are not in the base class
9 | isInputFileAvailable = False # Just an example
10 | commonMistakeFound = False # Just an example
11 | specialMistakeFound = False # Just an example
12 |
13 | # Values of base class properties requiring different default values
14 | diagScriptFileName = 'PySipebiDiagAturanAngkaBilanganBesar_Val.py'
15 | sipebiErrorCodes = ['[KG05]']
16 |
17 | # Shared resources and output-related properties
18 | hasSharedResources = True
19 | # file resources that are taken from py\data\ folder
20 | fileResourceNames = \
21 | ['PySipebiDiagAturanAngkaBilanganBesaR_common_check.txt',
22 | 'PySipebiDiagAturanAngkaBilanganBesar_test.txt']
23 | # the output file name of this validation script
24 | outputFilename = 'PySipebiDiagAturanAngkaBilanganBesar_result.txt'
25 |
26 | # Supposing there is no override needed in the setup, init_changing_vars, and write_output_content methods
27 | # We will only need to override execute method as shown below
28 | def execute_with_shared_resources(self, shared_resources):
29 | # Some initialization here
30 | # re-initialize all the variables (to clear the results from the previous call)
31 | self.init_changing_vars()
32 |
33 | self.isInputFileAvailable = True
34 | self.commonMistakeFound = False
35 | self.specialMistakeFound = False
36 |
37 | # Wrap the whole mechanism except for write_output_content in a single try-except block
38 | try:
39 | if not self.isInputFileAvailable:
40 | self.failReason = 'the input file is not found'
41 | return # Return immediately as nothing else can be done if there is no input file
42 |
43 | # Here, parse the common_guide text
44 | self.parse_common_check_python(shared_resources)
45 |
46 | # Run the diagnostics script here
47 | diag_script = PySipebiDiagAturanAngkaBilanganBesar()
48 | # TODO read test input file here and execute the diagnostics script using the test input file [PySipebiDiagExample_test.txt]
49 | test_file = shared_resources.get('PySipebiDiagAturanAngkaBilanganBesar_test.txt')
50 |
51 | sipebi_text_division = PySipebiTextDivision(test_file)
52 | shared_resources['sipebi_text_division'] = sipebi_text_division
53 |
54 | diag_script.execute_with_shared_resources(test_file, shared_resources)
55 |
56 | counter = 0
57 | for diag in diag_script.diagList:
58 | if diag.ErrorCode in self.sipebiErrorCodes:
59 | checkDiag = self.commonCheckDiagnosticsErrors[counter]
60 | if diag.ElementNo == checkDiag.ElementNo and diag.ParagraphNo == checkDiag.ParagraphNo and diag.OriginalElement == checkDiag.OriginalElement:
61 | if diag.CorrectedElement != checkDiag.CorrectedElement:
62 | self.commonMistakes.append(f"P{diag.ParagraphNo} E{diag.ElementNo} | Expected '{checkDiag.CorrectedElement}' but got '{diag.CorrectedElement}'")
63 |
64 | counter += 1
65 |
66 | for i in range(counter, len(self.commonCheckDiagnosticsErrors)):
67 | self.commonMistakes.append(f"P{self.commonCheckDiagnosticsErrors[i].ParagraphNo} E{self.commonCheckDiagnosticsErrors[i].ElementNo} | Expected '{self.commonCheckDiagnosticsErrors[i].OriginalElement} => {self.commonCheckDiagnosticsErrors[i].CorrectedElement}' but not detected")
68 |
69 | # Check the conditions to consider that the validation result is 'pass' or 'fail'
70 | self.isPassed = len(self.commonMistakes) == 0 and len(self.specialMistakes) == 0
71 |
72 | # If we reach this point, the validation has been executed successfully
73 | # Mark the execution as completed successfully, emptied out all mistakes for the next call
74 | self.isCompleted = True
75 |
76 | except Exception as e: # catch essentially all exceptions, NOT the best practice but is sufficient for an example
77 | self.isCompleted = False
78 | self.failReason = 'Exception: ' + str(e.args)
79 |
80 | self.write_output_content_python()
81 |
82 | if __name__ == "__main__":
83 | validation_runner = PySipebiCommonValidationRunner(PySipebiDiagAturanAngkaBilanganBesar_Val)
84 | validation_runner.setup_and_run_validation()
--------------------------------------------------------------------------------
/py/PySipebiDiagExample_Val.py:
--------------------------------------------------------------------------------
1 | # All validation class must be derived from PySipebiMiniValidationBase
2 | from PySipebiMiniValidationBase import PySipebiMiniValidationBase
3 | # Below are references to the diagnostics classes associated with this validation, change accordingly
4 | from diag.PySipebiDiagExample import PySipebiDiagExample
5 | from diag.core.PySipebiDiagnosticsError import PySipebiDiagnosticsError
6 |
7 | # An example of Sipebi Mini validation script
8 | # All Sipebi Mini validation script must be derived from PySipebiMiniValidationBase
9 | class PySipebiDiagExample_Val(PySipebiMiniValidationBase):
10 | # Additional properties which are not in the base class
11 | isInputFileAvailable = False # Just an example
12 | commonMistakeFound = False # Just an example
13 | specialMistakeFound = False # Just an example
14 |
15 | # Values of base class properties requiring different default values
16 | diagScriptFileName = 'PySipebiDiagExample.py'
17 | sipebiErrorCodes = ['KH01', 'KH02', 'Sipebi Error 1']
18 |
19 | # Shared resources and output-related properties
20 | hasSharedResources = True
21 | # file resources that are taken from py\data\ folder
22 | fileResourceNames = \
23 | ['initial_file_resource_example.txt',
24 | 'PySipebiPerbaikanKataHubung_common_check.txt',
25 | 'PySipebiPerbaikanKataHubung_test.txt']
26 | # file resources that are taken from py\diag\data\ folder instead of from data folder
27 | diagFileResourceNames = ['initial_diag_file_resource_example.txt']
28 | # the output file name of this validation script
29 | outputFilename = 'PySipebiPerbaikanKataHubung_result.txt'
30 |
31 | # Supposing there is no override needed in the setup, init_changing_vars, and write_output_content methods
32 | # We will only need to override execute method as shown below
33 | def execute_with_shared_resources(self, shared_resources):
34 | # Some initialization here
35 | # re-initialize all the variables (to clear the results from the previous call)
36 | self.init_changing_vars()
37 |
38 | self.isInputFileAvailable = False
39 | self.commonMistakeFound = False
40 | self.specialMistakeFound = False
41 |
42 | # Wrap the whole mechanism except for write_output_content in a single try-except block
43 | try:
44 | # Some setup and checking here (i.e. the checking and getting of input files)
45 | # Input files: [PySipebiDiagExample_test.txt] + [PySipebiDiagExample_common_guide.txt] + other files needed for this validation
46 | # Supposing the input file cannot be found for some reason
47 | if not self.isInputFileAvailable:
48 | self.failReason = 'the input file is not found'
49 | return # Return immediately as nothing else can be done if there is no input file
50 |
51 | # Here, parse the common_guide text
52 | self.parse_common_check(shared_resources)
53 |
54 | # Run the diagnostics script here
55 | diag_script = PySipebiDiagExample()
56 | # TODO read test input file here and execute the diagnostics script using the test input file [PySipebiDiagExample_test.txt]
57 | diag_script.execute('Replace this with validation test text (i.e. content of [PySipebiDiagExample_test.txt])')
58 |
59 | # Here, make use of diag_script.diagList to identify common mistake(s) and special mistake(s)
60 | # Compare them with the expected results self.commonCheckDiagnosticsErrors
61 | # TODO put clearer example here if needed
62 |
63 | # Suppose common mistake(s) is(are) found
64 | if self.commonMistakeFound:
65 | # Add the common mistake(s) to the list
66 | self.commonMistakes.add('diagnostics index [1] [berhari hari] is not generated by [' + self.diagScriptFileName + ']')
67 | self.commonMistakes.add('[IsAmbiguous] value for diagnostics index [2] [Kurukuru, -> kuru-kuru,] is [False]. Excpected: [True]')
68 |
69 | # Suppose special mistake(s) is(are) found
70 | if self.specialMistakeFound:
71 | # Add the special mistake(s) to the list
72 | self.specialMistakes.add('special comments for special mistakes here')
73 |
74 | # Check the conditions to consider that the validation result is 'pass' or 'fail'
75 | self.isPassed = len(self.commonMistakes) == 0 and len(self.specialMistakes) == 0
76 |
77 | # If we reach this point, the validation has been executed successfully
78 | # Mark the execution as completed successfully, emptied out all mistakes for the next call
79 | self.isCompleted = True
80 |
81 | except Exception as e: # catch essentially all exceptions, NOT the best practice but is sufficient for an example
82 | self.isCompleted = False
83 | self.failReason = 'Exception: ' + str(e.args)
84 |
85 | # Write the validation result to a text file using default (base) method
86 | self.write_output_content()
87 |
--------------------------------------------------------------------------------
/py/PySipebiDiagAturanTandaBacaPadaDialog_Val.py:
--------------------------------------------------------------------------------
1 | # All validation class must be derived from PySipebiMiniValidationBase
2 | from PySipebiMiniValidationBase import PySipebiMiniValidationBase
3 | from diag.PySipebiDiagAturanTandaBacaPadaDialog import PySipebiDiagAturanTandaBacaPadaDialog
4 | from diag.core.PySipebiStructs import PySipebiTextDivision
5 | from PySipebiCommonValidationRunner import PySipebiCommonValidationRunner
6 |
7 | class PySipebiDiagAturanTandaBacaPadaDialog_Val(PySipebiMiniValidationBase):
8 | # Additional properties which are not in the base class
9 | isInputFileAvailable = False # Just an example
10 | commonMistakeFound = False # Just an example
11 | specialMistakeFound = False # Just an example
12 |
13 | # Values of base class properties requiring different default values
14 | diagScriptFileName = 'PySipebiDiagAturanTandaBacaPadaDialog.py'
15 | sipebiErrorCodes = ['[TB07]', '[TB08]']
16 |
17 | # Shared resources and output-related properties
18 | hasSharedResources = True
19 | # file resources that are taken from py\data\ folder
20 | fileResourceNames = \
21 | ['PySipebiDiagAturanTandaBacaPadaDialog_common_check.txt',
22 | 'PySipebiDiagAturanTandaBacaPadaDialog_test.txt']
23 | # the output file name of this validation script
24 | outputFilename = 'PySipebiDiagAturanTandaBacaPadaDialog_result.txt'
25 |
26 | # Supposing there is no override needed in the setup, init_changing_vars, and write_output_content methods
27 | # We will only need to override execute method as shown below
28 | def execute_with_shared_resources(self, shared_resources):
29 | # Some initialization here
30 | # re-initialize all the variables (to clear the results from the previous call)
31 | self.init_changing_vars()
32 |
33 | self.isInputFileAvailable = True
34 | self.commonMistakeFound = False
35 | self.specialMistakeFound = False
36 |
37 | # Wrap the whole mechanism except for write_output_content in a single try-except block
38 | try:
39 | if not self.isInputFileAvailable:
40 | self.failReason = 'the input file is not found'
41 | return # Return immediately as nothing else can be done if there is no input file
42 |
43 | # Here, parse the common_guide text
44 | self.parse_common_check_python(shared_resources)
45 |
46 | # Run the diagnostics script here
47 | diag_script = PySipebiDiagAturanTandaBacaPadaDialog()
48 | # TODO read test input file here and execute the diagnostics script using the test input file [PySipebiDiagExample_test.txt]
49 | test_file = shared_resources.get('PySipebiDiagAturanTandaBacaPadaDialog_test.txt')
50 |
51 | sipebi_text_division = PySipebiTextDivision(test_file)
52 | shared_resources['sipebi_text_division'] = sipebi_text_division
53 |
54 | diag_script.execute_with_shared_resources(test_file, shared_resources)
55 |
56 | # TODO put clearer example here if needed
57 | counter = 0
58 | for diag in diag_script.diagList:
59 | if diag.ErrorCode in self.sipebiErrorCodes:
60 | # compare with self.commonCheckDiagnosticsErrors
61 | # self.commonCheckDiagnosticsErrors is a list of PySipebiDiagnosticsError
62 | # code
63 | checkDiag = self.commonCheckDiagnosticsErrors[counter]
64 | if diag.ElementNo == checkDiag.ElementNo and diag.ParagraphNo == checkDiag.ParagraphNo and diag.OriginalElement == checkDiag.OriginalElement:
65 | if diag.CorrectedElement != checkDiag.CorrectedElement:
66 | self.commonMistakes.append(f"P{diag.ParagraphNo} E{diag.ElementNo} | Expected '{checkDiag.CorrectedElement}' but got '{diag.CorrectedElement}'")
67 |
68 | counter += 1
69 |
70 | for i in range(counter, len(self.commonCheckDiagnosticsErrors)):
71 | self.commonMistakes.append(f"P{self.commonCheckDiagnosticsErrors[i].ParagraphNo} E{self.commonCheckDiagnosticsErrors[i].ElementNo} | Expected '{self.commonCheckDiagnosticsErrors[i].OriginalElement} => {self.commonCheckDiagnosticsErrors[i].CorrectedElement}' but not detected")
72 |
73 | # Check the conditions to consider that the validation result is 'pass' or 'fail'
74 | self.isPassed = len(self.commonMistakes) == 0 and len(self.specialMistakes) == 0
75 |
76 | # If we reach this point, the validation has been executed successfully
77 | # Mark the execution as completed successfully, emptied out all mistakes for the next call
78 | self.isCompleted = True
79 |
80 | except Exception as e: # catch essentially all exceptions, NOT the best practice but is sufficient for an example
81 | self.isCompleted = False
82 | self.failReason = 'Exception: ' + str(e.args)
83 |
84 | self.write_output_content_python()
85 |
86 | if __name__ == "__main__":
87 | validation_runner = PySipebiCommonValidationRunner(PySipebiDiagAturanTandaBacaPadaDialog_Val)
88 | validation_runner.setup_and_run_validation()
--------------------------------------------------------------------------------
/py/diag/core/PySipebiDiagnosticsBase.py:
--------------------------------------------------------------------------------
1 | # kelas dasar Python bagi kelas-kelas penyuntingan lainnya
2 | class PySipebiDiagnosticsBase:
3 | # diagList: daftar kesalahan. List ini harus ada
4 | diagList = []
5 | # isReady: bendera yang menandakan pengaturan awal sudah selesai dikerjakan. Bendera ini harus ada
6 | isReady = False
7 | # isCompleted: bendera yang menandakan diagnosis telah selesai dikerjakan dengan sempurna
8 | isCompleted = False
9 | # hasSharedResources: menandakan diagnosis ini membutuhkan shared resources atau file resources
10 | hasSharedResources = False
11 | # sharedResourcesInputKeys: daftar key dari input_resources
12 | # yang diperlukan untuk menjalankan create_shared_resources
13 | sharedResourcesInputKeys = []
14 | # sharedResourcesOutputKeys: daftar key yang, jika create_shared_resources berjalan dengan benar,
15 | # akan dihasilkan (yaitu, output_resources) dari menjalankan create_shared_resources,
16 | # yang juga merupakan keys yang dimiliki oleh shared_resources pada execute_with_shared_resources
17 | # Catatan:
18 | # - Idealnya, sharedResourcesInputKeys dan sharedResourcesOutputKeys tidak dibuat beririsan
19 | sharedResourcesOutputKeys = []
20 | # fileResourceNames: daftar nama file resource yang terdapat pada folder py\diag\resources
21 | # yang diperlukan untuk menjalankan skrip diagnosis dengan benar
22 | fileResourceNames = []
23 |
24 | # setup: fungsi untuk melakukan pengaturan awal satu kali saja sebelum 'execute' dijalankan berulang kali
25 | # fungsi ini harus di-override jika terdapat persiapan awal satu kali (one-time setup) untuk diagnosis ini
26 | def setup(self):
27 | self.isReady = True
28 |
29 | # pre_execute: fungsi yang akan secara otomatis dijalankan sebelum fungsi execute dijalankan
30 | # override fungsi ini jika diperlukan
31 | def pre_execute(self):
32 | self.isCompleted = False # bendera ini harus selalu direset sebelum eksekusi
33 | self.diagList = [] # kosongkan daftar kesalahan sebelum script dijalankan ulang
34 |
35 | # execute: fungsi untuk menjalankan penyuntingan tanpa input lain selain teks awal
36 | # fungsi ini harus di-override
37 | def execute(self, text):
38 | self.empty_diagnostics_and_reinit()
39 | # <------------------------------->
40 | # skrip untuk menjalankan diagnosis tanpa menggunakan shared resources
41 | # <------------------------------->
42 | self.isCompleted = True
43 |
44 | # post_execute: fungsi yang akan secara otomatis dijalankan setelah fungsi execute selesai dijalankan
45 | # override fungsi ini jika diperlukan
46 | def post_execute(self):
47 | pass
48 |
49 | # require_shared_resources: fungsi untuk mengindikasikan apakah fungsi ini harus dijalankan menggunakan
50 | # execute_with_shared_resources atau dapat dijalankan menggunakan execute saja jika shared_resources
51 | # tidak secara lengkap berhasil ditemukan
52 | # override fungsi ini jika diperlukan
53 | def require_shared_resources(self):
54 | return False
55 |
56 | # create_shared_resources: fungsi untuk mempersiapkan shared resources, jika ada
57 | # fungsi ini harus di-override jika hasSharedResources = True
58 | # input_resources adalah sebuah dictionary(string:object) yang boleh kosong
59 | # string (keys) dari input_resources adalah sama dengan yang terdaftar pada sharedResourcesInputKeys
60 | def create_shared_resources(self, text, input_resources):
61 | # output_resources harus merupakan sebuah dictionary(string:object)
62 | # di dalam semua kelas yang diturunkan dari PySipebiDiagnosticsBase,
63 | # output_resources TIDAK boleh kosong, tetapi harus menghasilkan
64 | # dictionary dengan keys yang sama persis dengan
65 | # yang didaftarkan pada sharedResourcesOutputKeys
66 | output_resources = {}
67 | return output_resources
68 |
69 | # execute_with_shared_resources: fungsi untuk menjalankan penyuntingan menggunakan
70 | # resources yang terdaftar di sharedResourcesOutputKeys
71 | # fungsi ini harus di-override jika hasSharedResources = True
72 | # shared_resources adalah sebuah dictionary(string:object)
73 | # string (keys) dari shared_resources adalah sama dengan yang terdaftar pada sharedResourcesOutputKeys
74 | def execute_with_shared_resources(self, text, shared_resources):
75 | self.empty_diagnostics_and_reinit()
76 | # <------------------------------->
77 | # skrip untuk menjalankan diagnosis dengan menggunakan shared resources
78 | # <------------------------------->
79 | self.isCompleted = True
80 |
81 | # get_file_resource_key: fungsi untuk mendapatkan nama file resource key yang digunakan pada shared_resources
82 | # pada waktu menjalankan execute_with_shared_resources
83 | def get_file_resource_key(self, file_resource_name):
84 | return "diag\\data\\" + file_resource_name
85 |
86 | # read_file: fungsi untuk membaca konten file yang sudah terlebih dahulu didaftarkan pada fileResourceNames
87 | # fungsi ini memerlukan input berupa shared_resources
88 | # dengan demikian, fungsi ini hanya dapat berjalan dengan jika dipanggil di dalam fungsi execute_with_shared_resources
89 | # catatan: saat ini encoding yang digunakan untuk semua file resources adalah 'UTF-8'
90 | def read_file(self, file_name, shared_resources):
91 | # contoh cara mendapatkan file resource key bagi skrip diagnosis
92 | file_resource_key = self.get_file_resource_key(file_name)
93 | # contoh cara mengecek apakah file resource key ditemukan pada shared_resources
94 | if file_resource_key in shared_resources.keys():
95 | # contoh cara mendapatkan teks pada file resource menggunakan file resource key
96 | return shared_resources[file_resource_key]
97 | return '' # jika file yang diminta tidak berhasil ditemukan pada shared_resources, maka yang dikembalikan berupa string kosong
--------------------------------------------------------------------------------
/SipebiMiniForm.cs:
--------------------------------------------------------------------------------
1 | using SipebiMini.Core;
2 | using System;
3 | using System.Linq;
4 | using System.Reflection;
5 | using System.Windows.Forms;
6 | using py = SipebiMini.SipebiPythonManager;
7 |
8 | namespace SipebiMini {
9 | public partial class SampleForm : Form {
10 | public SampleForm() {
11 | InitializeComponent();
12 | Text += $" v{Assembly.GetExecutingAssembly().GetName().Version}";
13 | state.Inisiasi();
14 | py.Initialize();
15 | }
16 |
17 | SipebiMiniState state = new SipebiMiniState();
18 | const string formatPesanMuatContoh = "Contoh {0} dimuat!";
19 | const string formatPesanPenyuntinganAsal = "Penyuntingan dengan cara asal Sipebi {0}!";
20 | const string formatPesanPenyuntinganBuatan = "Penyuntingan dengan cara buatan Sipebi {0}!";
21 | const string formatPesanPenyuntinganPython = "Penyuntingan dengan skrip Python Sipebi {0}!";
22 |
23 | private void buttonMuatContoh_Click(object sender, EventArgs e) {
24 | string judulContoh = textBoxJudulContoh.Text;
25 | prosedurUmum(formatPesanMuatContoh, () => {
26 | richTextBoxTeksMasukan.Text = state.MuatContoh(judulContohTeks: judulContoh);
27 | });
28 | }
29 |
30 | private void buttonSuntingAsal_Click(object sender, EventArgs e) {
31 | prosedurUmumPenyuntingan(formatPesanPenyuntinganAsal, state.SuntingAsal);
32 | }
33 |
34 | private void buttonSuntingBuatan_Click(object sender, EventArgs e) {
35 | prosedurUmumPenyuntingan(formatPesanPenyuntinganBuatan, state.SuntingBuatan);
36 | }
37 |
38 | private void tampilkanHasilAnalisis(SipebiMiniDiagnosticsReport report) {
39 | DataGridView dgv = dataGridViewHasilAnalisis;
40 | int indeks = 0;
41 | dgv.Rows.Clear();
42 | foreach (var hasil in report.Errors) {
43 | indeks = dgv.RowCount - 1;
44 | DataGridViewRow baris = (DataGridViewRow)dgv.RowTemplate.Clone();
45 | baris.CreateCells(dgv, indeks + 1, hasil.ParagraphNo, hasil.ElementNo, hasil.ErrorCode,
46 | state.InformasiKesalahan[hasil.ErrorCode].Error,
47 | hasil.OriginalElement, hasil.CorrectedElementDisplay,
48 | state.InformasiKesalahan[hasil.ErrorCode].ErrorExplanation);
49 | dgv.Rows.Add(baris);
50 | }
51 | }
52 |
53 | private string pesanTambahan = "";
54 | private DateTime waktuMulai, waktuSelesai;
55 | private TimeSpan durasiDiagnosis;
56 | private void prosedurUmumPenyuntingan(string formatPesan,
57 | Func> fungsiPenyuntingan) {
58 | string teksAsal = richTextBoxTeksMasukan.Text;
59 | if (string.IsNullOrWhiteSpace(teksAsal)) return;
60 | prosedurUmum(formatPesan, () => {
61 | waktuMulai = DateTime.Now;
62 | Tuple hasil = fungsiPenyuntingan(teksAsal);
63 | tampilkanHasilAnalisis(hasil.Item1);
64 | richTextBoxTeksSuntingan.Text = hasil.Item2;
65 | waktuSelesai = DateTime.Now;
66 | durasiDiagnosis = waktuSelesai - waktuMulai;
67 | pesanTambahan = dapatkanPesanJumlahKesalahanTerdeteksi(hasil, teksAsal.Length);
68 | });
69 | }
70 |
71 | private void prosedurUmum(string formatPesan, Action aksi) {
72 | string teksHasil = "gagal";
73 | string pesanKesalahan = string.Empty;
74 | try {
75 | aturKontrol(false);
76 | aksi();
77 | teksHasil = "berhasil";
78 | } catch (Exception exc) {
79 | pesanKesalahan = Environment.NewLine + Environment.NewLine + "Kesalahan: " + exc.ToString();
80 | }
81 | MessageBox.Show(string.Format(formatPesan, teksHasil) +
82 | pesanTambahan + pesanKesalahan,
83 | char.ToUpper(teksHasil[0]) + teksHasil.Substring(1));
84 | aturKontrol(true);
85 | }
86 |
87 | private void aturKontrol(bool aktifkan) {
88 | flowLayoutPanelActions.Enabled = aktifkan;
89 | }
90 |
91 | private void buttonUjiCobaPython_Click(object sender, EventArgs e) {
92 | string result = SipebiPythonManager.RunDiagnosticsExample();
93 | MessageBox.Show($"{result}", "Hasil Uji Coba", MessageBoxButtons.OK);
94 | }
95 |
96 | private void buttonSuntingPython_Click(object sender, EventArgs e) {
97 | prosedurUmumPenyuntingan(formatPesanPenyuntinganPython, state.SuntingPython);
98 | }
99 |
100 | private void buttonValidasiPython_Click(object sender, EventArgs e) {
101 | SipebiPythonManager.RunValidation();
102 | }
103 |
104 | private string dapatkanPesanJumlahKesalahanTerdeteksi(Tuple hasil,
105 | int panjangTeksAwal) {
106 | if (hasil == null || hasil.Item1 == null || hasil.Item1.Errors == null) return string.Empty;
107 | var grupKesalahan = hasil.Item1.Errors.GroupBy(x => x.ErrorCode).OrderByDescending(x => x.Count());
108 | return Environment.NewLine + Environment.NewLine +
109 | $"Jumlah Kesalahan Terdeteksi: {hasil.Item1.Errors.Count}" + Environment.NewLine +
110 | $" Definit: {hasil.Item1.Errors.Count(x => !x.IsAmbiguous)}" + Environment.NewLine +
111 | $" Ambigu: {hasil.Item1.Errors.Count(x => x.IsAmbiguous)}" + Environment.NewLine +
112 | Environment.NewLine +
113 | string.Join(Environment.NewLine, grupKesalahan
114 | .Select(x => $"{x.Count()} {state.InformasiKesalahan[x.Key].ErrorCode} - " +
115 | $"{state.InformasiKesalahan[x.Key].Error}")) + Environment.NewLine +
116 | Environment.NewLine +
117 | $"Durasi Diagnosis: {durasiDiagnosis.TotalSeconds.ToString("F2")} detik" + Environment.NewLine +
118 | $"Panjang Teks: {panjangTeksAwal}" + Environment.NewLine +
119 | $"Jumlah Paragraf: {hasil.Item1.Paragraphs.Count}" + Environment.NewLine +
120 | $"Jumlah Elemen: {hasil.Item1.Paragraphs.Sum(x => x.WordDivs.Count)}" + Environment.NewLine +
121 | Environment.NewLine +
122 | $"Waktu Mulai Diagnosis: {waktuMulai.ToString("dd-MM-yyyy HH:mm:sss.fff")}" + Environment.NewLine +
123 | $"Waktu Selesai Diagnosis: {waktuSelesai.ToString("dd-MM-yyyy HH:mm:sss.fff")}" + Environment.NewLine +
124 | Environment.NewLine;
125 | }
126 | }
127 | }
128 |
--------------------------------------------------------------------------------
/py/diag/PySipebiDiagExample.py:
--------------------------------------------------------------------------------
1 | # baris-baris di bawah ini harus ada untuk mengimpor kelas-kelas inti Python
2 | from .core.PySipebiDiagnosticsError import PySipebiDiagnosticsError
3 | from .core.PySipebiDiagnosticsBase import PySipebiDiagnosticsBase
4 |
5 | # setiap kelas inti Python harus diturunkan dari PySipebiDiagnosticsBase
6 | class PySipebiDiagExample(PySipebiDiagnosticsBase):
7 | varNo = 0 # contoh angka
8 | varStr = 'sample text' # contoh teks
9 | diagList = [] # daftar kesalahan. List ini harus ada (hanya contoh, dapat dihapus, sudah terdefinisikan pada PySipebiAnalyzerBase)
10 | isReady = False # bendera yang menandakan pengaturan awal sudah selesai dikerjakan. Bendera ini harus ada (hanya contoh, dapat dihapus, sudah terdefinisikan pada PySipebiAnalyzerBase)
11 | hasSharedResources = True # diagnosis ini memiliki shared resources
12 | sharedResourcesInputKeys = [] # tidak memerlukan input selain text untuk membuat shared resources
13 | sharedResourcesOutputKeys = ['DummySharedResource'] # contoh shared_resource yang akan dihasilkan eksekusi yang berantai
14 | namaFailDaftarFrase = 'initial_diag_file_resource_example.txt' # contoh nama fail yang dibutuhkan sebagai file resources
15 | fileResourceNames = [namaFailDaftarFrase] # memerlukan file resource untuk melakukan eksekusi diagnosis. File resource yang diperlukan harus didaftarkan di sini agar dapat ditemukan pada shared_resources waktu execute_with_shared_resources dijalankan
16 |
17 | # setup: fungsi untuk melakukan pengaturan awal sebelum 'execute' dijalankan. Fungsi ini harus ada (sudah terdefinisikan pada PySipebiAnalyzerBase)
18 | def setup(self): # signature dari fungsi harus selalu seperti ini: setup(self):
19 | # ---lakukan pengaturan awal di sini---
20 | # ---mis: membaca data (dari folder \data), melakukan sorting internal, mempersiapkan variabel, dsb.---
21 | self.isReady = True # Fungi setup(), jika dianggap sudah dijalankan dengan benar, harus diakhiri dengan baris ini
22 |
23 | # execute: fungsi untuk menjalankan penyuntingan. Fungsi ini harus ada (sudah terdefinisikan pada PySipebiAnalyzerBase)
24 | def execute(self, text): # harus ada, signature dari fungsi harus selalu seperti ini: def execute(self, text):
25 | self.varNo = self.varNo + 1 # contoh penggunaan variabel
26 | self.varStr = text # contoh penggunaan input/variabel
27 | # ---text dapat diproses di sini untuk mendapatkan hasil diagnosis---
28 | # contoh penambahan hasil diagnosis dapat dilihat di bawah
29 | # elemen PySipebiDiagnosticsError dalam contoh di bawah tidak lengkap, hanya diperuntukkan sebagai contoh, silakan dilengkapi
30 | self.run_common_diagnostics()
31 | self.isCompleted = True # Bendera ini harus diset jika eksekusi berjalan dengan sempurna
32 |
33 | # create_shared_resources: fungsi untuk mempersiapkan shared resources, jika ada
34 | # fungsi ini harus di-override jika hasSharedResources = True
35 | # input_resources adalah sebuah dictionary(string:object) yang boleh kosong
36 | # string (keys) dari input_resources adalah sama dengan yang terdaftar pada sharedResourcesInputKeys
37 | def create_shared_resources(self, text, input_resources):
38 | output_resources = {}
39 | dummy_object = None
40 | output_resources['DummySharedResource'] = dummy_object
41 | return output_resources
42 |
43 | # execute_with_shared_resources: fungsi untuk menjalankan penyuntingan menggunakan
44 | # resources yang terdaftar di sharedResourcesOutputKeys
45 | # fungsi ini harus di-override jika hasSharedResources = True
46 | # shared_resources adalah sebuah dictionary(string:object)
47 | # string (keys) dari shared_resources adalah sama dengan yang terdaftar pada sharedResourcesOutputKeys
48 | def execute_with_shared_resources(self, text, shared_resources):
49 | self.varNo = self.varNo + 1 # contoh penggunaan variabel
50 | self.varStr = text # contoh penggunaan input/variabel
51 | self.run_common_diagnostics()
52 |
53 | # contoh cara "membaca" isi file bagi skrip diagnosis
54 | file_resource_text = self.read_file(self.namaFailDaftarFrase, shared_resources)
55 |
56 | hasil_diagnosis = PySipebiDiagnosticsError()
57 | hasil_diagnosis.ErrorCode = '[Kode Contoh R]'
58 | hasil_diagnosis.OriginalElement = 'sr-contoh-' + str(self.varNo)
59 | hasil_diagnosis.CorrectedElement = 'sr-contoh-' + str(self.varNo) + ('R' if file_resource_text != '' else '0')
60 | hasil_diagnosis.IsAmbiguous = True
61 | self.diagList.append(hasil_diagnosis)
62 |
63 | if type(shared_resources is dict) and ('DummySharedResource' in shared_resources.keys()):
64 | hasil_diagnosis = PySipebiDiagnosticsError()
65 | hasil_diagnosis.ErrorCode = '[Kode Contoh A]'
66 | hasil_diagnosis.OriginalElement = 'sr-contoh-' + str(self.varNo)
67 | hasil_diagnosis.CorrectedElement = 'sr-contoh-' + str(self.varNo) + 'A'
68 | hasil_diagnosis.IsAmbiguous = True
69 | self.diagList.append(hasil_diagnosis)
70 | if len(self.diagList) > 10:
71 | self.diagList.pop(0)
72 | self.isCompleted = True # Bendera ini harus diset jika eksekusi berjalan dengan sempurna
73 |
74 | # run_diagnostics: tambahan fungsi khusus skrip diagnosis ini
75 | # kode fungsi ini dapat pula langsung diletakkan di dalam execute dan/atau execute_with_shared_resources
76 | def run_common_diagnostics(self):
77 | hasil_diagnosis = PySipebiDiagnosticsError()
78 | hasil_diagnosis.ErrorCode = '[Kode Contoh A]'
79 | hasil_diagnosis.OriginalElement = 'contoh-' + str(self.varNo)
80 | hasil_diagnosis.CorrectedElement = 'contoh-' + str(self.varNo) + 'A'
81 | hasil_diagnosis.IsAmbiguous = True
82 | self.diagList.append(hasil_diagnosis)
83 | hasil_diagnosis = PySipebiDiagnosticsError()
84 | hasil_diagnosis.ErrorCode = '[Kode Contoh B]'
85 | hasil_diagnosis.OriginalElement = 'contoh-' + str(self.varNo)
86 | hasil_diagnosis.CorrectedElement = 'contoh-' + str(self.varNo) + 'B'
87 | hasil_diagnosis.IsAmbiguous = True
88 | self.diagList.append(hasil_diagnosis)
89 | if len(self.diagList) > 10:
90 | self.diagList.pop(1)
91 | self.diagList.pop(0)
92 |
--------------------------------------------------------------------------------
/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/Files/daftar-diagnosis.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | [KBBI BTB]
5 | [KBBI] Bentuk Takbaku
6 | [KBBI] Kata yang digunakan merupakan bentuk takbaku
7 | 1.0.0.0
8 | false
9 |
10 |
11 | [KBBI KA]
12 | [KBBI] Kata Ambigu
13 | [KBBI] Kata yang digunakan bersifat ambigu, dapat merupakan bentuk baku atau takbaku tergantung dari makna yang dimaksudkan
14 | 1.0.0.0
15 | false
16 |
17 |
18 | [Sipebi BTB]
19 | [Sipebi] Bentuk Takbaku
20 | [Sipebi] Kata yang digunakan merupakan bentuk takbaku
21 | 1.0.0.0
22 | false
23 |
24 |
25 | [Sipebi KA]
26 | [Sipebi] Kata Ambigu
27 | [Sipebi] Kata yang digunakan bersifat ambigu, dapat merupakan bentuk baku atau takbaku tergantung dari makna yang dimaksudkan
28 | 1.0.0.0
29 | false
30 |
31 |
32 | [Sipebi BT]
33 | [Sipebi] Bentuk Terikat
34 | [Sipebi] Kata yang digunakan merupakan bentuk terikat. Penulisannya harus disambungkan dengan kata sebelum atau sesudahnya
35 | 1.0.0.0
36 | false
37 |
38 |
39 | [Sipebi BT-M]
40 | [Sipebi] Mungkin Bentuk Terikat
41 | [Sipebi] Kata yang digunakan mungkin merupakan bentuk terikat. Jika benar, penulisannya seharusnya disambungkan dengan kata sebelum atau sesudahnya
42 | 1.0.0.0
43 | false
44 |
45 |
46 | [Sipebi KHS]
47 | [Sipebi] Kata Hubung Subordinatif
48 | [Sipebi] Kata yang digunakan mungkin merupakan kata hubung subordinatif yang harus ditulis tanpa didahului oleh tanda koma
49 | 1.0.0.0
50 | false
51 |
52 |
53 | [Sipebi KHIK]
54 | [Sipebi] Kata Hubung Intrakalimat
55 | [Sipebi] Kata hubung intrakalimat harus ditulis didahului oleh tanda koma
56 | 1.0.0.0
57 | false
58 |
59 |
60 | [Sipebi KHIK-M]
61 | [Sipebi] Mungkin Kata Hubung Intrakalimat
62 | [Sipebi] Kata yang digunakan mungkin merupakan kata hubung intrakalimat yang harus ditulis didahului oleh tanda koma
63 | 1.0.0.0
64 | false
65 |
66 |
67 | [Sipebi KHAK]
68 | [Sipebi] Kata Hubung Antarkalimat
69 | [Sipebi] Kata hubung antarkalimat harus ditulis diikuti oleh tanda koma
70 | 1.0.0.0
71 | false
72 |
73 |
74 | [Sipebi KAK]
75 | [Sipebi] Kapital pada Awal Kalimat
76 | [Sipebi] Huruf kapital dipakai sebagai huruf pertama awal kalimat
77 | 1.0.0.0
78 | false
79 |
80 |
81 | [Sipebi ke-{0}]
82 | [Sipebi] ke-{angka}
83 | [Sipebi] Tanda hubung (-) dipakai untuk merangkai ke- dengan angka
84 | 1.0.0.0
85 | false
86 |
87 |
88 | [Sipebi {0}-an]
89 | [Sipebi] {angka}-an
90 | [Sipebi] Tanda hubung (-) dipakai untuk merangkai angka dengan -an
91 | 1.0.0.0
92 | false
93 |
94 |
95 | [Sipebi {A}-{kg}]
96 | [Sipebi] Singkatan Kapital -ku/-mu/-nya
97 | [Sipebi] Tanda hubung (-) dipakai untuk merangkai singkatan berupa huruf kapital dengan kata ganti -ku, -mu, dan -nya
98 | 1.0.0.0
99 | false
100 |
101 |
102 | [Sipebi TPW]
103 | [Sipebi] Titik pada Penulisan Waktu
104 | [Sipebi] Tanda titik (.) dipakai untuk memisahkan angka jam, menit, dan detik yang menunjukkan waktu atau jangka waktu
105 | 1.0.0.0
106 | false
107 |
108 |
--------------------------------------------------------------------------------
/bin/Debug/daftar-diagnosis.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | [KBBI BTB]
5 | [KBBI] Bentuk Takbaku
6 | [KBBI] Kata yang digunakan merupakan bentuk takbaku
7 | 1.0.0.0
8 | false
9 |
10 |
11 | [KBBI KA]
12 | [KBBI] Kata Ambigu
13 | [KBBI] Kata yang digunakan bersifat ambigu, dapat merupakan bentuk baku atau takbaku tergantung dari makna yang dimaksudkan
14 | 1.0.0.0
15 | false
16 |
17 |
18 | [Sipebi BTB]
19 | [Sipebi] Bentuk Takbaku
20 | [Sipebi] Kata yang digunakan merupakan bentuk takbaku
21 | 1.0.0.0
22 | false
23 |
24 |
25 | [Sipebi KA]
26 | [Sipebi] Kata Ambigu
27 | [Sipebi] Kata yang digunakan bersifat ambigu, dapat merupakan bentuk baku atau takbaku tergantung dari makna yang dimaksudkan
28 | 1.0.0.0
29 | false
30 |
31 |
32 | [Sipebi BT]
33 | [Sipebi] Bentuk Terikat
34 | [Sipebi] Kata yang digunakan merupakan bentuk terikat. Penulisannya harus disambungkan dengan kata sebelum atau sesudahnya
35 | 1.0.0.0
36 | false
37 |
38 |
39 | [Sipebi BT-M]
40 | [Sipebi] Mungkin Bentuk Terikat
41 | [Sipebi] Kata yang digunakan mungkin merupakan bentuk terikat. Jika benar, penulisannya seharusnya disambungkan dengan kata sebelum atau sesudahnya
42 | 1.0.0.0
43 | false
44 |
45 |
46 | [Sipebi KHS]
47 | [Sipebi] Kata Hubung Subordinatif
48 | [Sipebi] Kata yang digunakan mungkin merupakan kata hubung subordinatif yang harus ditulis tanpa didahului oleh tanda koma
49 | 1.0.0.0
50 | false
51 |
52 |
53 | [Sipebi KHIK]
54 | [Sipebi] Kata Hubung Intrakalimat
55 | [Sipebi] Kata hubung intrakalimat harus ditulis didahului oleh tanda koma
56 | 1.0.0.0
57 | false
58 |
59 |
60 | [Sipebi KHIK-M]
61 | [Sipebi] Mungkin Kata Hubung Intrakalimat
62 | [Sipebi] Kata yang digunakan mungkin merupakan kata hubung intrakalimat yang harus ditulis didahului oleh tanda koma
63 | 1.0.0.0
64 | false
65 |
66 |
67 | [Sipebi KHAK]
68 | [Sipebi] Kata Hubung Antarkalimat
69 | [Sipebi] Kata hubung antarkalimat harus ditulis diikuti oleh tanda koma
70 | 1.0.0.0
71 | false
72 |
73 |
74 | [Sipebi KAK]
75 | [Sipebi] Kapital pada Awal Kalimat
76 | [Sipebi] Huruf kapital dipakai sebagai huruf pertama awal kalimat
77 | 1.0.0.0
78 | false
79 |
80 |
81 | [Sipebi ke-{0}]
82 | [Sipebi] ke-{angka}
83 | [Sipebi] Tanda hubung (-) dipakai untuk merangkai ke- dengan angka
84 | 1.0.0.0
85 | false
86 |
87 |
88 | [Sipebi {0}-an]
89 | [Sipebi] {angka}-an
90 | [Sipebi] Tanda hubung (-) dipakai untuk merangkai angka dengan -an
91 | 1.0.0.0
92 | false
93 |
94 |
95 | [Sipebi {A}-{kg}]
96 | [Sipebi] Singkatan Kapital -ku/-mu/-nya
97 | [Sipebi] Tanda hubung (-) dipakai untuk merangkai singkatan berupa huruf kapital dengan kata ganti -ku, -mu, dan -nya
98 | 1.0.0.0
99 | false
100 |
101 |
102 | [Sipebi TPW]
103 | [Sipebi] Titik pada Penulisan Waktu
104 | [Sipebi] Tanda titik (.) dipakai untuk memisahkan angka jam, menit, dan detik yang menunjukkan waktu atau jangka waktu
105 | 1.0.0.0
106 | false
107 |
108 |
--------------------------------------------------------------------------------
/bin/Release/daftar-diagnosis.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | [KBBI BTB]
5 | [KBBI] Bentuk Takbaku
6 | [KBBI] Kata yang digunakan merupakan bentuk takbaku
7 | 1.0.0.0
8 | false
9 |
10 |
11 | [KBBI KA]
12 | [KBBI] Kata Ambigu
13 | [KBBI] Kata yang digunakan bersifat ambigu, dapat merupakan bentuk baku atau takbaku tergantung dari makna yang dimaksudkan
14 | 1.0.0.0
15 | false
16 |
17 |
18 | [Sipebi BTB]
19 | [Sipebi] Bentuk Takbaku
20 | [Sipebi] Kata yang digunakan merupakan bentuk takbaku
21 | 1.0.0.0
22 | false
23 |
24 |
25 | [Sipebi KA]
26 | [Sipebi] Kata Ambigu
27 | [Sipebi] Kata yang digunakan bersifat ambigu, dapat merupakan bentuk baku atau takbaku tergantung dari makna yang dimaksudkan
28 | 1.0.0.0
29 | false
30 |
31 |
32 | [Sipebi BT]
33 | [Sipebi] Bentuk Terikat
34 | [Sipebi] Kata yang digunakan merupakan bentuk terikat. Penulisannya harus disambungkan dengan kata sebelum atau sesudahnya
35 | 1.0.0.0
36 | false
37 |
38 |
39 | [Sipebi BT-M]
40 | [Sipebi] Mungkin Bentuk Terikat
41 | [Sipebi] Kata yang digunakan mungkin merupakan bentuk terikat. Jika benar, penulisannya seharusnya disambungkan dengan kata sebelum atau sesudahnya
42 | 1.0.0.0
43 | false
44 |
45 |
46 | [Sipebi KHS]
47 | [Sipebi] Kata Hubung Subordinatif
48 | [Sipebi] Kata yang digunakan mungkin merupakan kata hubung subordinatif yang harus ditulis tanpa didahului oleh tanda koma
49 | 1.0.0.0
50 | false
51 |
52 |
53 | [Sipebi KHIK]
54 | [Sipebi] Kata Hubung Intrakalimat
55 | [Sipebi] Kata hubung intrakalimat harus ditulis didahului oleh tanda koma
56 | 1.0.0.0
57 | false
58 |
59 |
60 | [Sipebi KHIK-M]
61 | [Sipebi] Mungkin Kata Hubung Intrakalimat
62 | [Sipebi] Kata yang digunakan mungkin merupakan kata hubung intrakalimat yang harus ditulis didahului oleh tanda koma
63 | 1.0.0.0
64 | false
65 |
66 |
67 | [Sipebi KHAK]
68 | [Sipebi] Kata Hubung Antarkalimat
69 | [Sipebi] Kata hubung antarkalimat harus ditulis diikuti oleh tanda koma
70 | 1.0.0.0
71 | false
72 |
73 |
74 | [Sipebi KAK]
75 | [Sipebi] Kapital pada Awal Kalimat
76 | [Sipebi] Huruf kapital dipakai sebagai huruf pertama awal kalimat
77 | 1.0.0.0
78 | false
79 |
80 |
81 | [Sipebi ke-{0}]
82 | [Sipebi] ke-{angka}
83 | [Sipebi] Tanda hubung (-) dipakai untuk merangkai ke- dengan angka
84 | 1.0.0.0
85 | false
86 |
87 |
88 | [Sipebi {0}-an]
89 | [Sipebi] {angka}-an
90 | [Sipebi] Tanda hubung (-) dipakai untuk merangkai angka dengan -an
91 | 1.0.0.0
92 | false
93 |
94 |
95 | [Sipebi {A}-{kg}]
96 | [Sipebi] Singkatan Kapital -ku/-mu/-nya
97 | [Sipebi] Tanda hubung (-) dipakai untuk merangkai singkatan berupa huruf kapital dengan kata ganti -ku, -mu, dan -nya
98 | 1.0.0.0
99 | false
100 |
101 |
102 | [Sipebi TPW]
103 | [Sipebi] Titik pada Penulisan Waktu
104 | [Sipebi] Tanda titik (.) dipakai untuk memisahkan angka jam, menit, dan detik yang menunjukkan waktu atau jangka waktu
105 | 1.0.0.0
106 | false
107 |
108 |
--------------------------------------------------------------------------------
/py/diag/PySipebiDiagAturanTandaBacaPadaDialog.py:
--------------------------------------------------------------------------------
1 | from .core.PySipebiDiagnosticsBase import PySipebiDiagnosticsBase
2 | from .core.PySipebiDiagnosticsError import PySipebiDiagnosticsError
3 | from .core.PySipebiStructs import PySipebiTextDivision, PySipebiParagraphDivision, PySipebiWordDivision, PySipebiPreWordPunctuation, PySipebiPostWordPunctuation
4 |
5 | class PySipebiDiagAturanTandaBacaPadaDialog(PySipebiDiagnosticsBase):
6 | hasSharedResources = True
7 | sharedResourcesOutputKeys = ['sipebi_text_division']
8 |
9 | ERROR_CODE_1 = '[TB07]'
10 | ERROR_CODE_2 = '[TB08]'
11 |
12 | def setup(self):
13 | self.isReady = True
14 |
15 | def create_shared_resources(self, text, input_resources):
16 | output_resources = {}
17 | sipebi_text_division = PySipebiTextDivision(text)
18 | output_resources['sipebi_text_division'] = sipebi_text_division
19 | return output_resources
20 |
21 | def execute_with_shared_resources(self, text, shared_resources):
22 | sipebi_text: PySipebiTextDivision = shared_resources['sipebi_text_division'] # konvensi penamaan: sipebi_text_division
23 | for i, paragraph_div in enumerate(sipebi_text.paragraph_divs):
24 | paragraph: PySipebiParagraphDivision = paragraph_div
25 | for j, word_div in enumerate(paragraph.word_divs):
26 | word: PySipebiWordDivision = word_div
27 |
28 | pre_word: PySipebiPreWordPunctuation = word.pre_word
29 | post_word: PySipebiPostWordPunctuation = word.post_word
30 |
31 | # jika tanda baca kutip dua (") terdapat di awal kata
32 | if pre_word.contains('"'):
33 | prev_word = word.prev_word_div
34 | # jika terdapat kata sebelumnya dan kata tersebut tidak memiliki tanda baca di akhir kata, misal : kamu "aku
35 | # maka tambahkan tanda baca koma (,) di akhir kata sebelumnya sebelum tanda baca kutip dua (") menjadi: kamu, "aku
36 | if prev_word and not prev_word.has_post_word:
37 | original_element = prev_word.clean_word_string
38 | corrected_element = prev_word.clean_word_string + ','
39 | self.add_diagnostics(word=prev_word, paragraph=paragraph, error_code=self.ERROR_CODE_1
40 | , original_element=original_element, corrected_element=corrected_element)
41 |
42 | # jika tanda baca kutip dua (") terdapat di akhir kata
43 | if post_word.contains('"'):
44 | # jika ada tanda baca lain setelah kutip dua (")
45 | if not post_word.ended_with('"'):
46 | original_element = word.clean_post_word
47 | # jika tanda baca kutip dua (") berada di tengah tengah tanda baca lain, misal : aku!",
48 | # maka hapus tanda baca setelah tanda baca kutip dua (") menjadi: aku!""
49 | if not post_word.start_with('"'):
50 | corrected_element = word.clean_word_string + post_word.string_repr[:post_word.string_repr.index('"') + 1]
51 | # jika tanda baca kutip dua (") berada di awal tanda baca lain, misal: aku".
52 | # maka pindahkan tanda baca setelah tanda baca kutip dua (") ke sebelum tanda baca petik dua (") menjadi: aku."
53 | else:
54 | corrected_element = word.clean_word_string + post_word.last_punctuation + post_word.first_punctuation
55 |
56 | self.add_diagnostics(word=word, paragraph=paragraph, error_code=self.ERROR_CODE_1
57 | , original_element=original_element, corrected_element=corrected_element)
58 | # jika tidak ada tanda baca lain setelah kutip dua (")
59 | else:
60 | # jika hanya ada tanda baca kutip dua ("), misal: aku"
61 | # maka tambahkan tanda baca koma (,) sebelum tanda kutip dua (") menjadi : aku,"
62 | if post_word.start_with('"'):
63 | original_element = word.clean_word_string
64 | corrected_element = word.clean_word_string + ','
65 | self.add_diagnostics(word=word, paragraph=paragraph, error_code=self.ERROR_CODE_1
66 | , original_element=original_element, corrected_element=corrected_element)
67 | # jika terdapat tanda baca koma (,) pada tengah - tengah tanda baca lain, misal: aku!,"
68 | # maka hapus tanda baca koma (,) menjadi: aku!"
69 | elif not post_word.start_with(',') and post_word.contains(','):
70 | original_element = word.clean_word_string + post_word.first_punctuation + ','
71 | corrected_element = word.clean_word_string + post_word.first_punctuation
72 | self.add_diagnostics(word=word, paragraph=paragraph, error_code=self.ERROR_CODE_2
73 | , original_element=original_element, corrected_element=corrected_element)
74 | self.isCompleted = True
75 |
76 | # add_diagnostics: fungsi untuk menambahkan kesalahan ke dalam daftar kesalahan
77 | # fungsi ini harus dipanggil setiap kali sebuah kesalahan ditemukan
78 | # word: kata awal yang yang mengandung kesalahan
79 | # paragraph: paragraf yang mengandung kesalahan
80 | # error_code: kode kesalahan
81 | # original_element: elemen yang salah
82 | # corrected_element: elemen yang benar
83 | def add_diagnostics(self, word: PySipebiWordDivision, paragraph: PySipebiParagraphDivision, error_code: str
84 | , original_element: str, corrected_element: str):
85 | hasilDiagnosis = PySipebiDiagnosticsError()
86 | hasilDiagnosis.ParagraphNo = paragraph.index
87 | hasilDiagnosis.ElementNo = word.element_no
88 | hasilDiagnosis.OriginalParagraphOffset = paragraph.offset
89 | hasilDiagnosis.PositionOffset = word.position_offset + word.pre_word.length
90 | hasilDiagnosis.CorrectedCharPosition = 0
91 | hasilDiagnosis.IsAmbiguous = False
92 | hasilDiagnosis.ErrorCode = error_code
93 | hasilDiagnosis.OriginalElement = original_element
94 | hasilDiagnosis.CorrectedElement = corrected_element
95 | self.diagList.append(hasilDiagnosis)
96 |
97 | return hasilDiagnosis
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/net6.0/IronPython.Wpf.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IronPython.Wpf
5 |
6 |
7 |
8 |
9 | Provides services for loading XAML and binding events to dynamic language code definitions.
10 |
11 |
12 |
13 |
14 | Loads XAML from the specified stream and returns the deserialized object. Any event handlers
15 | are bound to methods defined in the provided Scope and converted using the provided DynamicOperations
16 | object.
17 |
18 |
19 |
20 |
21 | Loads XAML from the specified filename and returns the deserialized object. Any event handlers
22 | are bound to methods defined in the provided Scope and converted using the provided DynamicOperations
23 | object.
24 |
25 |
26 |
27 |
28 | Loads XAML from the specified XmlReader and returns the deserialized object. Any event handlers
29 | are bound to methods defined in the provided Scope and converted using the provided DynamicOperations
30 | object.
31 |
32 |
33 |
34 |
35 | Loads XAML from the specified TextReader and returns the deserialized object. Any event handlers
36 | are bound to methods defined in the provided Scope and converted using the provided DynamicOperations
37 | object.
38 |
39 |
40 |
41 |
42 | Loads XAML from the specified XamlXmlReader and returns the deserialized object. Any event handlers
43 | are bound to methods defined in the provided Scope and converted using the provided DynamicOperations
44 | object.
45 |
46 |
47 |
48 |
49 | Returns the list of x:Name'd objects that we saw and should set on the root object.
50 |
51 |
52 |
53 |
54 | Dummy, should never be called
55 |
56 |
57 |
58 |
59 | Provides helpers for interacting with Windows Presentation Foundation applications.
60 |
61 |
62 |
63 |
64 | Loads XAML from the specified XmlReader and returns the deserialized object. Any event handlers
65 | are bound to methods defined in the provided module. Any named objects are assigned to the object.
66 |
67 | The provided object is expected to be the same type as the root of the XAML element.
68 |
69 |
70 |
71 |
72 | Loads XAML from the specified XmlReader and returns the deserialized object. Any event handlers
73 | are bound to methods defined in the provided module. Any named objects are assigned to the object.
74 |
75 | The provided object is expected to be the same type as the root of the XAML element.
76 |
77 |
78 |
79 |
80 | Loads XAML from the specified XmlReader and returns the deserialized object. Any event handlers
81 | are bound to methods defined in the provided module. Any named objects are assigned to the object.
82 |
83 | The provided object is expected to be the same type as the root of the XAML element.
84 |
85 |
86 |
87 |
88 | Loads XAML from the specified XmlReader and returns the deserialized object. Any event handlers
89 | are bound to methods defined in the provided module. Any named objects are assigned to the object.
90 |
91 | The provided object is expected to be the same type as the root of the XAML element.
92 |
93 |
94 |
95 |
96 | Loads XAML from the specified XmlReader and returns the deserialized object. Any event handlers
97 | are bound to methods defined in the provided module. Any named objects are assigned to the object.
98 |
99 | The provided object is expected to be the same type as the root of the XAML element.
100 |
101 |
102 |
103 |
104 |
--------------------------------------------------------------------------------
/packages/IronPython.3.4.1/lib/netcoreapp3.1/IronPython.Wpf.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IronPython.Wpf
5 |
6 |
7 |
8 |
9 | Provides services for loading XAML and binding events to dynamic language code definitions.
10 |
11 |
12 |
13 |
14 | Loads XAML from the specified stream and returns the deserialized object. Any event handlers
15 | are bound to methods defined in the provided Scope and converted using the provided DynamicOperations
16 | object.
17 |
18 |
19 |
20 |
21 | Loads XAML from the specified filename and returns the deserialized object. Any event handlers
22 | are bound to methods defined in the provided Scope and converted using the provided DynamicOperations
23 | object.
24 |
25 |
26 |
27 |
28 | Loads XAML from the specified XmlReader and returns the deserialized object. Any event handlers
29 | are bound to methods defined in the provided Scope and converted using the provided DynamicOperations
30 | object.
31 |
32 |
33 |
34 |
35 | Loads XAML from the specified TextReader and returns the deserialized object. Any event handlers
36 | are bound to methods defined in the provided Scope and converted using the provided DynamicOperations
37 | object.
38 |
39 |
40 |
41 |
42 | Loads XAML from the specified XamlXmlReader and returns the deserialized object. Any event handlers
43 | are bound to methods defined in the provided Scope and converted using the provided DynamicOperations
44 | object.
45 |
46 |
47 |
48 |
49 | Returns the list of x:Name'd objects that we saw and should set on the root object.
50 |
51 |
52 |
53 |
54 | Dummy, should never be called
55 |
56 |
57 |
58 |
59 | Provides helpers for interacting with Windows Presentation Foundation applications.
60 |
61 |
62 |
63 |
64 | Loads XAML from the specified XmlReader and returns the deserialized object. Any event handlers
65 | are bound to methods defined in the provided module. Any named objects are assigned to the object.
66 |
67 | The provided object is expected to be the same type as the root of the XAML element.
68 |
69 |
70 |
71 |
72 | Loads XAML from the specified XmlReader and returns the deserialized object. Any event handlers
73 | are bound to methods defined in the provided module. Any named objects are assigned to the object.
74 |
75 | The provided object is expected to be the same type as the root of the XAML element.
76 |
77 |
78 |
79 |
80 | Loads XAML from the specified XmlReader and returns the deserialized object. Any event handlers
81 | are bound to methods defined in the provided module. Any named objects are assigned to the object.
82 |
83 | The provided object is expected to be the same type as the root of the XAML element.
84 |
85 |
86 |
87 |
88 | Loads XAML from the specified XmlReader and returns the deserialized object. Any event handlers
89 | are bound to methods defined in the provided module. Any named objects are assigned to the object.
90 |
91 | The provided object is expected to be the same type as the root of the XAML element.
92 |
93 |
94 |
95 |
96 | Loads XAML from the specified XmlReader and returns the deserialized object. Any event handlers
97 | are bound to methods defined in the provided module. Any named objects are assigned to the object.
98 |
99 | The provided object is expected to be the same type as the root of the XAML element.
100 |
101 |
102 |
103 |
104 |
--------------------------------------------------------------------------------
/SipebiMini.Sample.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {F6EE0D11-71CB-4005-81C2-19153F4C595F}
8 | WinExe
9 | SipebiMini
10 | SipebiMini
11 | v4.6.2
12 | 512
13 | true
14 | true
15 |
16 |
17 |
18 | AnyCPU
19 | true
20 | full
21 | false
22 | bin\Debug\
23 | DEBUG;TRACE
24 | prompt
25 | 4
26 |
27 |
28 | AnyCPU
29 | pdbonly
30 | true
31 | bin\Release\
32 | TRACE
33 | prompt
34 | 4
35 |
36 |
37 |
38 | packages\IronPython.3.4.1\lib\net462\IronPython.dll
39 |
40 |
41 | packages\IronPython.3.4.1\lib\net462\IronPython.Modules.dll
42 |
43 |
44 | packages\IronPython.3.4.1\lib\net462\IronPython.SQLite.dll
45 |
46 |
47 | packages\IronPython.3.4.1\lib\net462\IronPython.Wpf.dll
48 |
49 |
50 | packages\DynamicLanguageRuntime.1.3.4\lib\net452\Microsoft.Dynamic.dll
51 |
52 |
53 | packages\DynamicLanguageRuntime.1.3.4\lib\net452\Microsoft.Scripting.dll
54 |
55 |
56 | packages\DynamicLanguageRuntime.1.3.4\lib\net452\Microsoft.Scripting.Metadata.dll
57 |
58 |
59 | False
60 | Dlls\SipebiMini.Core.dll
61 |
62 |
63 |
64 | packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll
65 |
66 |
67 |
68 |
69 | packages\System.Memory.4.5.5\lib\net461\System.Memory.dll
70 |
71 |
72 |
73 | packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll
74 |
75 |
76 | packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 | Form
92 |
93 |
94 | SipebiMiniForm.cs
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 | ResXFileCodeGenerator
103 | Resources.Designer.cs
104 | Designer
105 |
106 |
107 | True
108 | Resources.resx
109 | True
110 |
111 |
112 | SipebiMiniForm.cs
113 |
114 |
115 |
116 | SettingsSingleFileGenerator
117 | Settings.Designer.cs
118 |
119 |
120 | True
121 | Settings.settings
122 | True
123 |
124 |
125 |
126 |
127 |
128 |
129 |
--------------------------------------------------------------------------------