|
|
@@ -0,0 +1,32 @@
|
|
|
+// package proi -- интерпретатор prolet
|
|
|
+package proi
|
|
|
+
|
|
|
+import (
|
|
|
+ "fmt"
|
|
|
+ "os"
|
|
|
+
|
|
|
+ "prolet/lev2/lexer"
|
|
|
+)
|
|
|
+
|
|
|
+// Запустить — основная точка входа интерпретатора
|
|
|
+func Запустить() {
|
|
|
+ envMain := os.Getenv("MAIN_PROLET")
|
|
|
+ if envMain == "" {
|
|
|
+ fmt.Println("Задайте вашей программе запуск MAIN_PROLET")
|
|
|
+ fmt.Println("Файлы ищутся в ./plt/ast_src/")
|
|
|
+ os.Exit(1)
|
|
|
+ }
|
|
|
+
|
|
|
+ binData, err := os.ReadFile(envMain)
|
|
|
+ if err != nil {
|
|
|
+ panic(fmt.Errorf("не удалось прочитать %s, err=\n\t%v", envMain, err))
|
|
|
+ }
|
|
|
+
|
|
|
+ lstLex, err := lexer.Parse(binData)
|
|
|
+ if err != nil {
|
|
|
+ panic(fmt.Errorf("in work lexer, err=\n\t%v", err))
|
|
|
+ }
|
|
|
+ for i, lex := range lstLex {
|
|
|
+ fmt.Println("lex", i, lex)
|
|
|
+ }
|
|
|
+}
|