{"id":20652535,"url":"https://github.com/bradleywood/raven-lang","last_synced_at":"2025-07-07T05:07:32.862Z","repository":{"id":107253492,"uuid":"102515994","full_name":"BradleyWood/Raven-Lang","owner":"BradleyWood","description":"An experimental language for the jvm","archived":false,"fork":false,"pushed_at":"2019-01-06T10:24:13.000Z","size":993,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-01T15:09:30.447Z","etag":null,"topics":["compiler","jvm","programming-language"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BradleyWood.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-05T18:27:34.000Z","updated_at":"2023-01-27T23:21:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"eeab6c1c-450e-409a-b539-3b4aaeee7685","html_url":"https://github.com/BradleyWood/Raven-Lang","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BradleyWood/Raven-Lang","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BradleyWood%2FRaven-Lang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BradleyWood%2FRaven-Lang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BradleyWood%2FRaven-Lang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BradleyWood%2FRaven-Lang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BradleyWood","download_url":"https://codeload.github.com/BradleyWood/Raven-Lang/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BradleyWood%2FRaven-Lang/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264016740,"owners_count":23544627,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["compiler","jvm","programming-language"],"created_at":"2024-11-16T17:35:29.798Z","updated_at":"2025-07-07T05:07:32.846Z","avatar_url":"https://github.com/BradleyWood.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Raven-Lang\n\n## What is this?\n\nThis is an experimental programming language built for the JVM platform. The main\ngoal of this project is to create a fast jvm language that lacks the verbosity\nof java while maintaining interoperability. Antlr is used to perform parsing\nand the ASM bytecode manipulation framework is used for bytecode generation.\nThe runtime environment performs all type checking and coercions as well\nas dynamic linking.\n\n\n### [Web Demo](http://bradleyjwood.me/raven)\n\nView multiple examples or try to create your own program using\nthe web demo. The web demo also comes with a REPL (read-eval-print-loop)\nutility.\n\n## Build\n\n```\ngit clone https://github.com/BradleyWood/Raven-Lang.git\n```\n\n```\nmvn install\n```\n\n## Project Layout\n\n- [raven-core](raven-core/src/main/java/org/raven/core) - the core runtime environment\n\n- [raven-compiler](raven-compiler/src/main/java/org/raven) - code compilation\n\n- [raven-maven-plugin](raven-maven-plugin/src/main/java/org/raven/maven) - maven compatibility - compilation and test compilation\n\n- [raven-stdlib](raven-stdlib/src/main/raven/raven) - raven stdlib\n\n- [raven-cli](raven-cli/src/main/java/org/raven) - cli\n\n- [raven-example](example) - example maven projects\n\n\n## Examples\n\n#### Interoperability\n\n```kotlin\nimport javax.swing.JOptionPane\n\nfun main() {\n    JOptionPane.showMessageDialog(null, \"Hello World.\")\n}\n```\n\n#### Defer\n\nFunction calls can be deferred in a last in first out order. Parameters\nare evaluated immediately and are stored until the deferred statement is executed.\n\n```kotlin\nfun main() {\n    for (i range 0 to 10) {\n    \tdefer println(i)\n    }\n    defer println(\"World!\")\n    defer print(\"Hello, \")\n}\n```\n\n#### When\n\n```kotlin\nfun func(name, param) = when(name) {\n    \"println\" -\u003e println(param)\n    \"sin\"     -\u003e Math.sin(param)\n    \"cos\"     -\u003e Math.cos(param)\n    \"PI\"      -\u003e Math.PI / param\n    else      -\u003e {}\n}\n\nfun main() {\n    println(\"Sin(PI) = \" + func(\"cos\", Math.PI))\n}\n```\n\n#### Go routines\n\n\n```go\ngo aFunction();\n```\n\n[View more examples](https://github.com/BradleyWood/TlDemo)\n\n\n## Tests\n\nMany Raven tests are written in Raven and are compiled using the\n[raven-maven-plugin](raven-maven-plugin/src/main/java/org/raven/maven).\nTo achieve Junit compatibility we add an annotation processor for the\n@Test annotation to ensure that test methods are compiled as non-static\nvoid methods.\n\n#### Example\n\n```kotlin\nimport org.junit.Assert\nimport org.junit.Test\n\n@Test\nfun testAddition() {\n    var a = 100\n    var b = 200\n    Assert.assertEquals(300, a + b)\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradleywood%2Fraven-lang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbradleywood%2Fraven-lang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradleywood%2Fraven-lang/lists"}