Activity for XPL compiler

  • Daniel Weaver Daniel Weaver posted a comment on discussion General Discussion

    Hello Ken, You need to turn on Upper case keywords. This is done by using the -I option on the command line or / $I / within the body of the program. When I was in college the University had a Xerox Sigma 6. I worked on the XPL complier that ran on that system. In fact that is how I got interested in compiler writing. If you send me the compiler source I will get it running for you. Please send it to shoefoot@gmail.com I suspect the dot(.) is a translation error. It probably should be an underscore(_)....

  • kenr kenr modified a comment on discussion General Discussion

    I got in a wad before looking at the options. So, I deleted my foolish post. Thanks for providing this. Its going to help me a lot.

  • kenr kenr posted a comment on discussion General Discussion

    I have an XPL XCOM compiler for the Sigma 7 / GORDO OS from 1968 -74 I'd like to get this this to run. I have your XPL C package and I intend to compile my XCOM with it to obtain Sigma code. The first statement is DECLARE #.TERMINALS LITERALLY '44', Which gives the error XPL to C language translator -- version 1.2 1 | DECLARE #.TERMINALS LITERALLY '44', | | *** Error, Illegal symbol pair: <identifier> <identifier> (detected at line 6448 in xcom). *** Partial parse to this point is: <statement list="">...

  • XPL compiler XPL compiler released /xpl0010.zip

  • XPL compiler XPL compiler released /xpl0010.tar.gz

  • Daniel Weaver Daniel Weaver committed [b27cbb] on Code

    This is not a source file.

  • Daniel Weaver Daniel Weaver committed [70436b] on Code

    Change version to 1.2

  • Daniel Weaver Daniel Weaver committed [41be5c] on Code

    Add xread() and xwrite().

  • Daniel Weaver Daniel Weaver committed [edde7c] on Code

    Revision 1.2

  • Daniel Weaver Daniel Weaver committed [a4a894] on Code

    Add xread() and xwrite(). Fix some spelling errors.

  • XPL compiler XPL compiler released /xpl0009.tar.gz

  • XPL compiler XPL compiler released /xpl0009.zip

  • Daniel Weaver Daniel Weaver committed [f6c739] on Code

    Document the changes in version 1.1

  • Daniel Weaver Daniel Weaver committed [5503a4] on Code

    Bump the version number.

  • Daniel Weaver Daniel Weaver committed [b1bb00] on Code

    Add an option to handle conditional compile with the MODCOMP compiler.

  • Daniel Weaver Daniel Weaver committed [074ad1] on Code

    Fix an error reported by the GNU C compiler.

  • Daniel Weaver Daniel Weaver committed [84fdbe]

    Changes in version 1.0

  • XPL compiler XPL compiler released /xpl0008.zip

  • XPL compiler XPL compiler released /xpl0008.tar.gz

  • XPL compiler XPL compiler released /xpl0008.tar.gz

  • XPL compiler XPL compiler released /xpl0008.zip

  • Daniel Weaver Daniel Weaver committed [25735c]

    Fix a concatenate bug where it would fail if both strings ended at FREEPOINT.

  • Daniel Weaver Daniel Weaver committed [138104]

    Fix a concatenate bug where it would fail if both strings ended at FREEPOINT.

  • Daniel Weaver Daniel Weaver committed [89f7fd]

    The built-in-function EXIT will abort the program when used without an argument.

  • XPL compiler XPL compiler released /xpl0007.tar.gz

  • XPL compiler XPL compiler released /xpl0007.zip

  • Daniel Weaver Daniel Weaver committed [f0df23]

    Add an error message for multiple definitions of parameters.

  • Daniel Weaver Daniel Weaver committed [f5410d]

    Add xtags to the makefiles.

  • Daniel Weaver Daniel Weaver committed [070c36]

    A new program to generate a VI tags file for XPL programs.

  • Daniel Weaver Daniel Weaver committed [14a399]

    Correctly flush I/O before rewind.

  • Daniel Weaver Daniel Weaver committed [3b11c8]

    Add up arraw to the list of valid characters.

  • Daniel Weaver Daniel Weaver committed [bab92a]

    Add xtags to the makefile clean target.

  • Daniel Weaver Daniel Weaver committed [b54255]

    Minor changes to document.

  • Daniel Weaver Daniel Weaver committed [c0a088]

    Format change.

  • Daniel Weaver Daniel Weaver committed [9e4feb]

    Changes in version 0.7

  • Daniel Weaver Daniel Weaver committed [242124]

    FIX a bug when a RETURN statement is used in an IF statement and is the

  • Brian Tiffin Brian Tiffin posted a comment on discussion General Discussion

    :-) When I get comfortable enough to make the XPL language page on Rosetta, your routine will be put to use for case conversion, not the first day student copy listed above. I was about to pester about learning the ins and outs of references vs copies. REBOL programming seems a little similar in that area. When to leverage the efficiencies of references and when new copies need to be made. Thanks for the hint. Getting over the first few hurldes, will add base handling to the sum-digits task sample....

  • Daniel Weaver Daniel Weaver modified a comment on discussion General Discussion

    The lack of a BREAK statement in XPL is a problem. There are a few ways to work around this problem. Here are some suggestions: looping = 1; do while looping; if some_end_condition then looping = 0; /* do more stuff */ end; /* In XPL the upper limit is not recalculated */ /* This will not work */ x = 100; do i = 0 to x; if some_end_condition then x = 0; /* ... */ end; /* But you can change the index variable */ x = 100; do i = 0 to x; if some_end_condition then i = 256; /* ... */ end; /* You can...

  • Daniel Weaver Daniel Weaver modified a comment on discussion General Discussion

    The line: total = total + digit - byte('0'); Should read: total = total * base + digit - byte('0'); This should work for any base from 2 to 10. In my example the function UNIQUE makes a copy of the string so that the uppercase function does not corrupt other strings. For Example: base_data = 'abcdef'; new_stuff = uppercase(substr(base_data, 1, 3)); /* Should not corrupt the value of the string "base_data " */ It's easy to get a unique copy of a string. You move it to the top of the free string area....

  • Daniel Weaver Daniel Weaver modified a comment on discussion General Discussion

    The line: ~~~total = total + digit - byte('0'); ~~~Should read: ~~~total = total * base + digit - byte('0'); ~~~This should work for any base from 2 to 10. In my example the function UNIQUE makes a copy of the string so that the uppercase function does not corrupt other strings. For Example: ~~~stuff = 'abcdef'; new_stuff = uppercase(substr(stuff, 1, 3)); / Should not corrupt the value of the string "stuff "/ ~~~It's easy to get a unique copy of a string. You move it to the top of the free string...

  • Daniel Weaver Daniel Weaver modified a comment on discussion General Discussion

    The line: total = total + digit - byte('0'); Should read: total = total * base + digit - byte('0'); This should work for any base from 2 to 10. In my example the function UNIQUE makes a copy of the string so that the uppercase function does not corrupt other strings. For Example: stuff = 'abcdef'; new_stuff = uppercase(substr(stuff, 1, 3)); / Should not corrupt the value of the string "stuff "/ It's easy to get a unique copy of a string. You move it to the top of the free string area. Example: new_string...

  • Daniel Weaver Daniel Weaver modified a comment on discussion General Discussion

    The line: total = total + digit - byte('0'); Should read: total = total * base + digit - byte('0'); This should work for any base from 2 to 10. In my example the function UNIQUE makes a copy of the string so that the uppercase function does not corrupt other strings. For Example: stuff = 'abcdef'; new_stuff = uppercase(substr(stuff, 1, 3)); / Should not corrupt the value of the string "stuff "/ It's easy to get a unique copy of a string. You move it to the top of the free string area. Example: new_string...

  • Daniel Weaver Daniel Weaver posted a comment on discussion General Discussion

    The line: total = total + digit - byte('0'); Should read: total = total * base + digit - byte('0'); This should work for any base from 2 to 10. In my example the function UNIQUE makes a copy of the string so that the uppercase function does not corrupt other strings. For Example: stuff = 'abcdef'; new_stuff = uppercase(substr(stuff, 1, 3)); / Should not corrupt the value of the string "stuff "/ It's easy to get a unique copy of a string. You move it to the top of the free string area. Example: new_string...

  • Daniel Weaver Daniel Weaver modified a comment on discussion General Discussion

    The lack of a BREAK statement in XPL is a problem. There are a few ways to work around this problem. Here are some suggestions: looping = 1; do while looping; if some_end_condition then looping = 0; /* do more stuff */ end; /* In XPL the upper limit is not recalculated */ /* This will not work */ x = 100; do i = 0 to x; if some_end_condition then x = 0; /* ... */ end; /* But you can change the index variable */ x = 100; do i = 0 to x; if some_end_condition then i = 256; /* ... */ end; /* You can...

  • Daniel Weaver Daniel Weaver modified a comment on discussion General Discussion

    /* lower to UPPER case conversion */ declare map(255) bit(8); declare shift character initial ( 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'); initialization: procedure; declare (i, j) fixed; do i = 0 to 255; map(i) = i; end; do i = 0 to 25; j = byte(shift, i + 26); map(byte(shift, i)) = j; end; end initialization; uppercase: procedure(s) character; declare s character, i fixed; s = unique(s); do i = 0 to length(s) - 1; byte(s, i) = map(byte(s, i)); end; return s; end uppercase; main: procedure;...

  • Brian Tiffin Brian Tiffin modified a comment on discussion General Discussion

    Thanks again. I spent about a year back in the early 80's under a mentor who was the "structured programming, or no programming" type. Thinking back, he may have been from Denmark and loyal to the likes of Dijkstra. <joking></joking> It was good training in goto-less at all costs programming. :-) I'll post more starter questions if/when I put up the Rosetta Code XPL page and some of the simple tasks. Edit: adding a listing Didn't have time last night to dig up the first day coding attempt, just so...

  • Brian Tiffin Brian Tiffin modified a comment on discussion General Discussion

    Thanks again. I spent about a year back in the early 80's under a mentor who was the "structured programming, or no programming" type. Thinking back, he may have been from Denmark and loyal to the likes of Dijkstra. <joking></joking> It was good training in goto-less at all costs programming. :-) I'll post more starter questions if/when I put up the Rosetta Code XPL page and some of the simple tasks. Edit: adding a listing Didn't have time last night to dig up the first day coding attempt, just so...

  • Brian Tiffin Brian Tiffin modified a comment on discussion General Discussion

    Thanks again. I spent about a year back in the early 80's under a mentor who was the "structured programming, or no programming" type. Thinking back, he may have been from Denmark and loyal to the likes of Dijkstra. <joking></joking> It was good training in goto-less at all costs programming. :-) I'll post more starter questions if/when I put up the Rosetta Code XPL page and some of the simple tasks. Edit: adding a listing Didn't have time last night to dig up the first day coding attempt, just so...

  • Brian Tiffin Brian Tiffin posted a comment on discussion General Discussion

    Thanks again. I spent about a year back in the early 80's under a mentor who was the "structured programming, or no programming" type. Thinking back, he may have been from Denmark and loyal to the likes of Dijkstra. <joking></joking> It was good training in goto-less at all costs programming. :-) I'll post more starter questions if/when I put up the Rosetta Code XPL page and some of the simple tasks. Cheers, Blue

  • Brian Tiffin Brian Tiffin posted a comment on discussion General Discussion

    Nice. Thanks, Daniel. Works the charm. Did have to fix the /* */ comments in the first line. SourceForge markup ate the asterisks for italics. Not a biggy, and on par for SourceForge markdown expectations. :-) Have good, make well, Blue

  • Daniel Weaver Daniel Weaver posted a comment on discussion General Discussion

    The lack of a BREAK statement in XPL is a problem. There are a few ways to work around this problem. Here are some suggestions: looping = 1; do while looping; if some_end_condition then looping = 0; / do more stuff / end; / In XPL the upper limit is not recalculated / / This will not work / x = 100; do i = 0 to x; if some_end_condition then x = 0; / ... / end; / But you can change the index variable / x = 100; do i = 0 to x; if some_end_condition then i = 256; / ... / end; / You can also use the...

  • Daniel Weaver Daniel Weaver posted a comment on discussion General Discussion

    / lower to UPPER case conversion / declare map(255) bit(8); declare shift character initial ( 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'); initialization: procedure; declare (i, j) fixed; do i = 0 to 255; map(i) = i; end; do i = 0 to 25; j = byte(shift, i + 26); map(byte(shift, i)) = j; end; end initialization; uppercase: procedure(s) character; declare s character, i fixed; s = unique(s); do i = 0 to length(s) - 1; byte(s, i) = map(byte(s, i)); end; return s; end uppercase; main: procedure;...

  • Brian Tiffin Brian Tiffin posted a comment on discussion General Discussion

    Not meaning to pester, Daniel, but also keen and at the bottom of the XPL learning curve. Are you up for a few beginner questions here in your discussion forum? As a for instance, how would an XPL guru go about defining uppercase(str) and lowercase(str) procedures, given that the code should be EBCDIC and ASCII agnostic, changing the str in place. I've tried a few things like byte(str, pos) = byte(map, j) on the left hand side of an assignment, but all I seem to get, is more confused. :-) Another;...

  • Brian Tiffin Brian Tiffin modified a comment on ticket #7

    :-) Yes and no. As I was about to try and write up a minimal. I can't quite get the incantations that left the descriptors unset. All works as advertised. I was early exploring, and using sed to rename function entries generated, and when trying to reproduce, it all just works, Daniel, no traceback. prompt$ make tryargs xpl -I -m args.xpl XPL to C language translator -- version 0.6 12 cards containing 9 statements were compiled. No errors were detected. args XPL command line arguments 0 date: 120186...

  • Brian Tiffin Brian Tiffin posted a comment on ticket #7

    :-) Yes and no. As I was about to try and write up a minimal. I can't quite get the incantations that left the descriptors unset. All works as advertised. I was early exploring, and using sed to rename function entries generated, and when trying to reproduce, it all just works, Daniel, no traceback. prompt$ make tryargs xpl -I -m args.xpl XPL to C language translator -- version 0.6 12 cards containing 9 statements were compiled. No errors were detected. args XPL command line arguments 0 date: 120186...

  • Brian Tiffin Brian Tiffin created ticket #7

    factor out a function for argc, argc with xpl -m

  • Daniel Weaver Daniel Weaver committed [079249]

    Add comment start, and line length options.

  • Daniel Weaver Daniel Weaver committed [100e85]

    Bump revision. Fix typo.

  • XPL compiler XPL compiler released /xpl0006.tar.gz

  • XPL compiler XPL compiler released /xpl0006.zip

  • Daniel Weaver Daniel Weaver committed [53185a]

    Removed some unused variables.

  • Daniel Weaver Daniel Weaver committed [f97286]

    Split date and time out to a separate .c file.

  • Daniel Weaver Daniel Weaver committed [697e37]

    Add the program xformat to for XPL source programs.

  • Daniel Weaver Daniel Weaver committed [48928b]

    Add the builtin variable input_record_limit to limit INPUT() string length.

  • Daniel Weaver Daniel Weaver committed [2f0fb4]

    Update the documentation.

  • XPL compiler XPL compiler released /xpl0005.tar.gz

  • XPL compiler XPL compiler released /xpl0005.zip

  • Daniel Weaver Daniel Weaver modified ticket #5

    Hex constants at the end of a C compatible string are ignored

  • Daniel Weaver Daniel Weaver posted a comment on ticket #5

    Fixed in 0.5

  • Daniel Weaver Daniel Weaver posted a comment on ticket #6

    Fixed in 0.5

  • Daniel Weaver Daniel Weaver modified ticket #6

    Do loop iteration variable set too early

  • Daniel Weaver Daniel Weaver committed [fbb640]

    Formatting change to prevent text from running off the right side of the page.

  • Daniel Weaver Daniel Weaver committed [ddeff3]

    Update the section on Name Space polution. Pluse other edits.

  • Daniel Weaver Daniel Weaver committed [b5e581]

    Rename many of the runtime functions to reduce namespace polution.

  • Daniel Weaver Daniel Weaver committed [712106]

    Add new functions: xfdopen, xio_get_flags, xio_set_flags.

  • Daniel Weaver Daniel Weaver committed [d1ca61]

    Makefile cleanup

  • Daniel Weaver Daniel Weaver committed [320107]

    Remove teace() and untrace() from the runtime. Avoid namespace polution.

  • Daniel Weaver Daniel Weaver committed [a6a04d]

    Fix short formats without arguments for xprintf, xfprintf and xsprintf.

  • Daniel Weaver Daniel Weaver committed [6c24a7]

    Fix ticket #6. The compiler will now assign the iteration variable after evaluating the other expressions.

  • Daniel Weaver Daniel Weaver committed [20e8dd]

    Fix short formats without arguments for xprintf, xfprintf and xsprintf.

  • Daniel Weaver Daniel Weaver created ticket #6

    Do loop iteration variable set too early

  • Daniel Weaver Daniel Weaver committed [117cbc]

    Add XPL_EOF as an EOF indicator used by xerrno.

  • Daniel Weaver Daniel Weaver committed [1412ba]

    Fix Ticket #5. Hex constants at the end of a C compatable string.

  • Daniel Weaver Daniel Weaver created ticket #5

    Hex constants at the end of a C compatible string are ignored

  • Daniel Weaver Daniel Weaver modified ticket #4

    64-bit COREWORD()

  • Daniel Weaver Daniel Weaver posted a comment on ticket #4

    Fixed in 0.4. Added the function CORELONGWORD().

  • Daniel Weaver Daniel Weaver modified ticket #3

    Inconsistent arguments/parameters with forward declarations

  • Daniel Weaver Daniel Weaver posted a comment on ticket #3

    Fixed in 0.4. Use the EXTERNAL keyword to define a function prototype.

  • Daniel Weaver Daniel Weaver modified ticket #2

    Compiler error: forceaccumulator type 14 error

  • Daniel Weaver Daniel Weaver modified ticket #1

    Comments on XPL documentation

  • XPL compiler XPL compiler released /xpl0004.tar.gz

  • XPL compiler XPL compiler released /xpl0004.zip

  • Daniel Weaver Daniel Weaver committed [b90564]

    Add the keywords: External and transparent

  • Daniel Weaver Daniel Weaver committed [779aea]

    Fixed: call xprintf("(c)hex of 5 is %s:\n", hex (5));

  • Daniel Weaver Daniel Weaver committed [b6b548]

    Add a description of the new keywords EXTERNAL and TRANSPARENT

  • Daniel Weaver Daniel Weaver committed [c25c2e]

    Add the keywords: External nad Transparent

  • Daniel Weaver Daniel Weaver committed [6ce70d]

    Change errno to xerrno.

  • Daniel Weaver Daniel Weaver committed [c6c762]

    Add CORELONGWORD()

  • Daniel Weaver Daniel Weaver committed [57f471]

    Implement the inline() function used within INITIAL() declarations.

  • Daniel Weaver Daniel Weaver committed [f3b839]

    Change gcc to $(CC) to improve portability.

1 >
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.