fork download
  1. /* package whatever; // don't place package name! */
  2. %%
  3. %% This is file `elsarticle-num.bst' (Version 2.1),
  4. %%
  5. %% Copyright 2007-2020 Elsevier Ltd
  6. %%
  7. %% This file is part of the 'Elsarticle Bundle'.
  8. %% ---------------------------------------------
  9. %%
  10. %% It may be distributed under the conditions of the LaTeX Project Public
  11. %% License, either version 1.2 of this license or (at your option) any
  12. %% later version. The latest version of this license is in
  13. %% http://w...content-available-to-author-only...t.org/lppl.txt
  14. %% and version 1.2 or later is part of all distributions of LaTeX
  15. %% version 1999/12/01 or later.
  16. %%
  17. %%
  18. %% $Id: elsarticle-num.bst 194 2020-11-23 11:29:27Z rishi $
  19. %%
  20. %% $URL: https://l...content-available-to-author-only...y.com/svn/elsarticle/trunk/elsarticle-num.bst $
  21. %%
  22. %% ----------------------------------------
  23.  
  24. ENTRY
  25. { address
  26. author
  27. booktitle
  28. chapter
  29. edition
  30. editor
  31. howpublished
  32. institution
  33. journal
  34. key
  35. month
  36. note
  37. number
  38. organization
  39. pages
  40. publisher
  41. school
  42. series
  43. title
  44. type
  45. volume
  46. year
  47. eprint % urlbst
  48. doi % urlbst
  49. url % urlbst
  50. lastchecked % urlbst
  51. }
  52. {}
  53. { label }
  54.  
  55. INTEGERS { output.state before.all mid.sentence after.sentence after.block }
  56.  
  57. STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl openinlinelink closeinlinelink } % urlbst...
  58. INTEGERS { hrefform inlinelinks makeinlinelink addeprints adddoiresolver }
  59. FUNCTION {init.urlbst.variables}
  60. {
  61. "Available from: " 'urlintro := % prefix before URL
  62. "http://a...content-available-to-author-only...v.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
  63. "arXiv:" 'eprintprefix := % text prefix printed before eprint ref
  64. "https://d...content-available-to-author-only...i.org/" 'doiurl := % prefix to make URL from DOI
  65. "doi:" 'doiprefix := % text prefix printed before DOI ref
  66. #1 'addeprints := % 0=no eprints; 1=include eprints
  67. #1 'adddoiresolver := % 0=no DOI resolver; 1=include it
  68. #2 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs
  69. #1 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
  70. % the following are internal state variables, not config constants
  71. #0 'makeinlinelink := % state variable managed by setup.inlinelink
  72. "" 'openinlinelink := % ditto
  73. "" 'closeinlinelink := % ditto
  74. }
  75. INTEGERS {
  76. bracket.state
  77. outside.brackets
  78. open.brackets
  79. within.brackets
  80. close.brackets
  81. }
  82. FUNCTION {init.state.consts}
  83. { #0 'outside.brackets := % urlbst
  84. #1 'open.brackets :=
  85. #2 'within.brackets :=
  86. #3 'close.brackets :=
  87.  
  88. #0 'before.all :=
  89. #1 'mid.sentence :=
  90. #2 'after.sentence :=
  91. #3 'after.block :=
  92. }
  93.  
  94. STRINGS { s t }
  95.  
  96. FUNCTION {output.nonnull.original}
  97. { 's :=
  98. output.state mid.sentence =
  99. { ", " * write$ }
  100. { output.state after.block =
  101. { add.period$ write$
  102. newline$
  103. "\newblock " write$
  104. }
  105. { output.state before.all =
  106. 'write$
  107. { add.period$ " " * write$ }
  108. if$
  109. }
  110. if$
  111. mid.sentence 'output.state :=
  112. }
  113. if$
  114. s
  115. }
  116.  
  117. FUNCTION {setup.inlinelink}
  118. { makeinlinelink
  119. { hrefform #1 = % hypertex
  120. { "\special {html:<a href=" quote$ * url * quote$ * "> }{" * 'openinlinelink :=
  121. "\special {html:</a>}" 'closeinlinelink :=
  122. }
  123. { hrefform #2 = % hyperref
  124. { "\href{" url * "}{" * 'openinlinelink :=
  125. "}" 'closeinlinelink :=
  126. }
  127. 'skip$
  128. if$ % hrefform #2 =
  129. }
  130. if$ % hrefform #1 =
  131. #0 'makeinlinelink :=
  132. }
  133. 'skip$
  134. if$ % makeinlinelink
  135. }
  136. FUNCTION {add.inlinelink}
  137. { openinlinelink empty$
  138. 'skip$
  139. { openinlinelink swap$ * closeinlinelink *
  140. "" 'openinlinelink :=
  141. }
  142. if$
  143. }
  144. FUNCTION {output.nonnull}
  145. { % Save the thing we've been asked to output
  146. 's :=
  147. % If the bracket-state is close.brackets, then add a close-bracket to
  148. % what is currently at the top of the stack, and set bracket.state
  149. % to outside.brackets
  150. bracket.state close.brackets =
  151. { "]" *
  152. outside.brackets 'bracket.state :=
  153. }
  154. 'skip$
  155. if$
  156. bracket.state outside.brackets =
  157. { % We're outside all brackets -- this is the normal situation.
  158. % Write out what's currently at the top of the stack, using the
  159. % original output.nonnull function.
  160. s
  161. add.inlinelink
  162. output.nonnull.original % invoke the original output.nonnull
  163. }
  164. { % Still in brackets. Add open-bracket or (continuation) comma, add the
  165. % new text (in s) to the top of the stack, and move to the close-brackets
  166. % state, ready for next time (unless inbrackets resets it). If we come
  167. % into this branch, then output.state is carefully undisturbed.
  168. bracket.state open.brackets =
  169. { " [" * }
  170. { ", " * } % bracket.state will be within.brackets
  171. if$
  172. s *
  173. close.brackets 'bracket.state :=
  174. }
  175. if$
  176. }
  177.  
  178. FUNCTION {inbrackets}
  179. { bracket.state close.brackets =
  180. { within.brackets 'bracket.state := } % reset the state: not open nor closed
  181. { open.brackets 'bracket.state := }
  182. if$
  183. }
  184.  
  185. FUNCTION {format.lastchecked}
  186. { lastchecked empty$
  187. { "" }
  188. { inbrackets "cited " lastchecked * }
  189. if$
  190. }
  191.  
  192. FUNCTION {output}
  193. { duplicate$ empty$
  194. 'pop$
  195. 'output.nonnull
  196. if$
  197. }
  198.  
  199. FUNCTION {output.check}
  200. { 't :=
  201. duplicate$ empty$
  202. { pop$ "empty " t * " in " * cite$ * warning$ }
  203. 'output.nonnull
  204. if$
  205. }
  206.  
  207. FUNCTION {fin.entry.original}
  208. { add.period$
  209. write$
  210. newline$
  211. }
  212.  
  213. FUNCTION {new.block}
  214. { output.state before.all =
  215. 'skip$
  216. { after.block 'output.state := }
  217. if$
  218. }
  219.  
  220. FUNCTION {new.sentence}
  221. { output.state after.block =
  222. 'skip$
  223. { output.state before.all =
  224. 'skip$
  225. { after.sentence 'output.state := }
  226. if$
  227. }
  228. if$
  229. }
  230.  
  231. FUNCTION {add.blank}
  232. { " " * before.all 'output.state :=
  233. }
  234.  
  235. FUNCTION {date.block}
  236. {
  237. add.blank
  238. }
  239.  
  240. FUNCTION {not}
  241. { { #0 }
  242. { #1 }
  243. if$
  244. }
  245.  
  246. FUNCTION {and}
  247. { 'skip$
  248. { pop$ #0 }
  249. if$
  250. }
  251.  
  252. FUNCTION {or}
  253. { { pop$ #1 }
  254. 'skip$
  255. if$
  256. }
  257.  
  258. FUNCTION {new.block.checka}
  259. { empty$
  260. 'skip$
  261. 'new.block
  262. if$
  263. }
  264.  
  265. FUNCTION {new.block.checkb}
  266. { empty$
  267. swap$ empty$
  268. and
  269. 'skip$
  270. 'new.block
  271. if$
  272. }
  273.  
  274. FUNCTION {new.sentence.checka}
  275. { empty$
  276. 'skip$
  277. 'new.sentence
  278. if$
  279. }
  280.  
  281. FUNCTION {new.sentence.checkb}
  282. { empty$
  283. swap$ empty$
  284. and
  285. 'skip$
  286. 'new.sentence
  287. if$
  288. }
  289.  
  290. FUNCTION {field.or.null}
  291. { duplicate$ empty$
  292. { pop$ "" }
  293. 'skip$
  294. if$
  295. }
  296.  
  297. FUNCTION {emphasize}
  298. { skip$ }
  299.  
  300. FUNCTION {capitalize}
  301. { "u" change.case$ "t" change.case$ }
  302.  
  303. FUNCTION {space.word}
  304. { " " swap$ * " " * }
  305.  
  306. % Here are the language-specific definitions for explicit words.
  307. % Each function has a name bbl.xxx where xxx is the English word.
  308. % The language selected here is ENGLISH
  309. FUNCTION {bbl.and}
  310. { "and"}
  311.  
  312. FUNCTION {bbl.etal}
  313. { "et~al." }
  314.  
  315. FUNCTION {bbl.editors}
  316. { "Eds." }
  317.  
  318. FUNCTION {bbl.editor}
  319. { "Ed." }
  320.  
  321. FUNCTION {bbl.edby}
  322. { "edited by" }
  323.  
  324. FUNCTION {bbl.edition}
  325. { "Edition" }
  326.  
  327. FUNCTION {bbl.volume}
  328. { "Vol." }
  329.  
  330. FUNCTION {bbl.of}
  331. { "of" }
  332.  
  333. FUNCTION {bbl.number}
  334. { "no." }
  335.  
  336. FUNCTION {bbl.nr}
  337. { "no." }
  338.  
  339. FUNCTION {bbl.in}
  340. { "in" }
  341.  
  342. FUNCTION {bbl.pages}
  343. { "pp." }
  344.  
  345. FUNCTION {bbl.page}
  346. { "p." }
  347.  
  348. FUNCTION {bbl.chapter}
  349. { "Ch." }
  350.  
  351. FUNCTION {bbl.techrep}
  352. { "Tech. Rep." }
  353.  
  354. FUNCTION {bbl.mthesis}
  355. { "Master's thesis" }
  356.  
  357. FUNCTION {bbl.phdthesis}
  358. { "Ph.D. thesis" }
  359.  
  360. FUNCTION {bbl.first}
  361. { "1st" }
  362.  
  363. FUNCTION {bbl.second}
  364. { "2nd" }
  365.  
  366. FUNCTION {bbl.third}
  367. { "3rd" }
  368.  
  369. FUNCTION {bbl.fourth}
  370. { "4th" }
  371.  
  372. FUNCTION {bbl.fifth}
  373. { "5th" }
  374.  
  375. FUNCTION {bbl.st}
  376. { "st" }
  377.  
  378. FUNCTION {bbl.nd}
  379. { "nd" }
  380.  
  381. FUNCTION {bbl.rd}
  382. { "rd" }
  383.  
  384. FUNCTION {bbl.th}
  385. { "th" }
  386.  
  387. MACRO {jan} {"Jan."}
  388.  
  389. MACRO {feb} {"Feb."}
  390.  
  391. MACRO {mar} {"Mar."}
  392.  
  393. MACRO {apr} {"Apr."}
  394.  
  395. MACRO {may} {"May"}
  396.  
  397. MACRO {jun} {"Jun."}
  398.  
  399. MACRO {jul} {"Jul."}
  400.  
  401. MACRO {aug} {"Aug."}
  402.  
  403. MACRO {sep} {"Sep."}
  404.  
  405. MACRO {oct} {"Oct."}
  406.  
  407. MACRO {nov} {"Nov."}
  408.  
  409. MACRO {dec} {"Dec."}
  410.  
  411. FUNCTION {eng.ord}
  412. { duplicate$ "1" swap$ *
  413. #-2 #1 substring$ "1" =
  414. { bbl.th * }
  415. { duplicate$ #-1 #1 substring$
  416. duplicate$ "1" =
  417. { pop$ bbl.st * }
  418. { duplicate$ "2" =
  419. { pop$ bbl.nd * }
  420. { "3" =
  421. { bbl.rd * }
  422. { bbl.th * }
  423. if$
  424. }
  425. if$
  426. }
  427. if$
  428. }
  429. if$
  430. }
  431.  
  432. MACRO {acmcs} {"ACM Comput. Surv."}
  433.  
  434. MACRO {acta} {"Acta Inf."}
  435.  
  436. MACRO {cacm} {"Commun. ACM"}
  437.  
  438. MACRO {ibmjrd} {"IBM J. Res. Dev."}
  439.  
  440. MACRO {ibmsj} {"IBM Syst.~J."}
  441.  
  442. MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
  443.  
  444. MACRO {ieeetc} {"IEEE Trans. Comput."}
  445.  
  446. MACRO {ieeetcad}
  447. {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
  448.  
  449. MACRO {ipl} {"Inf. Process. Lett."}
  450.  
  451. MACRO {jacm} {"J.~ACM"}
  452.  
  453. MACRO {jcss} {"J.~Comput. Syst. Sci."}
  454.  
  455. MACRO {scp} {"Sci. Comput. Programming"}
  456.  
  457. MACRO {sicomp} {"SIAM J. Comput."}
  458.  
  459. MACRO {tocs} {"ACM Trans. Comput. Syst."}
  460.  
  461. MACRO {tods} {"ACM Trans. Database Syst."}
  462.  
  463. MACRO {tog} {"ACM Trans. Gr."}
  464.  
  465. MACRO {toms} {"ACM Trans. Math. Softw."}
  466.  
  467. MACRO {toois} {"ACM Trans. Office Inf. Syst."}
  468.  
  469. MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
  470.  
  471. MACRO {tcs} {"Theoretical Comput. Sci."}
  472.  
  473. FUNCTION {write.url}
  474. { url empty$
  475. { skip$ }
  476. { "\newline\urlprefix\url{" url * "}" * write$ newline$ }
  477. if$
  478. }
  479.  
  480. INTEGERS { nameptr namesleft numnames }
  481.  
  482. FUNCTION {format.names}
  483. { 's :=
  484. #1 'nameptr :=
  485. s num.names$ 'numnames :=
  486. numnames 'namesleft :=
  487. { namesleft #0 > }
  488. { s nameptr
  489. "{f.~}{vv~}{ll}{, jj}" format.name$
  490. 't :=
  491. nameptr #1 >
  492. {
  493. namesleft #1 >
  494. { ", " * t * }
  495. {
  496. "," *
  497. s nameptr "{ll}" format.name$ duplicate$ "others" =
  498. { 't := }
  499. { pop$ }
  500. if$
  501. t "others" =
  502. {
  503. " " * bbl.etal *
  504. }
  505. { " " * t * }
  506. if$
  507. }
  508. if$
  509. }
  510. 't
  511. if$
  512. nameptr #1 + 'nameptr :=
  513. namesleft #1 - 'namesleft :=
  514. }
  515. while$
  516. }
  517. FUNCTION {format.names.ed}
  518. { format.names }
  519. FUNCTION {format.authors}
  520. { author empty$
  521. { "" }
  522. { author format.names }
  523. if$
  524. }
  525.  
  526. FUNCTION {format.editors}
  527. { editor empty$
  528. { "" }
  529. { editor format.names
  530. editor num.names$ #1 >
  531. { " (" * bbl.editors * ")" * }
  532. { " (" * bbl.editor * ")" * }
  533. if$
  534. }
  535. if$
  536. }
  537.  
  538. FUNCTION {format.in.editors}
  539. { editor empty$
  540. { "" }
  541. { editor format.names.ed
  542. editor num.names$ #1 >
  543. { " (" * bbl.editors * ")" * }
  544. { " (" * bbl.editor * ")" * }
  545. if$
  546. }
  547. if$
  548. }
  549.  
  550. FUNCTION {format.note}
  551. {
  552. note empty$
  553. { "" }
  554. { note #1 #1 substring$
  555. duplicate$ "{" =
  556. 'skip$
  557. { output.state mid.sentence =
  558. { "l" }
  559. { "u" }
  560. if$
  561. change.case$
  562. }
  563. if$
  564. note #2 global.max$ substring$ *
  565. }
  566. if$
  567. }
  568.  
  569. FUNCTION {format.title}
  570. { title empty$
  571. { "" }
  572. { title "t" change.case$
  573. }
  574. if$
  575. }
  576.  
  577. FUNCTION {output.bibitem.original}
  578. { newline$
  579. "\bibitem{" write$
  580. cite$ write$
  581. "}" write$
  582. newline$
  583. ""
  584. before.all 'output.state :=
  585. }
  586.  
  587. FUNCTION {n.dashify}
  588. {
  589. 't :=
  590. ""
  591. { t empty$ not }
  592. { t #1 #1 substring$ "-" =
  593. { t #1 #2 substring$ "--" = not
  594. { "--" *
  595. t #2 global.max$ substring$ 't :=
  596. }
  597. { { t #1 #1 substring$ "-" = }
  598. { "-" *
  599. t #2 global.max$ substring$ 't :=
  600. }
  601. while$
  602. }
  603. if$
  604. }
  605. { t #1 #1 substring$ *
  606. t #2 global.max$ substring$ 't :=
  607. }
  608. if$
  609. }
  610. while$
  611. }
  612.  
  613. FUNCTION {word.in}
  614. { bbl.in
  615. ":" *
  616. " " * }
  617.  
  618. FUNCTION {format.date}
  619. { year empty$
  620. { month empty$
  621. { "" }
  622. { "there's a month but no year in " cite$ * warning$
  623. month
  624. }
  625. if$
  626. }
  627. { month empty$
  628. 'year
  629. { month " " * year * }
  630. if$
  631. }
  632. if$
  633. duplicate$ empty$
  634. 'skip$
  635. {
  636. before.all 'output.state :=
  637. " (" swap$ * ")" *
  638. }
  639. if$
  640. }
  641.  
  642. FUNCTION{format.year}
  643. { year duplicate$ empty$
  644. { "empty year in " cite$ * warning$ pop$ "" }
  645. { "(" swap$ * ")" * }
  646. if$
  647. }
  648.  
  649. FUNCTION {format.btitle}
  650. { title
  651. }
  652.  
  653. FUNCTION {tie.or.space.connect}
  654. { duplicate$ text.length$ #3 <
  655. { "~" }
  656. { " " }
  657. if$
  658. swap$ * *
  659. }
  660.  
  661. FUNCTION {either.or.check}
  662. { empty$
  663. 'pop$
  664. { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  665. if$
  666. }
  667.  
  668. FUNCTION {format.bvolume}
  669. { volume empty$
  670. { "" }
  671. { bbl.volume volume tie.or.space.connect
  672. series empty$
  673. 'skip$
  674. { bbl.of space.word * series emphasize * }
  675. if$
  676. "volume and number" number either.or.check
  677. }
  678. if$
  679. }
  680.  
  681. FUNCTION {format.number.series}
  682. { volume empty$
  683. { number empty$
  684. { series field.or.null }
  685. { output.state mid.sentence =
  686. { bbl.number }
  687. { bbl.number capitalize }
  688. if$
  689. number tie.or.space.connect
  690. series empty$
  691. { "there's a number but no series in " cite$ * warning$ }
  692. { bbl.in space.word * series * }
  693. if$
  694. }
  695. if$
  696. }
  697. { "" }
  698. if$
  699. }
  700.  
  701. FUNCTION {is.num}
  702. { chr.to.int$
  703. duplicate$ "0" chr.to.int$ < not
  704. swap$ "9" chr.to.int$ > not and
  705. }
  706.  
  707. FUNCTION {extract.num}
  708. { duplicate$ 't :=
  709. "" 's :=
  710. { t empty$ not }
  711. { t #1 #1 substring$
  712. t #2 global.max$ substring$ 't :=
  713. duplicate$ is.num
  714. { s swap$ * 's := }
  715. { pop$ "" 't := }
  716. if$
  717. }
  718. while$
  719. s empty$
  720. 'skip$
  721. { pop$ s }
  722. if$
  723. }
  724.  
  725. FUNCTION {convert.edition}
  726. { edition extract.num "l" change.case$ 's :=
  727. s "first" = s "1" = or
  728. { bbl.first 't := }
  729. { s "second" = s "2" = or
  730. { bbl.second 't := }
  731. { s "third" = s "3" = or
  732. { bbl.third 't := }
  733. { s "fourth" = s "4" = or
  734. { bbl.fourth 't := }
  735. { s "fifth" = s "5" = or
  736. { bbl.fifth 't := }
  737. { s #1 #1 substring$ is.num
  738. { s eng.ord 't := }
  739. { edition 't := }
  740. if$
  741. }
  742. if$
  743. }
  744. if$
  745. }
  746. if$
  747. }
  748. if$
  749. }
  750. if$
  751. t
  752. }
  753.  
  754. FUNCTION {format.edition}
  755. { edition empty$
  756. { "" }
  757. { output.state mid.sentence =
  758. { convert.edition "l" change.case$ " " * bbl.edition * }
  759. { convert.edition "t" change.case$ " " * bbl.edition * }
  760. if$
  761. }
  762. if$
  763. }
  764.  
  765. INTEGERS { multiresult }
  766.  
  767. FUNCTION {multi.page.check}
  768. { 't :=
  769. #0 'multiresult :=
  770. { multiresult not
  771. t empty$ not
  772. and
  773. }
  774. { t #1 #1 substring$
  775. duplicate$ "-" =
  776. swap$ duplicate$ "," =
  777. swap$ "+" =
  778. or or
  779. { #1 'multiresult := }
  780. { t #2 global.max$ substring$ 't := }
  781. if$
  782. }
  783. while$
  784. multiresult
  785. }
  786.  
  787. FUNCTION {format.pages}
  788. { pages empty$
  789. { "" }
  790. { pages multi.page.check
  791. { bbl.pages pages n.dashify tie.or.space.connect }
  792. { bbl.page pages tie.or.space.connect }
  793. if$
  794. }
  795. if$
  796. }
  797.  
  798. FUNCTION {format.journal.pages}
  799. { pages empty$
  800. 'skip$
  801. { duplicate$ empty$
  802. { pop$ format.pages }
  803. {
  804. " " *
  805. format.year * " " *
  806. pages n.dashify *
  807. }
  808. if$
  809. }
  810. if$
  811. }
  812.  
  813. FUNCTION {format.vol.num.pages}
  814. {
  815. % volume field.or.null
  816. " "
  817. volume empty$
  818. { pop$ "" }
  819. { volume * }
  820. if$
  821. number empty$
  822. 'skip$
  823. {
  824. "~(" number * ")" * *
  825. volume empty$
  826. { "there's a number but no volume in " cite$ * warning$ }
  827. 'skip$
  828. if$
  829. }
  830. if$
  831. }
  832.  
  833. FUNCTION {format.chapter.pages}
  834. { chapter empty$
  835. { "" }
  836. { type empty$
  837. { bbl.chapter }
  838. { type "l" change.case$ }
  839. if$
  840. chapter tie.or.space.connect
  841. }
  842. if$
  843. }
  844.  
  845. FUNCTION {format.in.ed.booktitle}
  846. { booktitle empty$
  847. { "" }
  848. { editor empty$
  849. { word.in booktitle * }
  850. { word.in format.in.editors * ", " *
  851. booktitle * }
  852. if$
  853. }
  854. if$
  855. }
  856.  
  857. FUNCTION {empty.misc.check}
  858. { author empty$ title empty$ howpublished empty$
  859. month empty$ year empty$ note empty$
  860. and and and and and
  861. { "all relevant fields are empty in " cite$ * warning$ }
  862. 'skip$
  863. if$
  864. }
  865.  
  866. FUNCTION {format.thesis.type}
  867. { type empty$
  868. 'skip$
  869. { pop$
  870. type "t" change.case$
  871. }
  872. if$
  873. }
  874.  
  875. FUNCTION {format.tr.number}
  876. { type empty$
  877. { bbl.techrep }
  878. 'type
  879. if$
  880. number empty$
  881. { "t" change.case$ }
  882. { number tie.or.space.connect }
  883. if$
  884. }
  885.  
  886. FUNCTION {format.article.crossref}
  887. {
  888. key empty$
  889. { journal empty$
  890. { "need key or journal for " cite$ * " to crossref " * crossref *
  891. warning$
  892. ""
  893. }
  894. { word.in journal emphasize * }
  895. if$
  896. }
  897. { word.in key * " " *}
  898. if$
  899. " \cite{" * crossref * "}" *
  900. }
  901.  
  902. FUNCTION {format.crossref.editor}
  903. { editor #1 "{vv~}{ll}" format.name$
  904. editor num.names$ duplicate$
  905. #2 >
  906. { pop$
  907. " " * bbl.etal *
  908. }
  909. { #2 <
  910. 'skip$
  911. { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
  912. {
  913. " " * bbl.etal *
  914. }
  915. { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$
  916. * }
  917. if$
  918. }
  919. if$
  920. }
  921. if$
  922. }
  923.  
  924. FUNCTION {format.book.crossref}
  925. { volume empty$
  926. { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  927. word.in
  928. }
  929. { bbl.volume volume tie.or.space.connect
  930. bbl.of space.word *
  931. }
  932. if$
  933. editor empty$
  934. editor field.or.null author field.or.null =
  935. or
  936. { key empty$
  937. { series empty$
  938. { "need editor, key, or series for " cite$ * " to crossref " *
  939. crossref * warning$
  940. "" *
  941. }
  942. { series emphasize * }
  943. if$
  944. }
  945. { key * }
  946. if$
  947. }
  948. { format.crossref.editor * }
  949. if$
  950. " \cite{" * crossref * "}" *
  951. }
  952.  
  953. FUNCTION {format.incoll.inproc.crossref}
  954. {
  955. editor empty$
  956. editor field.or.null author field.or.null =
  957. or
  958. { key empty$
  959. { booktitle empty$
  960. { "need editor, key, or booktitle for " cite$ * " to crossref " *
  961. crossref * warning$
  962. ""
  963. }
  964. { word.in booktitle * }
  965. if$
  966. }
  967. { word.in key * " " *}
  968. if$
  969. }
  970. { word.in format.crossref.editor * " " *}
  971. if$
  972. " \cite{" * crossref * "}" *
  973. }
  974.  
  975. FUNCTION {format.org.or.pub}
  976. { 't :=
  977. ""
  978. year empty$
  979. { "empty year in " cite$ * warning$ }
  980. 'skip$
  981. if$
  982. address empty$ t empty$ and
  983. year empty$ and
  984. 'skip$
  985. {
  986. t empty$
  987. { address empty$
  988. 'skip$
  989. { address * }
  990. if$
  991. }
  992. { t *
  993. address empty$
  994. 'skip$
  995. { ", " * address * }
  996. if$
  997. }
  998. if$
  999. year empty$
  1000. 'skip$
  1001. { t empty$ address empty$ and
  1002. 'skip$
  1003. { ", " * }
  1004. if$
  1005. year *
  1006. }
  1007. if$
  1008. }
  1009. if$
  1010. }
  1011.  
  1012. FUNCTION {format.publisher.address}
  1013. { publisher empty$
  1014. { "empty publisher in " cite$ * warning$
  1015. ""
  1016. }
  1017. { publisher }
  1018. if$
  1019. format.org.or.pub
  1020. }
  1021.  
  1022. FUNCTION {format.organization.address}
  1023. { organization empty$
  1024. { "" }
  1025. { organization }
  1026. if$
  1027. format.org.or.pub
  1028. }
  1029.  
  1030. FUNCTION {make.href.null}
  1031. {
  1032. pop$
  1033. }
  1034. FUNCTION {make.href.hypertex}
  1035. {
  1036. "\special {html:<a href=" quote$ *
  1037. swap$ * quote$ * "> }" * swap$ *
  1038. "\special {html:</a>}" *
  1039. }
  1040. FUNCTION {make.href.hyperref}
  1041. {
  1042. "\href {" swap$ * "} {\path{" * swap$ * "}}" *
  1043. }
  1044. FUNCTION {make.href}
  1045. { hrefform #2 =
  1046. 'make.href.hyperref % hrefform = 2
  1047. { hrefform #1 =
  1048. 'make.href.hypertex % hrefform = 1
  1049. 'make.href.null % hrefform = 0 (or anything else)
  1050. if$
  1051. }
  1052. if$
  1053. }
  1054.  
  1055. FUNCTION {format.url}
  1056. { inlinelinks #1 = url empty$ or
  1057. { "" }
  1058. { hrefform #1 =
  1059. { % special case -- add HyperTeX specials
  1060. urlintro "\url{" url * "}" * url make.href.hypertex * }
  1061. { urlintro "\url{" * url * "}" * }
  1062. if$
  1063. }
  1064. if$
  1065. }
  1066.  
  1067. FUNCTION {format.eprint}
  1068. { eprint empty$
  1069. { "" }
  1070. { eprintprefix eprint * eprinturl eprint * make.href }
  1071. if$
  1072. }
  1073.  
  1074. FUNCTION {format.doi}
  1075. { doi empty$
  1076. { "" }
  1077. { doiprefix doi * doiurl doi * make.href }
  1078. if$
  1079. }
  1080.  
  1081. FUNCTION {output.url}
  1082. { url empty$
  1083. 'skip$
  1084. { new.block
  1085. format.url output
  1086. format.lastchecked output
  1087. }
  1088. if$
  1089. }
  1090.  
  1091. FUNCTION {output.web.refs}
  1092. {
  1093. new.block
  1094. output.url
  1095. addeprints eprint empty$ not and
  1096. { format.eprint output.nonnull }
  1097. 'skip$
  1098. if$
  1099. adddoiresolver doi empty$ not and
  1100. { format.doi output.nonnull }
  1101. 'skip$
  1102. if$
  1103. }
  1104.  
  1105. FUNCTION {output.bibitem}
  1106. { outside.brackets 'bracket.state :=
  1107. output.bibitem.original
  1108. inlinelinks url empty$ not and
  1109. { #1 'makeinlinelink := }
  1110. { #0 'makeinlinelink := }
  1111. if$
  1112. }
  1113.  
  1114. FUNCTION {fin.entry}
  1115. { output.web.refs % urlbst
  1116. makeinlinelink % ooops, it appears we didn't have a title for inlinelink
  1117. { setup.inlinelink % add some artificial link text here, as a fallback
  1118. "[link]" output.nonnull }
  1119. 'skip$
  1120. if$
  1121. bracket.state close.brackets = % urlbst
  1122. { "]" * }
  1123. 'skip$
  1124. if$
  1125. fin.entry.original
  1126. }
  1127.  
  1128. FUNCTION {webpage}
  1129. { output.bibitem
  1130. author empty$
  1131. { editor empty$
  1132. 'skip$ % author and editor both optional
  1133. { format.editors output.nonnull }
  1134. if$
  1135. }
  1136. { editor empty$
  1137. { format.authors output.nonnull }
  1138. { "can't use both author and editor fields in " cite$ * warning$ }
  1139. if$
  1140. }
  1141. if$
  1142. new.block
  1143. title empty$ 'skip$ 'setup.inlinelink if$
  1144. format.title "title" output.check
  1145. inbrackets "online" output
  1146. new.block
  1147. year empty$
  1148. 'skip$
  1149. { format.date "year" output.check }
  1150. if$
  1151. % We don't need to output the URL details ('lastchecked' and 'url'),
  1152. % because fin.entry does that for us, using output.web.refs. The only
  1153. % reason we would want to put them here is if we were to decide that
  1154. % they should go in front of the rather miscellaneous information in 'note'.
  1155. new.block
  1156. note output
  1157. fin.entry
  1158. }
  1159.  
  1160. FUNCTION {article}
  1161. { output.bibitem
  1162. format.authors "author" output.check
  1163. title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
  1164. format.title "title" output.check
  1165. crossref missing$
  1166. { journal
  1167. "journal" output.check
  1168. % add.blank
  1169. before.all 'output.state :=
  1170. format.vol.num.pages output
  1171. }
  1172. { format.article.crossref output.nonnull
  1173. format.pages output
  1174. }
  1175. if$
  1176. format.journal.pages
  1177. format.note output
  1178. pages empty$
  1179. { format.date "year" output.check }
  1180. 'skip$
  1181. if$
  1182. fin.entry
  1183. write.url
  1184. }
  1185.  
  1186. FUNCTION {book}
  1187. { output.bibitem
  1188. author empty$
  1189. { format.editors "author and editor" output.check
  1190. }
  1191. { format.authors output.nonnull
  1192. crossref missing$
  1193. { "author and editor" editor either.or.check }
  1194. 'skip$
  1195. if$
  1196. }
  1197. if$
  1198. title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
  1199. format.btitle "title" output.check
  1200. crossref missing$
  1201. { format.edition output
  1202. format.bvolume output
  1203. format.number.series output
  1204. format.publisher.address output
  1205. }
  1206. {
  1207. format.book.crossref output.nonnull
  1208. }
  1209. if$
  1210. format.note output
  1211. fin.entry
  1212. write.url
  1213. }
  1214.  
  1215. FUNCTION {booklet}
  1216. { output.bibitem
  1217. format.authors output
  1218. title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
  1219. format.title "title" output.check
  1220. howpublished output
  1221. address output
  1222. format.note output
  1223. format.date "year" output.check
  1224. fin.entry
  1225. write.url
  1226. }
  1227.  
  1228. FUNCTION {inbook}
  1229. { output.bibitem
  1230. author empty$
  1231. { format.editors "author and editor" output.check
  1232. }
  1233. { format.authors output.nonnull
  1234. crossref missing$
  1235. { "author and editor" editor either.or.check }
  1236. 'skip$
  1237. if$
  1238. }
  1239. if$
  1240. title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
  1241. format.btitle "title" output.check
  1242. crossref missing$
  1243. {
  1244. format.edition output
  1245. format.bvolume output
  1246. format.number.series output
  1247. format.publisher.address output
  1248. format.chapter.pages "chapter and pages" output.check
  1249. }
  1250. {
  1251. format.chapter.pages "chapter and pages" output.check
  1252. format.book.crossref output.nonnull
  1253. }
  1254. if$
  1255. format.pages "pages" output.check
  1256. format.note output
  1257. fin.entry
  1258. write.url
  1259. }
  1260.  
  1261. FUNCTION {incollection}
  1262. { output.bibitem
  1263. format.authors "author" output.check
  1264. title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
  1265. format.title "title" output.check
  1266. crossref missing$
  1267. { format.in.ed.booktitle "booktitle" output.check
  1268. format.edition output
  1269. format.bvolume output
  1270. format.number.series output
  1271. format.publisher.address output
  1272. format.chapter.pages output
  1273. }
  1274. { format.incoll.inproc.crossref output.nonnull
  1275. format.chapter.pages output
  1276. }
  1277. if$
  1278. format.pages "pages" output.check
  1279. format.note output
  1280. fin.entry
  1281. write.url
  1282. }
  1283.  
  1284. FUNCTION {inproceedings}
  1285. { output.bibitem
  1286. format.authors "author" output.check
  1287. title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
  1288. format.title "title" output.check
  1289. crossref missing$
  1290. { format.in.ed.booktitle "booktitle" output.check
  1291. format.edition output
  1292. format.bvolume output
  1293. format.number.series output
  1294. publisher empty$
  1295. { format.organization.address output }
  1296. { organization output
  1297. format.publisher.address output
  1298. }
  1299. if$
  1300. }
  1301. { format.incoll.inproc.crossref output.nonnull
  1302. }
  1303. if$
  1304. format.pages "pages" output.check
  1305. format.note output
  1306. fin.entry
  1307. write.url
  1308. }
  1309.  
  1310. FUNCTION {conference} { inproceedings }
  1311.  
  1312. FUNCTION {manual}
  1313. { output.bibitem
  1314. author empty$
  1315. { organization empty$
  1316. 'skip$
  1317. { organization output.nonnull
  1318. address output
  1319. }
  1320. if$
  1321. }
  1322. { format.authors output.nonnull }
  1323. if$
  1324. title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
  1325. format.btitle "title" output.check
  1326. author empty$
  1327. { organization empty$
  1328. {
  1329. address output
  1330. }
  1331. 'skip$
  1332. if$
  1333. }
  1334. {
  1335. organization output
  1336. address output
  1337. }
  1338. if$
  1339. format.edition output
  1340. format.note output
  1341. format.date "year" output.check
  1342. fin.entry
  1343. write.url
  1344. }
  1345.  
  1346. FUNCTION {mastersthesis}
  1347. { output.bibitem
  1348. format.authors "author" output.check
  1349. title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
  1350. format.title "title" output.check
  1351. bbl.mthesis format.thesis.type output.nonnull
  1352. school "school" output.check
  1353. address output
  1354. format.note output
  1355. format.date "year" output.check
  1356. fin.entry
  1357. write.url
  1358. }
  1359.  
  1360. FUNCTION {misc}
  1361. { output.bibitem
  1362. format.authors output
  1363. title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
  1364. format.title output
  1365. howpublished output
  1366. format.note output
  1367. format.date "year" output.check
  1368. fin.entry
  1369. write.url
  1370. empty.misc.check
  1371. }
  1372.  
  1373. FUNCTION {phdthesis}
  1374. { output.bibitem
  1375. format.authors "author" output.check
  1376. title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
  1377. format.title "title" output.check
  1378. bbl.phdthesis format.thesis.type output.nonnull
  1379. school "school" output.check
  1380. address output
  1381. format.note output
  1382. format.date "year" output.check
  1383. fin.entry
  1384. write.url
  1385. }
  1386.  
  1387. FUNCTION {proceedings}
  1388. { output.bibitem
  1389. editor empty$
  1390. { organization output }
  1391. { format.editors output.nonnull }
  1392. if$
  1393. title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
  1394. format.btitle "title" output.check
  1395. format.bvolume output
  1396. format.number.series output
  1397. editor empty$
  1398. { publisher empty$
  1399. 'skip$
  1400. {
  1401. format.publisher.address output
  1402. }
  1403. if$
  1404. }
  1405. { publisher empty$
  1406. {
  1407. format.organization.address output }
  1408. {
  1409. organization output
  1410. format.publisher.address output
  1411. }
  1412. if$
  1413. }
  1414. if$
  1415. format.note output
  1416. fin.entry
  1417. write.url
  1418. }
  1419.  
  1420. FUNCTION {techreport}
  1421. { output.bibitem
  1422. format.authors "author" output.check
  1423. title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
  1424. format.title "title" output.check
  1425. format.tr.number output.nonnull
  1426. institution "institution" output.check
  1427. address output
  1428. format.note output
  1429. format.date "year" output.check
  1430. fin.entry
  1431. write.url
  1432. }
  1433.  
  1434. FUNCTION {unpublished}
  1435. { output.bibitem
  1436. format.authors "author" output.check
  1437. title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
  1438. format.title "title" output.check
  1439. format.note "note" output.check
  1440. format.date "year" output.check
  1441. fin.entry
  1442. write.url
  1443. }
  1444.  
  1445. FUNCTION {default.type} { misc }
  1446.  
  1447. READ
  1448.  
  1449. STRINGS { longest.label }
  1450.  
  1451. INTEGERS { number.label longest.label.width }
  1452.  
  1453. FUNCTION {initialize.longest.label}
  1454. { "" 'longest.label :=
  1455. #1 'number.label :=
  1456. #0 'longest.label.width :=
  1457. }
  1458.  
  1459. FUNCTION {longest.label.pass}
  1460. { number.label int.to.str$ 'label :=
  1461. number.label #1 + 'number.label :=
  1462. label width$ longest.label.width >
  1463. { label 'longest.label :=
  1464. label width$ 'longest.label.width :=
  1465. }
  1466. 'skip$
  1467. if$
  1468. }
  1469.  
  1470. EXECUTE {initialize.longest.label}
  1471.  
  1472. ITERATE {longest.label.pass}
  1473.  
  1474. FUNCTION {begin.bib}
  1475. { preamble$ empty$
  1476. 'skip$
  1477. { preamble$ write$ newline$ }
  1478. if$
  1479. "\begin{thebibliography}{" longest.label * "}" *
  1480. write$ newline$
  1481. "\expandafter\ifx\csname url\endcsname\relax"
  1482. write$ newline$
  1483. " \def\url#1{\texttt{#1}}\fi"
  1484. write$ newline$
  1485. "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi"
  1486. write$ newline$
  1487. "\expandafter\ifx\csname href\endcsname\relax"
  1488. write$ newline$
  1489. " \def\href#1#2{#2} \def\path#1{#1}\fi"
  1490. write$ newline$
  1491. }
  1492.  
  1493. EXECUTE {begin.bib}
  1494.  
  1495. EXECUTE {init.urlbst.variables}
  1496. EXECUTE {init.state.consts}
  1497.  
  1498. ITERATE {call.type$}
  1499.  
  1500. FUNCTION {end.bib}
  1501. { newline$
  1502. "\end{thebibliography}" write$ newline$
  1503. }
  1504.  
  1505. EXECUTE {end.bib}
  1506. %% End of customized bst file
  1507. %%
  1508. %% End of file `elsarticle-num.bst'.
  1509.  
  1510.  
  1511.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:2: error: class, interface, or enum expected
%%
^
Main.java:3: error: illegal character: '`'
%% This is file `elsarticle-num.bst' (Version 2.1),
                ^
Main.java:3: error: unclosed character literal
%% This is file `elsarticle-num.bst' (Version 2.1),
                                   ^
Main.java:7: error: unclosed character literal
%% This file is part of the 'Elsarticle Bundle'.
                            ^
Main.java:7: error: unclosed character literal
%% This file is part of the 'Elsarticle Bundle'.
                                              ^
Main.java:61: error: unclosed character literal
  "Available from: " 'urlintro := % prefix before URL
                     ^
Main.java:62: error: unclosed character literal
  "http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
                          ^
Main.java:63: error: unclosed character literal
  "arXiv:" 'eprintprefix := % text prefix printed before eprint ref
           ^
Main.java:64: error: unclosed character literal
  "https://doi.org/" 'doiurl := % prefix to make URL from DOI
                     ^
Main.java:65: error: unclosed character literal
  "doi:" 'doiprefix :=      % text prefix printed before DOI ref
         ^
Main.java:66: error: illegal character: '#'
  #1 'addeprints :=         % 0=no eprints; 1=include eprints
  ^
Main.java:66: error: unclosed character literal
  #1 'addeprints :=         % 0=no eprints; 1=include eprints
     ^
Main.java:66: error: class, interface, or enum expected
  #1 'addeprints :=         % 0=no eprints; 1=include eprints
                                            ^
Main.java:67: error: illegal character: '#'
  #1 'adddoiresolver :=     % 0=no DOI resolver; 1=include it
  ^
Main.java:67: error: unclosed character literal
  #1 'adddoiresolver :=     % 0=no DOI resolver; 1=include it
     ^
Main.java:67: error: class, interface, or enum expected
  #1 'adddoiresolver :=     % 0=no DOI resolver; 1=include it
                                                 ^
Main.java:68: error: illegal character: '#'
  #2 'hrefform :=           % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs
  ^
Main.java:68: error: unclosed character literal
  #2 'hrefform :=           % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs
     ^
Main.java:68: error: class, interface, or enum expected
  #2 'hrefform :=           % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs
                                              ^
Main.java:68: error: class, interface, or enum expected
  #2 'hrefform :=           % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs
                                                                ^
Main.java:69: error: illegal character: '#'
  #1 'inlinelinks :=        % 0=URLs explicit; 1=URLs attached to titles
  ^
Main.java:69: error: unclosed character literal
  #1 'inlinelinks :=        % 0=URLs explicit; 1=URLs attached to titles
     ^
Main.java:69: error: class, interface, or enum expected
  #1 'inlinelinks :=        % 0=URLs explicit; 1=URLs attached to titles
                                               ^
Main.java:71: error: illegal character: '#'
  #0 'makeinlinelink :=     % state variable managed by setup.inlinelink
  ^
Main.java:71: error: unclosed character literal
  #0 'makeinlinelink :=     % state variable managed by setup.inlinelink
     ^
Main.java:72: error: unclosed character literal
  "" 'openinlinelink :=     % ditto
     ^
Main.java:73: error: unclosed character literal
  "" 'closeinlinelink :=    % ditto
     ^
Main.java:83: error: illegal character: '#'
{ #0 'outside.brackets := % urlbst
  ^
Main.java:83: error: unclosed character literal
{ #0 'outside.brackets := % urlbst
     ^
Main.java:84: error: illegal character: '#'
  #1 'open.brackets :=
  ^
Main.java:84: error: unclosed character literal
  #1 'open.brackets :=
     ^
Main.java:85: error: illegal character: '#'
  #2 'within.brackets :=
  ^
Main.java:85: error: unclosed character literal
  #2 'within.brackets :=
     ^
Main.java:86: error: illegal character: '#'
  #3 'close.brackets :=
  ^
Main.java:86: error: unclosed character literal
  #3 'close.brackets :=
     ^
Main.java:88: error: illegal character: '#'
  #0 'before.all :=
  ^
Main.java:88: error: unclosed character literal
  #0 'before.all :=
     ^
Main.java:89: error: illegal character: '#'
  #1 'mid.sentence :=
  ^
Main.java:89: error: unclosed character literal
  #1 'mid.sentence :=
     ^
Main.java:90: error: illegal character: '#'
  #2 'after.sentence :=
  ^
Main.java:90: error: unclosed character literal
  #2 'after.sentence :=
     ^
Main.java:91: error: illegal character: '#'
  #3 'after.block :=
  ^
Main.java:91: error: unclosed character literal
  #3 'after.block :=
     ^
Main.java:97: error: unclosed character literal
{ 's :=
  ^
Main.java:106: error: unclosed character literal
            'write$
            ^
Main.java:111: error: unclosed character literal
      mid.sentence 'output.state :=
                   ^
Main.java:119: error: illegal character: '#'
    { hrefform #1 = % hypertex
               ^
Main.java:120: error: illegal escape character
        { "\special {html:<a href=" quote$ * url * quote$ * "> }{" * 'openinlinelink :=
            ^
Main.java:120: error: unclosed character literal
        { "\special {html:<a href=" quote$ * url * quote$ * "> }{" * 'openinlinelink :=
                                                                     ^
Main.java:121: error: illegal escape character
          "\special {html:</a>}" 'closeinlinelink :=
            ^
Main.java:121: error: unclosed character literal
          "\special {html:</a>}" 'closeinlinelink :=
                                 ^
Main.java:123: error: illegal character: '#'
        { hrefform #2 = % hyperref
                   ^
Main.java:124: error: illegal escape character
            { "\href{" url * "}{" * 'openinlinelink :=
                ^
Main.java:124: error: unclosed character literal
            { "\href{" url * "}{" * 'openinlinelink :=
                                    ^
Main.java:125: error: unclosed character literal
              "}" 'closeinlinelink :=
                  ^
Main.java:127: error: unclosed character literal
            'skip$
            ^
Main.java:128: error: illegal character: '#'
          if$ % hrefform #2 =
                         ^
Main.java:130: error: illegal character: '#'
      if$ % hrefform #1 =
                     ^
Main.java:131: error: illegal character: '#'
      #0 'makeinlinelink :=
      ^
Main.java:131: error: unclosed character literal
      #0 'makeinlinelink :=
         ^
Main.java:133: error: unclosed character literal
    'skip$
    ^
Main.java:138: error: unclosed character literal
    'skip$
    ^
Main.java:140: error: unclosed character literal
      "" 'openinlinelink :=
         ^
Main.java:145: error: unclosed character literal
{ % Save the thing we've been asked to output
                     ^
Main.java:146: error: unclosed character literal
  's :=
  ^
Main.java:152: error: unclosed character literal
      outside.brackets 'bracket.state :=
                       ^
Main.java:154: error: unclosed character literal
    'skip$
    ^
Main.java:157: error: unclosed character literal
    { % We're outside all brackets -- this is the normal situation.
          ^
Main.java:158: error: unclosed character literal
      % Write out what's currently at the top of the stack, using the
                      ^
Main.java:173: error: unclosed character literal
      close.brackets 'bracket.state :=
                     ^
Main.java:180: error: unclosed character literal
    { within.brackets 'bracket.state := } % reset the state: not open nor closed
                      ^
Main.java:181: error: unclosed character literal
    { open.brackets 'bracket.state := }
                    ^
Main.java:194: error: unclosed character literal
    'pop$
    ^
Main.java:195: error: unclosed character literal
    'output.nonnull
    ^
Main.java:200: error: unclosed character literal
{ 't :=
  ^
Main.java:203: error: unclosed character literal
    'output.nonnull
    ^
Main.java:215: error: unclosed character literal
    'skip$
    ^
Main.java:216: error: unclosed character literal
    { after.block 'output.state := }
                  ^
Main.java:222: error: unclosed character literal
    'skip$
    ^
Main.java:224: error: unclosed character literal
        'skip$
        ^
Main.java:225: error: unclosed character literal
        { after.sentence 'output.state := }
                         ^
Main.java:232: error: unclosed character literal
{  " " * before.all 'output.state :=
                    ^
Main.java:241: error: illegal character: '#'
{   { #0 }
      ^
Main.java:242: error: illegal character: '#'
    { #1 }
      ^
Main.java:247: error: unclosed character literal
{   'skip$
    ^
Main.java:248: error: illegal character: '#'
    { pop$ #0 }
           ^
Main.java:253: error: illegal character: '#'
{   { pop$ #1 }
           ^
Main.java:254: error: unclosed character literal
    'skip$
    ^
Main.java:260: error: unclosed character literal
    'skip$
    ^
Main.java:261: error: unclosed character literal
    'new.block
    ^
Main.java:269: error: unclosed character literal
    'skip$
    ^
Main.java:270: error: unclosed character literal
    'new.block
    ^
Main.java:276: error: unclosed character literal
    'skip$
    ^
Main.java:277: error: unclosed character literal
    'new.sentence
    ^
Main.java:285: error: unclosed character literal
    'skip$
    ^
Main.java:286: error: unclosed character literal
    'new.sentence
    ^
Main.java:293: error: unclosed character literal
    'skip$
    ^
Main.java:413: error: illegal character: '#'
  #-2 #1 substring$ "1" =
  ^
Main.java:413: error: illegal character: '#'
  #-2 #1 substring$ "1" =
      ^
Main.java:415: error: illegal character: '#'
     { duplicate$ #-1 #1 substring$
                  ^
100 errors
stdout
Standard output is empty