From 406056a1d9ae11c36b15aff69430052a0d297341 Mon Sep 17 00:00:00 2001 From: n0m1s Date: Tue, 29 Oct 2019 23:28:48 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A7=20tests=20with=20antlr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- JdrScript.g4 | 6 +++++- main.go | 25 ++++++++++++++++++++----- makefile | 8 ++++---- 4 files changed, 30 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index c9c6fad..cae79f6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ jdr-server -antlr/* +jdrscript/* diff --git a/JdrScript.g4 b/JdrScript.g4 index a52b84a..1e5b0d3 100644 --- a/JdrScript.g4 +++ b/JdrScript.g4 @@ -5,4 +5,8 @@ NUMBER: [0-9]+; WHITESPACE: [ \r\n\t]+ -> skip; //Rules -start: NUMBER EOF; +start: expression EOF; + +expression + : NUMBER #Number + ; diff --git a/main.go b/main.go index 0881be8..81e7195 100644 --- a/main.go +++ b/main.go @@ -7,8 +7,10 @@ import ( "net/http" "homnomnom.fr/jdr-server/jdr" + "homnomnom.fr/jdr-server/jdrscript" - "github.com/gorilla/mux" + //"github.com/gorilla/mux" + "github.com/antlr/antlr4/runtime/Go/antlr" ) var templates = template.Must(template.ParseGlob("templates/*.html")) @@ -35,12 +37,25 @@ func playerPageHandler(w http.ResponseWriter, r *http.Request) { } } +type jdrScriptListener struct { + *jdrscript.BaseJdrScriptListener +} + func main() { ParseArguments() LoadConfig() - r := mux.NewRouter() - r.HandleFunc("/", mainPageHandler) - r.HandleFunc("/player", playerPageHandler) - log.Fatal(http.ListenAndServe(":8080", r)) + /* + r := mux.NewRouter() + r.HandleFunc("/", mainPageHandler) + r.HandleFunc("/player", playerPageHandler) + log.Fatal(http.ListenAndServe(":8080", r)) + */ + + is := antlr.NewInputStream("1") + lexer := jdrscript.NewJdrScriptLexer(is) + stream := antlr.NewCommonTokenStream(lexer, antlr.TokenDefaultChannel) + + p := jdrscript.NewJdrScriptParser(stream) + antlr.ParseTreeWalkerDefault.Walk(&jdrScriptListener{}, p.Start()) } diff --git a/makefile b/makefile index 9ea9043..fcf2acf 100644 --- a/makefile +++ b/makefile @@ -3,11 +3,11 @@ ANTLR := $(shell which antlr4) BINARY_NAME := jdr-server -ANTLRDIR := antlr +ANTLRPKG := jdrscript ANTLRGRAM := JdrScript.g4 -ANTLRFILE := $(ANTLRDIR)/$(shell echo $(basename $(ANTLRGRAM)) | tr A-Z a-z)_parser.go +ANTLRFILE := $(ANTLRPKG)/$(shell echo $(basename $(ANTLRGRAM)) | tr A-Z a-z)_parser.go -GOFILES = $(shell find . -type f -name '*.go' -not -path '*/$(ANTLRDIR)/*') +GOFILES = $(shell find . -type f -name '*.go' -not -path '*/$(ANTLRPKG)/*') .PHONY: all run clean @@ -18,7 +18,7 @@ $(BINARY_NAME): $(ANTLRFILE) $(GOFILES) $(GO) build -o $@ -v $(ANTLRFILE): $(ANTLRGRAM) - $(ANTLR) -Dlanguage=Go -o $(ANTLRDIR) $< + $(ANTLR) -Dlanguage=Go -package $(ANTLRPKG) -o $(ANTLRPKG) $< run: $(BINARY_NAME) ./$(BINARY_NAME)