Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scriba tries to parse content of the code block and sometimes fails #6

Open
svetlyak40wt opened this issue Dec 3, 2020 · 0 comments
Assignees

Comments

@svetlyak40wt
Copy link
Contributor

For example, it can fail if the code snippet contains a document in Scriba syntax with unknown tags.

Here is a minimal code to reproduce this problem:

CL-USER> (scriba::string-to-common-doc "
@begin[lang=lisp](code)

This is an example of Scriba markup:

@twitter(Bob)

@end(code)
")

The result is the error:

No node with name twitter
   [Condition of type SIMPLE-ERROR]

Restarts:
 0: [RETRY] Retry SLY mREPL evaluation request.
 1: [*ABORT] Return to SLY's top level.
 2: [ABORT] abort thread (#<THREAD "sly-channel-1-mrepl-remote-1" RUNNING {10036BD7C3}>)

Backtrace:
 0: ((:METHOD COMMON-DOC-PLUMP.PARSER:PARSE (PLUMP-DOM:ELEMENT)) #<PLUMP-DOM:ELEMENT twitter {10070BAE73}>) [fast-method]
      Locals:
        COMMON-DOC-PLUMP.PARSER::NODE = #<PLUMP-DOM:ELEMENT twitter {10070BAE73}>
 1: ((:METHOD COMMON-DOC-PLUMP.PARSER:PARSE (VECTOR)) #(#<PLUMP-DOM:TEXT-NODE {10070BABC3}> #<PLUMP-DOM:ELEMENT twitter {10070BAE73}> #<PLUMP-DOM:TEXT-NODE {10070BAF63}>)) [fast-method]
      Locals:
        COMMON-DOC-PLUMP.PARSER::VEC = #(#<PLUMP-DOM:TEXT-NODE {10070BABC3}> #<PLUMP-DOM:ELEMENT twitter {10070BAE73}> #<PLUMP-DOM:TEXT-NODE {10070BAF63}>)
 2: ((:METHOD COMMON-DOC-PLUMP.PARSER:PARSE (PLUMP-DOM:ELEMENT)) #<PLUMP-DOM:ELEMENT code {10070BAAA3}>) [fast-method]
      Locals:
        COMMON-DOC-PLUMP.PARSER::ATTRIBUTES = #<HASH-TABLE :TEST EQUALP :COUNT 1 {10070BA9E3}>
        COMMON-DOC-PLUMP.PARSER::NODE = #<PLUMP-DOM:ELEMENT code {10070BAAA3}>
 3: ((:METHOD COMMON-DOC-PLUMP.PARSER:PARSE (LIST)) (#<PLUMP-DOM:TEXT-NODE {10070BA7F3}> #<PLUMP-DOM:ELEMENT code {10070BAAA3}> #<PLUMP-DOM:TEXT-NODE {10070BAFE3}>)) [fast-method]
      Locals:
        LIST = (#<PLUMP-DOM:TEXT-NODE {10070BA7F3}> #<PLUMP-DOM:ELEMENT code {10070BAAA3}> #<PLUMP-DOM:TEXT-NODE {10070BAFE3}>)
 4: ((:METHOD COMMON-DOC-PLUMP.PARSER:PARSE (PLUMP-DOM:ROOT)) #<PLUMP-DOM:ROOT {10070BB043}>) [fast-method]
      Locals:
        COMMON-DOC-PLUMP.PARSER::ROOT = #<PLUMP-DOM:ROOT {10070BB043}>
 5: (COMMON-DOC-PLUMP.PARSER:PARSE-DOCUMENT #<PLUMP-DOM:ROOT {10070BB043}>)
 6: (SCRIBA::STRING-TO-COMMON-DOC " ..)
 7: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SCRIBA::STRING-TO-COMMON-DOC " ..)
 8: (EVAL (SCRIBA::STRING-TO-COMMON-DOC " ..)

if we call the scriba.parser:parse-string, it will return @twitter(Bob as parsed entity, not ass part of the code block:

CL-USER> (scriba.parser:parse-string "
@begin[lang=lisp](code)

This is an example of Scriba markup:

@twitter(Bob)

@end(code)
")
(:DOCUMENT "
"
 (:NAME "begin" :ATTRS (("lang" . "lisp")) :BODY ("code")) "

This is an example of scriba markup:

"
 (:NAME "twitter" :ATTRS NIL :BODY ("Bob")) "

"
 (:NAME "end" :ATTRS NIL :BODY ("code")) "
")
NIL
T
@eudoxia0 eudoxia0 self-assigned this Dec 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants