home *** CD-ROM | disk | FTP | other *** search
- # First, change over comment delimiters
- /{/s//\/* /g
- /}/s// *\//g
- # Then the block start and end
- /begin/s//{/g
- /end/s//}/g
- # Stash away assignment ops and the relationals with = in them
- /:=/s//::/g
- />=/s//>:/g
- /<=/s//<:/g
- # Remaining Pascal = are C ==
- /=/s//==/g
- # Now convert to C assignment syntax and restore relationals
- /::/s//=/g
- />:/s//>=/g
- /<:/s//<=/g
- # Now convert Pascal's not-equal
- /<>/s//!=/g
- # Eliminate unused thens
- / then/s///g
- # Convert to C logical operators
- / or /s// || /g
- / and /s// && /g
- # Convert modulo operator
- / mod /s// % /g
- # Now convert procedure syntax
- /procedure/s/);$/)/
- /procedure/s//void/
- # So C won't think it's a declare
- /function/s/function \(.*\): *\(.*\);/function \2 \1/
- /function/s/: [a-zA-Z0-9]+//
- /function +/s///
- # First hack at changing strings
- /'/s//"/g
- # Turn space pairs to tabs
- /^ /s/ / /g
- # Change standard types
- /integer/s//int/g
- /integer/s//bool/g
- /cycle/s//continue/g
-