-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.go
19 lines (14 loc) · 2.26 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package main
import (
"fmt"
"github.com/LazarenkoA/1c-language-parser/ast"
)
func main() {
code := `Процедура УстановитьОтображениеЗаголовковГрупп(Форма, ИменаГрупп = "") Экспорт Если ВариантИнтерфейсаКлиентскогоПриложения= ВариантИнтерфейсаКлиентскогоПриложения.Версия8_2 Тогда ЖирныйШрифт = Новый Шрифт(,, Истина); Если НЕ ЗначениеЗаполнено(ИменаГрупп) Тогда Для Каждого Элемент Из Форма.Элементы Цикл Если Тип(Элемент) = Тип("ГруппаФормы") И Элемент.Вид = ВидГруппыФормы.ОбычнаяГруппа И Элемент.ОтображатьЗаголовок = Истина И (Элемент.Отображение = ОтображениеОбычнойГруппы.ОбычноеВыделение Или Элемент.Отображение = ОтображениеОбычнойГруппы.Нет) Тогда Элемент.ШрифтЗаголовка = ЖирныйШрифт; КонецЕсли; КонецЦикла; Иначе МассивЗаголовков = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИменаГрупп,,, Истина); Для Каждого ИмяЗаголовка Из МассивЗаголовков Цикл Элемент = Форма.Элементы[ИмяЗаголовка]; Если Элемент.Отображение = ОтображениеОбычнойГруппы.ОбычноеВыделение ИЛИ Элемент.Отображение = ОтображениеОбычнойГруппы.Нет Тогда Элемент.ШрифтЗаголовка = ЖирныйШрифт; КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли;КонецПроцедуры`
a := ast.NewAST(code)
if err := a.Parse(); err != nil {
fmt.Println(err)
return
}
fmt.Println(a.Print(ast.PrintConf{Margin: 4}))
}