주석 제거

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

임의의, 문법적으로 올바른 파스칼(Pascal) 프로그램이 주어진다. 이 프로그램을 압축하라. (이 문제를 풀기 위해 파스칼 언어를 알 필요는 없다. 필요한 정보는 모두 아래에 주어진다.) 다음 규칙에 따라 프로그램을 압축한다.

  • 문자열 상수 안에 있는 공백을 제외하고, 연속된 공백은 모두 하나의 공백으로 바꾼다. 또한 각 줄의 맨 앞에 있는 공백과 맨 뒤에 있는 공백은 모두 제거한다. 파스칼에서 문자열은 작은따옴표(')로 둘러싸인다. 문자열 안에서 작은따옴표 두 개가 연속으로 나오면 이는 작은따옴표 한 개를 나타낸다. 예를 들면 다음과 같다.
    'This is a string'
    'isn''t this fun?'
    
    문자열은 줄 경계를 넘을 수 없다.
  • 모든 주석은 하나의 공백으로 바꾼다. (이 공백이 다른 공백과 맞닿게 되면, 위 규칙에 따라 두 공백은 하나로 압축된다.) 파스칼에서 주석은 (* ... *) 또는 { ... }로 둘러싸인다. 예를 들면 다음과 같다.
    (* This is a comment! *)
    { A comment with a '*)'. }
    (* A (* comment *)
    
    주석은 여러 줄에 걸칠 수 있다. 주석은 중첩될 수 없다.
  • 완전히 빈 줄, 즉 (원래부터든 주석을 제거한 뒤든) 공백만으로 이루어진 줄은 모두 제거한다.
  • 입력에는 탭 문자나 그 밖의 출력 불가능한 문자가 없다(줄 구분 문자는 예외).
  • 입력의 어떤 줄도 255자보다 길지 않다.

입력

문법적으로 올바른 파스칼 프로그램 하나가 표준 입력으로 주어진다. 입력에는 탭 문자나 그 밖의 출력 불가능한 문자가 없으며(줄 구분 문자는 예외), 어떤 줄도 255자보다 길지 않다.

출력

위 규칙을 적용하여 얻은, 압축된 파스칼 프로그램을 출력한다. 그 외에는 아무것도 출력하지 않는다.