{ "@context": "https://spdx.org/rdf/3.0.1/spdx-context.jsonld", "@graph": [ { "@id": "_:creationInfo_1", "type": "CreationInfo", "specVersion": "3.0.1", "createdBy": [ "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd2" ], "createdUsing": [ "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/additionalToolSPDXRef-gnrtd3" ], "created": "2026-07-04T06:27:27Z" }, { "@id": "_:creationInfo_0", "type": "CreationInfo", "specVersion": "3.0.1", "createdBy": [ "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd0" ], "createdUsing": [ "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/additionalToolSPDXRef-gnrtd1" ], "created": "2026-07-04T06:27:27Z" }, { "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd23016", "type": "Relationship", "relationshipType": "hasDeclaredLicense", "to": [ "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd15" ], "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd23013", "creationInfo": "_:creationInfo_0" }, { "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd23014", "type": "Relationship", "relationshipType": "hasConcludedLicense", "to": [ "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd15" ], "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd23013", "creationInfo": "_:creationInfo_0" }, { "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd15", "type": "simplelicensing_LicenseExpression", "simplelicensing_licenseExpression": "MIT", "creationInfo": "_:creationInfo_0" }, { "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd23015", "type": "Organization", "name": "http://openeuler.org", "creationInfo": "_:creationInfo_0" }, { "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd23013", "type": "software_Package", "software_copyrightText": "", "suppliedBy": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/SPDXRef-gnrtd23015", "software_downloadLocation": "NOASSERTION", "summary": "Development documents and examples for funcparserlib", "software_packageVersion": "0:1.0.1-1.oe2403sp4", "software_homePage": "https://github.com/vlasovskikh/funcparserlib", "description": "*Parser combinators* are just higher-order functions that take parsers as their\narguments and return them as result values. Parser combinators are:\n* First-class values\n* Extremely composable\n* Tend to make the code quite compact\n* Resemble the readable notation of xBNF grammars\nParsers made with ``funcparserlib`` are pure-Python LL(*) parsers. It means\nthat it's very easy to write them without thinking about look-aheads and all\nthat hardcore parsing stuff. But the recursive descent parsing is a rather slow\nmethod compared to LL(k) or LR(k) algorithms.\nSo the primary domain for ``funcparserlib`` is **parsing little languages** or\n**external DSLs** (domain specific languages).\nThe library itself is very small. Its source code is only 0.5 KLOC, with lots\nof comments included. It features the longest parsed prefix error reporting, as well\nas a tiny lexer generator for token position tracking.", "name": "python-funcparserlib-help", "software_sourceInfo": "acquired package info from repodata DB: repodata/f0b2606f1dc0294014b17bb8ea9231f0129611b4c9610b9db40f82da2b1f63da-primary.sqlite.bz2", "software_packageUrl": "pkg:rpm/python-funcparserlib-help@1.0.1-1.oe2403sp4?arch=noarch&epoch=0&upstream=python-funcparserlib-1.0.1-1.oe2403sp4.src.rpm", "creationInfo": "_:creationInfo_0" }, { "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/additionalToolSPDXRef-gnrtd1", "type": "Tool", "name": "syft-[not provided]", "creationInfo": "_:creationInfo_0" }, { "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/aarch64-a81892d8-2d31-4c01-871d-ea68d5d8a00c-specv3/additionalToolSPDXRef-gnrtd3", "type": "Tool", "name": "syft-[not provided]", "creationInfo": "_:creationInfo_1" } ] }