Informatica Online Judge

  베이직 인터프리터-출력문 [0484 / 01E4]

Time Limit(Test case) : 1000(ms)
Number of users who solved : 9   Total Tried : 330


The Champion of this Problem (C++) : N/A
My Best Submission (C++) : N/A

[JKJeong]

Background

베이직은 초보자들이 프로그래밍을 배울 때 처음 접하는 경우가 많다.
여러분이 할 일은 간단한 베이직 인터프리터를 만드는 것이다.

이번 문제에서는 간단한 변수에 대한 배정문과 출력문에 대해서만 처리할 수 있는 기본 인터프리터를 제작하시오.





[BASIC] 기본 지원 문법 (이번 문제에 한해서)

[문법1] 변수명=값

ex) A = 10 (공백은 몇개 있어도 상관 없음 A=10 A = 10 도 같은 의미임, 모든 변수는 정수형이며, 오직 한 글자로만 구성된다.)

[문법2] 변수명 = 수식

ex) A = A + 1 (기본 사칙연산만 지원, 한 식에서는 연산자 +, -, *, / 중 하나만 사용)


[문법3] 출력문1

PRINT 문자열

ex) PRINT "HELLO" (" "속의 문장을 화면에 출력하고 줄바꿈을 한다. )
ex) PRINT "HELLO"; (단, ;으로 끝나는 경우에는 줄바꿈을 하지 않는다.)

[문법4] 출력문2

PRINT 수식

ex) PRINT 3+4 (화면에 7을 출력한다.)

항상 프로그램은 "END"로 끝난다. 그리고 베이직은 대소문자를 구별하지 않는다. 즉 Print, PRINT는 같은 의미이다. 그리고 end, End 등도 같은 키워드로 인식해야한다.

위 문법을 번역하여 결과를 출력할 수 있는 인터프리터 프로그램을 작성하시오.

Input

베이직 명령문이 한 줄에 하나씩 입력된다. (한 줄의 명령은 ASCII코드 200자를 넘지 않는다.)
그리고 마지막에는 END로 끝난다.

Output

한 줄을 번역하여 실행한 결과를 출력한다.
단 n번째 줄에서 에러가 발생했다면 n-1번째 줄까지 실행한 결과를 출력하고 마지막에
Syntan error!!을 출력한다.

IO Example

입력1
PRINT "Hello"

출력1
Hello

입력2
A=3
B=2
PRint A+B;
PRINT " 종료"
end

출력2
5 종료

입력3
A=2
PRINT A
B=3
PRINT A+C
END

출력3
2
Syntax error!!

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]