Browse Source

🚧 tests with antlr

master
n0m1s 6 years ago
parent
commit
406056a1d9
Signed by: nomis GPG Key ID: BC0454CAD76FE803
4 changed files with 30 additions and 11 deletions
  1. +1
    -1
      .gitignore
  2. +5
    -1
      JdrScript.g4
  3. +20
    -5
      main.go
  4. +4
    -4
      makefile

+ 1
- 1
.gitignore View File

@ -1,2 +1,2 @@
jdr-server jdr-server
antlr/*
jdrscript/*

+ 5
- 1
JdrScript.g4 View File

@ -5,4 +5,8 @@ NUMBER: [0-9]+;
WHITESPACE: [ \r\n\t]+ -> skip; WHITESPACE: [ \r\n\t]+ -> skip;
//Rules //Rules
start: NUMBER EOF;
start: expression EOF;
expression
: NUMBER #Number
;

+ 20
- 5
main.go View File

@ -7,8 +7,10 @@ import (
"net/http" "net/http"
"homnomnom.fr/jdr-server/jdr" "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")) 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() { func main() {
ParseArguments() ParseArguments()
LoadConfig() 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())
} }

+ 4
- 4
makefile View File

@ -3,11 +3,11 @@ ANTLR := $(shell which antlr4)
BINARY_NAME := jdr-server BINARY_NAME := jdr-server
ANTLRDIR := antlr
ANTLRPKG := jdrscript
ANTLRGRAM := JdrScript.g4 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 .PHONY: all run clean
@ -18,7 +18,7 @@ $(BINARY_NAME): $(ANTLRFILE) $(GOFILES)
$(GO) build -o $@ -v $(GO) build -o $@ -v
$(ANTLRFILE): $(ANTLRGRAM) $(ANTLRFILE): $(ANTLRGRAM)
$(ANTLR) -Dlanguage=Go -o $(ANTLRDIR) $<
$(ANTLR) -Dlanguage=Go -package $(ANTLRPKG) -o $(ANTLRPKG) $<
run: $(BINARY_NAME) run: $(BINARY_NAME)
./$(BINARY_NAME) ./$(BINARY_NAME)


Loading…
Cancel
Save