tier_test.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package tier
  2. import (
  3. "bufio"
  4. "bytes"
  5. "testing"
  6. )
  7. func defTestOpts() Opts {
  8. defaultOpts := Opts{}
  9. defaultOpts.IdentMap = make(map[string]SymCode)
  10. defaultOpts.IdentMap["BEGIN"] = 100
  11. defaultOpts.SpaceMap = make(map[string]SymCode)
  12. defaultOpts.SpaceMap[" "] = 101
  13. defaultOpts.SpaceMap["\n"] = 102
  14. defaultOpts.NumContains = func() string { return "ABCDEF" }
  15. defaultOpts.NumModifiers = func() string { return "UH" }
  16. defaultOpts.CombinedMap = make(map[string]SymCode)
  17. defaultOpts.CombinedMap[":"] = 200
  18. defaultOpts.CombinedMap[":="] = 201
  19. defaultOpts.CombinedMap[":=="] = 203
  20. defaultOpts.CombinedMap[">"] = 204
  21. defaultOpts.CombinedMap["<"] = 205
  22. defaultOpts.CombinedMap["-"] = 206
  23. defaultOpts.CombinedMap[";"] = 207
  24. defaultOpts.CommentTriplet = [3]rune{'(', '*', ')'}
  25. return defaultOpts
  26. }
  27. func TestScanner(t *testing.T) {
  28. const testString = `
  29. BEGIN
  30. f asdf asdf xx x23 (* dfa3asd *) 33FH 3FU 234U 3.3 : := :== > < 0.12314 003141 -efef23 asdfd asf "dfsdfa sdf asdf " 'df' df'd' ;; ;
  31. `
  32. sc := NewScanner(bufio.NewReader(bytes.NewBufferString(testString)), defTestOpts())
  33. for sc.Error() == nil {
  34. t.Log(sc.Get())
  35. }
  36. }
  37. func TestRunner(t *testing.T) {
  38. const testString = `
  39. BEGIN
  40. f asdf asdf xx x23 (* dfa3asd *) 33FH 3FU 234U 3.3 : := :== > < 0.12314 003141 -efef23 asdfd asf "dfsdfa sdf asdf " 'df' df'd' ;; ;
  41. `
  42. sc := NewScanner(bufio.NewReader(bytes.NewBufferString(testString)), defTestOpts())
  43. run := NewRunner(sc, NewMarker(sc, func(msg ...interface{}) {
  44. t.Log(msg...)
  45. }))
  46. Debug(run)
  47. run.Expect(100, "begin expected", 102)
  48. run.Run(207)
  49. }
  50. func TestMapper(t *testing.T) {
  51. const testString = `
  52. BEGIN
  53. f asdf asdf xx x23 (* dfa3asd *) 33FH 3FU 234U 3.3 : := :== > < 0.12314 003141 -efef23 asdfd asf "dfsdfa sdf asdf " 'df' df'd' ;; ;
  54. `
  55. sc := NewScanner(bufio.NewReader(bytes.NewBufferString(testString)), defTestOpts())
  56. mp := NewMapper(sc)
  57. run := NewRunner(mp, NewMarker(sc, func(msg ...interface{}) {
  58. t.Log(msg...)
  59. }))
  60. Debug(run)
  61. run.Expect(100, "begin expected", 102)
  62. run.Run(207)
  63. t.Log(mp.Map())
  64. }