syntax.go 740 B

1234567891011121314151617181920212223242526
  1. // package syntax -- синтаксический потоковый анализатор
  2. //
  3. // Читает по одно литере и пытается определеить символ
  4. package syntax
  5. import (
  6. "fmt"
  7. "log"
  8. )
  9. // Syntax -- синтаксический потоковый анализатор
  10. type Syntax struct {
  11. textSrc []rune // Исходный набо рун для анализа
  12. }
  13. // NewSyntax -- возвращает новый потоовый синтаксический анализатор
  14. func NewSyntax(textSrc []rune) (*Syntax, error) {
  15. log.Printf("NewSyntax()\n")
  16. if textSrc == nil {
  17. return nil, fmt.Errorf("NewSyntax(): text==nil")
  18. }
  19. sf := &Syntax{
  20. textSrc: textSrc,
  21. }
  22. return sf, nil
  23. }