Hogwarts Wand Docs: ../server/picsim2pic.seds

File: ../server/picsim2pic.seds

#
# sed script to convert picsim c code into pic assembly code
#

#
# convert comments & fix tabs
#
s|;||g
s|//|;|
s|[     ][  ]*| |g

#
# get rid of extra stuff
#
s|^ *\(ASSERT.*\)||
s|^ *picTrace([^;]*)||

#
# register assignments
#
s|^picReg(\([^)]*\))|\1                       equ vaddr|
s|\(.\{25\}[^ ]*\) *equ|\1 equ|
s|.*equ vaddr.*|&|p
s|.*equ vaddr.*|vaddr+=1|

#
# bit defines
# defines
#
s| *#define PICDST_BIT\([^ ]*\) PICDST_BIT\([0-7]\)|\1                               equ \2|
s|^ *#define \([^ ()]*\) \([^;]\) ;|\1                               equ \2   ;|
s|^ *#define \([^ ()]*\) \([^;]\)|\1                               equ \2|
s|^ *#define \([^;]\) ;.*|#define \1|

#
# data values (equ)
#
s| *picEqu( *\([^ ,]*\) *, *\([^;]*\))|\1                              equ  \2|

#
# place all equ at colum 26 (if possible)
#
s|\(.\{25\}[^ ]*\) *equ|\1 equ|

#
# labels
#
s|^ *static void \([a-zA-Z_][a-zA-Z0-9_]*\)(void)|\1:|
s|^[^;]*[{}]||g

s|^ *picLabel(\([^)]*\))|\1:|
s|^ picReturn( *)|  return|

#
# opcodes
#
s|^ \([a-z]\{2,3\}\)(\([^;]*\)) *\(;.*\)|   \1      \2          \3|
s|^ \([a-z]\{4,7\}\)(\([^;]*\)) *\(;.*\)|   \1  \2          \3|
s|^ \([a-z]\{2,3\}\)(\([^;]*\)) *$| \1      \2|
s|^ \([a-z]\{4,7\}\)(\([^;]*\)) *$| \1  \2|

#
# retab comments
#
s|^ ;|  ;|
s|^\# [0-9]|                                                ;&|
s|^ \([a-zA-Z]\{2,3\}\) |   \1      |
s|^ \([a-zA-Z]\{4,7\}\) |   \1  |
s|^ \([^ ]\)|   \1|

This file Copyright (C) 2006 by Nathan (Acorn) Pooley
Go to TOP Wand page
Go to Acorn's personal webpage
Go to Hogwarts website: www.gotohogwarts.com
Snout: www.snout.org/game
Gadgets of Justice Unlimited
Snout GC (Wiki)
Snout Wiki
File created by do_doc at Wed May 30 03:31:08 PDT 2007