From a62bd009286dd22379e29fa9bd12c7c0e8aeccfe Mon Sep 17 00:00:00 2001 From: n0m1s Date: Tue, 29 Oct 2019 22:58:04 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20antlr=20grammar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + JdrScript.g4 | 8 ++++++++ makefile | 15 +++++++++++---- 3 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 JdrScript.g4 diff --git a/.gitignore b/.gitignore index 7e6628f..c9c6fad 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ jdr-server +antlr/* diff --git a/JdrScript.g4 b/JdrScript.g4 new file mode 100644 index 0000000..a52b84a --- /dev/null +++ b/JdrScript.g4 @@ -0,0 +1,8 @@ +grammar JdrScript; + +//Tokens +NUMBER: [0-9]+; +WHITESPACE: [ \r\n\t]+ -> skip; + +//Rules +start: NUMBER EOF; diff --git a/makefile b/makefile index d75f914..9ea9043 100644 --- a/makefile +++ b/makefile @@ -1,18 +1,25 @@ -GO := $(shell which go) +GO := $(shell which go) +ANTLR := $(shell which antlr4) BINARY_NAME := jdr-server -FILES = $(shell find . -type f -name '*.go') +ANTLRDIR := antlr +ANTLRGRAM := JdrScript.g4 +ANTLRFILE := $(ANTLRDIR)/$(shell echo $(basename $(ANTLRGRAM)) | tr A-Z a-z)_parser.go + +GOFILES = $(shell find . -type f -name '*.go' -not -path '*/$(ANTLRDIR)/*') .PHONY: all run clean all: $(BINARY_NAME) -$(BINARY_NAME): $(FILES) - $(GO) fmt $(addprefix ./, $(shell dirname $^ | sort | uniq)) +$(BINARY_NAME): $(ANTLRFILE) $(GOFILES) $(GO) get $(GO) build -o $@ -v +$(ANTLRFILE): $(ANTLRGRAM) + $(ANTLR) -Dlanguage=Go -o $(ANTLRDIR) $< + run: $(BINARY_NAME) ./$(BINARY_NAME)