package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)^([A-z]+)(?: *= *)(\d+|[A-z]+)$`)
var str = `Expression validator
^((?:[A-z]+)|((-|\+)?\d+))( +(\++|-+) +((?:-?\d+)|(?:[A-z]+)))*$
Assignment validator
^([A-z]+)(?: *= *)(\d+|[A-z]+)$
c= a
8
8 + 4
-2 + 4 - 5 + 6
9 +++ - 10 -- 8
9 --- + 10
9 --- -10
9 +++ -10 -- 8
3 --- 5
14 - 12
-3 2
name = 44
a = 5
capName = 6 + 4
capName = 6
n = 3
m=4
a = 5
b = a
v= 7
n =9
c= a
A variable can have a name consisting of more than one letter.
count = 10
To print the value of a variable you should just type its name.
N = 5
N
5
It should be possible to set a new value to an existing variable.
a = 1
a = 2
a = 3
a
3
If an identifier or value of a variable is invalid, the program must print a message like the one below.
a1 = 8
Invalid identifier
n = a2a
Invalid assignment
a = 7 = 8
Invalid assignment
`
for i, match := range re.FindAllString(str, -1) {
fmt.Println(match, "found at index", i)
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Golang, please visit: https://golang.org/pkg/regexp/