<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//TaxonX//DTD Taxonomic Treatment Publishing DTD v0 20100105//EN" "../../nlm/tax-treatment-NS0.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:tp="http://www.plazi.org/taxpub" article-type="research-article" dtd-version="3.0" xml:lang="en">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">109</journal-id>
      <journal-id journal-id-type="index">urn:lsid:arphahub.com:pub:3dc5f44e-8666-58db-bc76-a455210e8891</journal-id>
      <journal-title-group>
        <journal-title xml:lang="en">JUCS - Journal of Universal Computer Science</journal-title>
        <abbrev-journal-title xml:lang="en">jucs</abbrev-journal-title>
      </journal-title-group>
      <issn pub-type="ppub">0948-695X</issn>
      <issn pub-type="epub">0948-6968</issn>
      <publisher>
        <publisher-name>Journal of Universal Computer Science</publisher-name>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.3217/jucs-014-21-3414</article-id>
      <article-id pub-id-type="publisher-id">29254</article-id>
      <article-categories>
        <subj-group subj-group-type="heading">
          <subject>Research Article</subject>
        </subj-group>
        <subj-group subj-group-type="scientific_subject">
          <subject>D.1.1 - Applicative (Functional) Programming</subject>
          <subject>D.2.6 - Programming Environments</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>Beyond ASCII - Parsing Programs with Graphical Presentations</article-title>
      </title-group>
      <contrib-group content-type="authors">
        <contrib contrib-type="author" corresp="yes">
          <name name-style="western">
            <surname>Schrage</surname>
            <given-names>Martijn M.</given-names>
          </name>
          <email xlink:type="simple">martijn@cs.uu.nl</email>
          <xref ref-type="aff" rid="A1">1</xref>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name name-style="western">
            <surname>Swierstra</surname>
            <given-names>S. Doaitse</given-names>
          </name>
          <xref ref-type="aff" rid="A1">1</xref>
        </contrib>
      </contrib-group>
      <aff id="A1">
        <label>1</label>
        <addr-line content-type="verbatim">Utrecht University, Utrecht, Netherlands</addr-line>
        <institution>Utrecht University</institution>
        <addr-line content-type="city">Utrecht</addr-line>
        <country>Netherlands</country>
      </aff>
      <author-notes>
        <fn fn-type="corresp">
          <p>Corresponding author: Martijn M. Schrage (<email xlink:type="simple">martijn@cs.uu.nl</email>).</p>
        </fn>
        <fn fn-type="edited-by">
          <p>Academic editor: </p>
        </fn>
      </author-notes>
      <pub-date pub-type="collection">
        <year>2008</year>
      </pub-date>
      <pub-date pub-type="epub">
        <day>01</day>
        <month>12</month>
        <year>2008</year>
      </pub-date>
      <volume>14</volume>
      <issue>21</issue>
      <fpage>3414</fpage>
      <lpage>3430</lpage>
      <uri content-type="arpha" xlink:href="http://openbiodiv.net/38F7054A-834C-5263-9380-F4AFA0B9DC1B">38F7054A-834C-5263-9380-F4AFA0B9DC1B</uri>
      <uri content-type="zenodo_dep_id" xlink:href="https://zenodo.org/record/7000565">7000565</uri>
      <permissions>
        <copyright-statement>Martijn M. Schrage, S. Doaitse Swierstra</copyright-statement>
        <license license-type="creative-commons-attribution" xlink:href="" xlink:type="simple">
          <license-p>This article is freely available under the J.UCS Open Content License.</license-p>
        </license>
      </permissions>
      <abstract>
        <label>Abstract</label>
        <p>Proxima is a generic structure editor suitable for a wide range of structured document types. It allows edit operations on the document structure as well as on its screen representation (i.e. free-text editing), without the need to switch between the two modes. The system maintains a bidirectional mapping between the document structure and its presentation. Besides obvious applications, such as word-processor and spread-sheet editors, Proxima is especially well-suited for defining source editors for programming languages. Presentation-oriented edit operations require that an edited presentation can be parsed to yield an updated document structure. However, conventional parsing techniques cannot readily be applied, since presentations in Proxima are not restricted to text but may also contain graphical elements. For example, an exponential may be presented as 32. Although this graphical presentation may not be directly edited at the presentation level, its components may. Hence, instead of simply parsing the changed representation, we have to take into account the existing structure. This paper explains the scanning and parsing process for presentations that are a possibly nested combination of text and graphical elements. For textual parts of the presentation a Haskell combinator parser needs to be provided. The parser for graphical parts, on the other hand, is constructed by Proxima, based on information in the presentation. White space in the presentation can be handled automatically, if desired.</p>
      </abstract>
    </article-meta>
  </front>
</article>
