{"id":19564324,"url":"https://github.com/antlr/antlr4-lab","last_synced_at":"2025-04-27T00:32:54.814Z","repository":{"id":44355970,"uuid":"510457114","full_name":"antlr/antlr4-lab","owner":"antlr","description":"A client/server for trying out and learning about ANTLR","archived":false,"fork":false,"pushed_at":"2024-08-03T19:29:20.000Z","size":207,"stargazers_count":41,"open_issues_count":32,"forks_count":12,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-04T19:08:21.015Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/antlr.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":"2022-07-04T18:00:37.000Z","updated_at":"2025-02-27T17:57:45.000Z","dependencies_parsed_at":"2024-11-11T05:23:56.976Z","dependency_job_id":"0b915d03-3d08-41c0-9afc-530c20b15236","html_url":"https://github.com/antlr/antlr4-lab","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antlr%2Fantlr4-lab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antlr%2Fantlr4-lab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antlr%2Fantlr4-lab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antlr%2Fantlr4-lab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/antlr","download_url":"https://codeload.github.com/antlr/antlr4-lab/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251073297,"owners_count":21532005,"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":[],"created_at":"2024-11-11T05:21:27.771Z","updated_at":"2025-04-27T00:32:54.406Z","avatar_url":"https://github.com/antlr.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# antlr4-lab\nA client/server for trying out and learning about ANTLR\n\n## Building and launching server\n\nUbuntu with lab.antlr.org static IP\n\n```bash\ncd ~\nsudo apt-get update\nsudo apt install -y openjdk-11-jre\nsudo apt install -y maven\nsudo apt install -y git\nsudo apt install -y ghostscript # gets ps2pdf\nsudo apt install -y pdf2svg\ngit clone https://github.com/antlr/antlr4-lab.git\ncd antlr4-lab\nmvn install\n\nsudo mkdir /var/log/antlrlab\nsudo chmod 777 /var/log/antlrlab\nssh-keygen -t ed25519 -C 'parrt@...'  # add key to github\ngit config --global user.email \"parrt@...\"\ngit config --global user.name \"Terence Parr\"\n```\n\nLaunch!\n\n```bash\ncd ~/antlr4-lab\nsudo nohup java -cp ~/.m2/repository/org/antlr/antlr4-lab/0.4-SNAPSHOT/antlr4-lab-0.4-SNAPSHOT-complete.jar org.antlr.v4.server.ANTLRHttpServer\n```\n\nOr to restart if it fails, do:\n\n```bash\nwhile true\ndo\n  sudo java -cp ~/.m2/repository/org/antlr/antlr4-lab/0.4-SNAPSHOT/antlr4-lab-0.4-SNAPSHOT-complete.jar org.antlr.v4.server.ANTLRHttpServer\n  sudo cp /var/log/antlrlab/antlrlab.log /var/log/antlrlab/antlrlab-died.log\n  sleep 1\ndone\n```\n\nwhich I've put into `~/antlr4-lab/launch.sh`:\n\n```bash\nnohup launch.sh \u0026\n```\n\nIf you are running the server locally on your box, visit [http://localhost/index.html](http://localhost/index.html) to run the client.\n\n### Docker\n\nI created a [Dockerfile](Dockerfile), although I'm not sure how useful it will be to people. This might be useful for deploying in the cloud later.\n\nHere's how to build the docker file:\n\n```bash\ncd antlr4-lab\nmvn clean package  # has to be built first as docker copies in the jar\ndocker build --tag antlr4-lab-docker .\n```\n\nand here's how to use the docker to launch:\n\n```bash\ndocker run -p80:80 --rm antlr4-lab-docker\n```\n\n@kaby76 reports the following: Seems to work fine. But I had to do some things to get it to work on Windows/WSL2.\n\nIn Windows: Install Docker Desktop\n\nIn WSL2/Ubuntu:\n\n```bash\nsudo apt install docker.io\ngit clone https://github.com/antlr/antlr4-lab.git\ncd antlr4-lab\ngit checkout docker\nmvn clean; mvn install\ndocker build .\ndocker image ls # get image name.\ndocker run -d -p 127.0.0.1:80:80 -e BIND_ADDR=0.0.0.0:80 image-name-from-above\n```\n\nIn Windows again, run Firefox and connect to 127.0.0.1.\n\nIt looks like docker binds port 80 to 0.0.0.0 by default (after installing `net-tools`, and doing `netstat -a`).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantlr%2Fantlr4-lab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantlr%2Fantlr4-lab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantlr%2Fantlr4-lab/lists"}