-
Notifications
You must be signed in to change notification settings - Fork 0
/
gosyn.go
39 lines (35 loc) · 1.16 KB
/
gosyn.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package main
import (
"fmt"
"gosyn/controller"
//"gosyn/models"
"gosyn/lexer"
"gosyn/output"
//"gosyn/output/htmlreport"
"gosyn/utils"
)
func main() {
output.InitWriter()
fmt.Println("start")
lexemeTypes, syntaxRules := utils.ParseXML(utils.Loadfile(utils.TermsFilePath, utils.TermsFileName)) // utils.ParseJSONLexemes("lexemes.json")
sourceFile := "code1.txt"
fileText := utils.LoadfileDefault(sourceFile)
lexer.SetTokens(lexemeTypes)
text := lexer.HandleSource(fileText)
seq := lexer.ScanCycle(text)
output.PrintString(0, []lexer.Lexeme(*seq))
/*tree :=*/ controller.SyntaxCycle(seq, syntaxRules)
output.CloseWriter()
//fmt.Println(tree.ChildList[0].Type)
//htmlreport.MakeReport(tree)
classStep := controller.ClassStep(controller.NewStep("SIGN"))
step := controller.Step(&classStep)
facade := controller.NewFacade(&step, nil, nil)
fmt.Println("Test ", lexer.GetClassByName(facade.StepValue()))
ruleStep := controller.RuleStep(controller.NewStep("program"))
step = controller.Step(&ruleStep)
facade = controller.NewFacade(&step, nil, nil)
fmt.Println(facade.StepType(), facade.StepValue())
b, ch := facade.HasChilds()
fmt.Println("Test ", b, *ch)
}