Просмотр исходного кода

SVI Добавление типизации

SVI 2 лет назад
Родитель
Сommit
f65692a914
2 измененных файлов с 13 добавлено и 1 удалено
  1. 4 0
      internal/module/coord/coord.go
  2. 9 1
      internal/module/litera/litera.go

+ 4 - 0
internal/module/coord/coord.go

@@ -7,6 +7,7 @@ import (
 	мКстр "p78git.ddns.net/svi/odeft/internal/module/coord/coord_line"
 	мКпоз "p78git.ddns.net/svi/odeft/internal/module/coord/coord_pos"
 	мАлиас "p78git.ddns.net/svi/odeft/pkg/alias"
+	мТип "p78git.ddns.net/svi/odeft/pkg/types"
 )
 
 // Коорд -- координата литеры в исходном тексте
@@ -26,5 +27,8 @@ func НовКоорд(поз мАлиас.КоордПоз, стр мАлиас.
 		поз:    _поз,
 		строка: _стр,
 	}
+	_ = мТип.ИКоорд(сам)
 	return сам, nil
 }
+
+// КоордСтр -- во

+ 9 - 1
internal/module/litera/litera.go

@@ -5,23 +5,31 @@ import (
 	мФорм "fmt"
 	мЮникод "unicode"
 
+	мКоорд "p78git.ddns.net/svi/odeft/internal/module/coord"
 	мАлиас "p78git.ddns.net/svi/odeft/pkg/alias"
 	мКонст "p78git.ddns.net/svi/odeft/pkg/cons"
+	мТип "p78git.ddns.net/svi/odeft/pkg/types"
 )
 
 // Литера -- руна исходника
 type Литера struct {
 	знач мАлиас.Литера    // Хранимая руна
 	тип  мАлиас.ЛитераТип // Тип руны
+	коорд мТип.ИКоорд // Координата литеры
 }
 
 // НовЛитера -- возвращает новую литеру
-func НовЛитера(литера мАлиас.Литера) (*Литера, error) {
+func НовЛитера(литера мАлиас.Литера, поз мАлиас.КоордПоз, стр мАлиас.КоордСтрока) (*Литера, error) {
 	if литера == "" {
 		return nil, мФорм.Errorf("НовЛитера(): литера пустая")
 	}
+	коорд, ош:=мКоорд.НовКоорд(поз, стр)
+	if ош!=nil{
+		return nil, мФорм.Errorf("НовЛитера(): при создании ИКоорд, ош=\n\t%w", ош)
+	}
 	сам := &Литера{
 		знач: литера,
+		коорд: коорд,
 	}
 	if ош := сам.типУст(); ош != nil {
 		return nil, мФорм.Errorf("НовЛитера(): при проверке типа, ош=\n\t%w", ош)