parser (still doesn't work)

This commit is contained in:
2024-08-11 13:53:53 +02:00
parent c502131aa7
commit 154e9597ae
5 changed files with 96 additions and 25 deletions
+6 -3
View File
@@ -14,13 +14,16 @@ func (t Rule) String() string {
return fmt.Sprintf("TokenRule(%s)", t.Name)
}
var RULES = []Rule{}
func NewRule(name string, pattern regexp.Regexp) Rule {
return Rule{Name: name, Pattern: pattern}
var rule = Rule{Name: name, Pattern: pattern}
RULES = append(RULES, rule)
return rule
}
var (
NUMBER = NewRule("NUMBER", *regexp.MustCompile(`^\d+`))
IDENTIFIER = NewRule("IDENTIFIER", *regexp.MustCompile("^[A-Za-z_][A-Za-z_0-9]*"))
SEMICOLON = NewRule("SEMICOLON", *regexp.MustCompile("^;"))
)
var RULES = []Rule{IDENTIFIER, NUMBER}