Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Thanks to Ikegami, Chromatic & Corion

by Logicus
on Nov 01, 2011 at 13:53 UTC ( #935124=perlmeditation: print w/replies, xml ) Need Help??

Thanks are due to Ikegami, Chromatic & Corion.

But mostly to Ikegami, whose razor sharp insight in the area of text processing and Turing completeness, was the catalyst for the final completion of the aXML programming language.

aXML can now round-trip it's own parser; by that I mean that I can now copy-paste the source code of the parser into a browser textarea, display it on screen in the browser, then copy-paste the result into a text editor and save it back as the source code to the Parser, and it still compiles correctly and works.

aXML, the second child of Perl is born!

Congratulations Larry, your a grandfather! Again!

Replies are listed 'Best First'.
Re: Thanks to Ikegami, Chromatic & Corion (I SECOND THAT SENTIMENT)
by Anonymous Monk on Nov 01, 2011 at 17:22 UTC

    Yes, thank you VERY much ikegami, Corion and chromatic. Out of over 500 nodes posted in threads started by our lovely purveyor of aXML you answered the call writing 144 of those nodes, ensuring the lovely 'company' of Logicus/simonodell for many months now.

    A little more specifically:

    -- ikegami with 75 nodes, fueled largely by a compulsive desire to win an argument with every single person on this planet. (or maybe just the interwebs)

    -- Corion with 43, a galant effort in trying to teach a troll what it means to be classy.

    -- and chromatic with 26 loooong-winded nodes posted at times when it seemed nearly no one else would listen to our misunderstood artist. You really fought to make sure the conversation kept going despite the efforts of jealous minions.

    And let us never forget ME, Anonymous Monk with 160 nodes including this one! While I don't like to brag, I'm the ONLY one who can say was there for Simon from DAY ONE all the way up to today. *I* changed his diapers when no one else would. Made sure he came back through a little tough love when NO ONE ELSE wanted to bother. Modesty aside, undoubtedly I deserve the most credit of all. So I will thank myself for being a complete coward and thinking that it only counts when I feed a troll in name, not anonymously. ;)

    Please, everyone, if you haven't done so, take this opportunity now to acknowledge the sacrifices of these and a number of other monks who helped in the endeavor. We couldn't have done it without them and the site has never been more fun, informative and welcoming to visit because of these monks.

      ...Now, I ain’t saying he’s a troll cracker. But he ain’t messing with no Perl hacker...

      I regret nooooooootttttttttttthhhhhhhhhhhhhhiinggggg!!!


        Tricked into a crufty thread by completely new title...

      I'm starting to have flashbacks to Battlecruiser 3000AD.

      Aaron B.
      My Woefully Neglected Blog, where I occasionally mention Perl.

        Fun innit ^.^
      Thank you for proving my point, dpp.
Re: Thanks to Ikegami, Chromatic & Corion
by Anonymous Monk on Nov 01, 2011 at 14:06 UTC
    You don't thank them or anyone else for putting up with your deplorable language, many insults, lies, threats, multiple changes of tact, tangenting and random displays of your mental issues. You're welcome.

      Tit for tat, rudeness for rudeness, callousness for callousness, insult for insult, I give as good as I get... +10%, and I don't care if your eyeballs get hurt by my ASCII-arrows.

      At the end of the day you shouldn't have to be a Perl master to have the right to want to use Perl in your own way. Need I quote Larry's laws?

      I found it astonishing just how self-righteous and stuck up their own arses certain characters including __YOU__ are around here, and I'm not in the slightest bit sorry for irritating the living sh** out of you. Infact I sincerely hope that the amount I've irritated you by is measured in exact inverse proportion to how much of a decent open minded nice guy you are.

      Thanks for the scraps of information everyone, but TBH you can keep the mountain of bullsh** all for yourselves :)

        You've not irritated the living anything out of me. Thanks for *ing out parts of your foul language, you obviously do agree with what I said.
Re: Thanks to Ikegami, Chromatic & Corion
by ikegami (Pope) on Nov 01, 2011 at 20:43 UTC

    Cool, where can one get their hands on it? And could you please fill in this table to match the changes in aXML?

    Plugin OutputaXML Output
    <table border="1"> <tr><th>Plugin Output<th>aXML Output <tr><td><c>???</c><td><c>&</c> <tr><td><c>???</c><td><c><</c> <tr><td><c>???</c><td><c>></c> <tr><td><c>???</c><td><c>[</c> <tr><td><c>???</c><td><c>]</c> <tr><td><c>???</c><td><c>(</c> <tr><td><c>???</c><td><c>)</c> <tr><td><c>???</c><td><c>&lab;</c> <tr><td><c>???</c><td><c><db_select></c> </table>

      The complete sourcecode to, including all site assets, will be available shortly in the "Castle Blueprints" section. (gosh a self-replicating castle... whatever next?)

      In the table below, input refers to information either loaded from disc, retrieved from a db, created by a plugin, or entered through the query data by an end user.

      Output refers to the final produced output at end of processing.

      In between these two there is usually no need to consider these specials at all as they are all automatically dealt with by the system, so unless your doing something very bizarre your not likely to ever see them or need to know what they are about.

      Having said that for the sake of absolute completeness the special symbols work as follows;

      Input Output
      &lab; <
      &rab; >
      &lcb; (
      &rcb; )
      &lsb; [
      &rsb; ]
      <special>lab</special> &lab;
      <special>lcb</special> &lcb;
      <special>lsb<special> &lsb;
      <special>rab<special> &rab;
      <special>rcb</special> &rcb;
      <special>rsb</special> &rsb;
      &lab;special&rab; <special>
      &lab;/special&rab; </special>

      Note: if you want to use a tag other than "special" to instruct the parser to insert a special char, perhaps in the case where your using an XML file containing tags of the same name, provision has been made to rename the special tag by changing a value in the file.

      It's also possible in theory, that since the end programmer is not expected to know or care about these symbols for the vast majority of their tasks, that the system could be automated such that input is scanned for the existence of <special> tags and automatically shift to using a different delimiter, for instance <special1>. I'm not sure if that would be overkill, there is such a thing as a sledgehammer and a nut.

      In the case where you wish to output aXML code such as <db_mask> then you have the choice to either use &lab;/&rab; or &lt;/&gt;, either will work, and which you use depends on whether you want the literal output, or output is to be encoded for display in a browser. (the latter being I suspect the far more common requirement.

      The following aXML file was used to test the round trip completeness for the parser code:

      Listing of actions/test/body.aXML --------------------------------- <html> <head></head> <body> (displayqd)input(/displayqd) <hr> <buildform action="test" method="POST"> <input type="submit" value="Make it so!"><br/> <textarea name="input" rows="80" cols="80" >(textareaqd)input(/textareaqd)</textarea> </buildform> <br/><br/><br/> </body> </html>

      As you can see, no mention of any specials is required at the document level, as they are all handled automatically at the parser/plugin level. The above code run with the standard set, can take the parser as input in the text area, and correctly displays it above, and encodes it in the input area for another go around the circle if you click submit again. Sending it around the circle multiple times has no detrimental effect; the output remains identical to the input.

      Modifying the above like this :

      <html> <head></head> <body> (highlightcode)(displayqd)input(/displayqd)(/highlightcode) <hr> <buildform action="test" method="POST"> <input type="submit" value="Make it so!"><br/> <textarea name="input" rows="80" cols="80" >(textareaqd)input(/textareaqd)</textarea> </buildform> <br/><br/><br/> </body> </html>

      Causes fragments of perl wrapped in <code> tags to be highlighted in a similar fashion to the "nano" text editor, and fragments of aXML wrapped in <aXML> tags to be highlighted in a similar vein.

      The highlighting is done with <span> tags and can then be styled using CSS. PerlNights currently has two colour-schemes, midnight (light-text on darkblue bg) and daytime (dark text on white bg), and more might be added later.

      P.s, if you want a sneak peak at the PerlNights code before I'm finished writing it, you can drop me an email and I will bundle you over a ZIP or tar.gz file, I'm sure you know my address, either that or you can just wait till I'm done and PerlNights is operational, won't be too long!

        If I want to display &lab;special&rab;, do I emit &amp;lab;special&amp;rab;?

        Improve your skills with Modern Perl: the free book.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://935124]
Approved by sparkyichi
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (3)
As of 2018-04-22 14:45 GMT
Find Nodes?
    Voting Booth?