로그를 파싱하는 작은 hylang 프로그램을 작성했습니다. 다음구문 분석시 왜 내 프로그램이 실패합니까?
File "", line 8, column 38
(setv rule (.next irule))))))) ^LexException: Ran into a RPAREN where it wasn't expected.
질문 (별도로 평가 오류를 준다)로 기능한다 :
(defmain [&rest args]
(setv inname (get args 1))
(setv outname (get args 2))
(with [ifile (open inname 'r')]
(with [ofile (open outname 'w')]
(setv tl (Tableline))
(setv irule (iter (.get-rule tl)))
(setv rule (.next irule))
(for [line ifile]
(setv match (re.match (get rule 0) line))
(when match
(for [(, group-num attr-data) (enumerate (get rule 1))]
(setattr tl (get attr-data 1) (apply (get attr-data 0)
[(.group match (inc group-num))])))
(if (. tl ready) (write ofile (str tl)))
(setv rule (.next irule)))))))
을 최대한 멀리로 내가 그것을 평가하려고 할 때, 나는 다음과 같은 오류가 발생합니다 그 자리에있는 모든 괄호로 균형 잡힌 표현이라고 말할 수 있습니다. 왜 렉서가 실패합니까?
내 프로그램의 전체 텍스트는 여기에 있습니다 : pastebin