아래 세 가지 명령(statement)만으로 이루어진 아주 단순한 프로그래밍 언어가 있다.
if <boolean expression> then <statement list> fi
if <boolean expression> then <statement list> else <statement list> fi
checkpoint
모든 키워드는 소문자로 쓴다. <statement list>는 하나 이상의 명령을 나열한 것이고, 프로그램 전체가 하나의 <statement list>이다.
<boolean expression>은 다음 요소로 이루어진다.
~(NOT), 이항 &(AND), 이항 |(OR)~가 가장 높고, 그다음이 &, 마지막이 |이다.식의 문법은 다음과 같다.
<BE> -> ~<BE> | <BE>&<BE> | <BE>|<BE> | (<BE>) | [A-Z]
문법 오류가 없는 프로그램이 주어질 때, 각 checkpoint에 도달하려면 각 변수가 반드시 어떤 값을 가져야 하는지 구하는 프로그램을 작성하시오.
문법 오류가 없는 프로그램 하나가 입력으로 주어진다.
<statement list>는 최소 한 개의 statement를 포함한다.각 checkpoint가 프로그램에 나타나는 순서대로 한 줄씩 출력한다. 각 줄은 다음과 같다.
>를 출력한다.> 뒤에 unreachable을 출력한다.