Raku의 adverb — 정규식 어드버브 문법 오류를 담는 예외
Raku의 adverb — 정규식 어드버브 문법 오류를 담는 예외
정규식에서는 :i 같은 어드버브(adverb)를 붙여서 동작을 조절해요. 그런데 어떤 어드버브가 그 자리에 올 수 없는데 잘못 썼다면, Raku는 컴파일 타임에 X::Syntax::Regex::Adverb 예외를 던져요. adverb 메서드는 그때 '무슨 어드버브가 문제였는지'를 알려 주는 메서드예요.
시그니처
method adverb(--> Str:D)
잘못 사용된 어드버브를 문자열로 돌려줘요.
언제 생기는지
예를 들어 :g 어드버브는 매치 연산에 붙는 것이지 정규식 자체에 붙는 것이 아니에요. 그래서 이 코드는
rx:g/a/
컴파일 타임에 이렇게 죽어요.
===SORRY!===
Adverb g not allowed on rx
g가 문제의 어드버브라는 걸 adverb 메서드로 확인할 수 있어요. 같이 쓰이는 construct 메서드는 그 어드버브가 어떤 구성(m, ms, rx, s, ss)에 붙었는지를 돌려줘요.