2012-02-15 1 views
-1
global{ 
    verb 
    test 
    rl0 
    rand (or) rand =0  [Two cases] 
} 

thread{ 
    frac_value = (0.2,(0.1,0.5)) 
    random_thread 

} 

выход должен быть таким:Файл конфигурации Синтаксический с помощью Lex и Yacc

Если я дать выше вклад в LEX и Yacc, основанного на проверке [Rand (или) рандов = 0]

  1. , если это "Rand", то он должен печатать как "глагол тест rl0 ранда frac_value: L = 0,1 frac_value: H = 0.5"
  2. если это "Rand = 0", то он должен печатать как "глагол test rl0 rand = 0 frac_value = 0.2 ".

Для этого кто-то может рассказать мне, как написать программу lex и yacc.

+0

Я действительно не понимаю, что вы ищете здесь. Я предполагаю, что вы показываете вход, который хотите разобрать? Не могли бы вы быть более конкретными в том, как выглядит вход и как должен выглядеть нужный вывод? – Dervall

+0

Входной сигнал: глобальный { глагол тест rl0 Rand (или) Rand = 0 [два случая] } нити { frac_value = (0,2, (0.1,0.5)) random_thread } ВЫХОД должно быть это: Если я даю приведенный выше ввод для lex и yacc, на основании проверки [rand (or) rand = 0] , если это «rand», тогда он должен печатать как «глагольный тест rl0 rand frac_value: L = 0,1 frac_value: H = 0,5 " , если это« rand = 0 », тогда он должен печатать как« глагольный тест rl0 rand = 0 frac_value = 0.2 ». – sunsoftmohan

ответ

1

Вы спрашиваете: «Для этого может кто-то пожалуйста, скажите мне, как написать ЛЕКС и YACC программы»

Это довольно обширная тема, слишком велик, чтобы быть покрыты в несколько абзацев на переполнение стека. Я предлагаю прочитать книгу о lex и yacc, например, такую ​​как: http://shop.oreilly.com/product/9781565920002.do