ref: 85f382ffad409cb77bc755c484d2445bf1600974
parent: c6d8069eed0937108429a97e5a7c29411407d119
author: Vegard Nossum <[email protected]>
date: Thu Jun 11 05:03:53 EDT 2009
asm: run dos2unix on yaccprt1.y Signed-off-by: Vegard Nossum <[email protected]>
--- a/src/asm/yaccprt1.y
+++ b/src/asm/yaccprt1.y
@@ -1,432 +1,432 @@
-%{
-#include "symbol.h"
-#include "asm.h"
-#include "output.h"
-#include "mylink.h"
-#include "fstack.h"
-#include "mymath.h"
-#include "rpn.h"
-#include "main.h"
-#include "lexer.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-char *tzNewMacro;
-ULONG ulNewMacroSize;
-
-ULONG symvaluetostring( char *dest, char *sym )
-{
- if( sym_isString(sym) )
- strcpy( dest, sym_GetStringValue(sym) );
- else
- sprintf( dest, "$%lX", sym_GetConstantValue(sym) );
-
- return( strlen(dest) );
-}
-
-ULONG str2int( char *s )
-{
- ULONG r=0;
- while( *s )
- {
- r<<=8;
- r|=(UBYTE)(*s++);
- }
- return( r );
-}
-
-ULONG isWhiteSpace( char s )
-{
- return( s==' ' || s=='\t' || s=='\0' || s=='\n' );
-}
-
-ULONG isRept( char *s )
-{
- return( (strnicmp(s,"REPT",4)==0) && isWhiteSpace(*(s-1)) && isWhiteSpace(s[4]) );
-}
-
-ULONG isEndr( char *s )
-{
- return( (strnicmp(s,"Endr",4)==0) && isWhiteSpace(*(s-1)) && isWhiteSpace(s[4]) );
-}
-
-void copyrept( void )
-{
- SLONG level=1, len, instring=0;
- char *src=pCurrentBuffer->pBuffer;
-
- while( *src && level )
- {
- if( instring==0 )
- {
- if( isRept(src) )
- {
- level+=1;
- src+=4;
- }
- else if( isEndr(src) )
- {
- level-=1;
- src+=4;
- }
- else
- {
- if( *src=='\"' )
- instring=1;
- src+=1;
- }
- }
- else
- {
- if( *src=='\\' )
- {
- src+=2;
- }
- else if( *src=='\"' )
- {
- src+=1;
- instring=0;
- }
- else
- {
- src+=1;
- }
- }
- }
-
- len=src-pCurrentBuffer->pBuffer-4;
-
- src=pCurrentBuffer->pBuffer;
- ulNewMacroSize=len;
-
- if( (tzNewMacro=(char *)malloc(ulNewMacroSize+1))!=NULL )
- {
- ULONG i;
-
- tzNewMacro[ulNewMacroSize]=0;
- for( i=0; i<ulNewMacroSize; i+=1 )
- {
- if( (tzNewMacro[i]=src[i])=='\n' )
- nLineNo+=1;
- }
- }
- else
- fatalerror( "No mem for REPT block" );
-
- yyskipbytes( ulNewMacroSize+4 );
-
-}
-
-ULONG isMacro( char *s )
-{
- return( (strnicmp(s,"MACRO",4)==0) && isWhiteSpace(*(s-1)) && isWhiteSpace(s[5]) );
-}
-
-ULONG isEndm( char *s )
-{
- return( (strnicmp(s,"Endm",4)==0) && isWhiteSpace(*(s-1)) && isWhiteSpace(s[4]) );
-}
-
-void copymacro( void )
-{
- SLONG level=1, len, instring=0;
- char *src=pCurrentBuffer->pBuffer;
-
- while( *src && level )
- {
- if( instring==0 )
- {
- if( isMacro(src) )
- {
- level+=1;
- src+=4;
- }
- else if( isEndm(src) )
- {
- level-=1;
- src+=4;
- }
- else
- {
- if( *src=='\"' )
- instring=1;
- src+=1;
- }
- }
- else
- {
- if( *src=='\\' )
- {
- src+=2;
- }
- else if( *src=='\"' )
- {
- src+=1;
- instring=0;
- }
- else
- {
- src+=1;
- }
- }
- }
-
- len=src-pCurrentBuffer->pBuffer-4;
-
- src=pCurrentBuffer->pBuffer;
- ulNewMacroSize=len;
-
- if( (tzNewMacro=(char *)malloc(ulNewMacroSize+2))!=NULL )
- {
- ULONG i;
-
- tzNewMacro[ulNewMacroSize]='\n';
- tzNewMacro[ulNewMacroSize+1]=0;
- for( i=0; i<ulNewMacroSize; i+=1 )
- {
- if( (tzNewMacro[i]=src[i])=='\n' )
- nLineNo+=1;
- }
- }
- else
- fatalerror( "No mem for MACRO definition" );
-
- yyskipbytes( ulNewMacroSize+4 );
-}
-
-ULONG isIf( char *s )
-{
- return( (strnicmp(s,"If",2)==0) && isWhiteSpace(*(s-1)) && isWhiteSpace(s[2]) );
-}
-
-ULONG isElse( char *s )
-{
- return( (strnicmp(s,"Else",4)==0) && isWhiteSpace(*(s-1)) && isWhiteSpace(s[4]) );
-}
-
-ULONG isEndc( char *s )
-{
- return( (strnicmp(s,"Endc",4)==0) && isWhiteSpace(*(s-1)) && isWhiteSpace(s[4]) );
-}
-
-void if_skip_to_else( void )
-{
- SLONG level=1, len, instring=0;
- char *src=pCurrentBuffer->pBuffer;
-
- while( *src && level )
- {
- if( *src=='\n' )
- nLineNo+=1;
-
- if( instring==0 )
- {
- if( isIf(src) )
- {
- level+=1;
- src+=2;
- }
- else if( level==1 && isElse(src) )
- {
- level-=1;
- src+=4;
- }
- else if( isEndc(src) )
- {
- level-=1;
- if( level!=0 )
- src+=4;
- }
- else
- {
- if( *src=='\"' )
- instring=1;
- src+=1;
- }
- }
- else
- {
- if( *src=='\\' )
- {
- src+=2;
- }
- else if( *src=='\"' )
- {
- src+=1;
- instring=0;
- }
- else
- {
- src+=1;
- }
- }
- }
-
- len=src-pCurrentBuffer->pBuffer;
-
- yyskipbytes( len );
- yyunput( '\n' );
- nLineNo-=1;
-}
-
-void if_skip_to_endc( void )
-{
- SLONG level=1, len, instring=0;
- char *src=pCurrentBuffer->pBuffer;
-
- while( *src && level )
- {
- if( *src=='\n' )
- nLineNo+=1;
-
- if( instring==0 )
- {
- if( isIf(src) )
- {
- level+=1;
- src+=2;
- }
- else if( isEndc(src) )
- {
- level-=1;
- if( level!=0 )
- src+=4;
- }
- else
- {
- if( *src=='\"' )
- instring=1;
- src+=1;
- }
- }
- else
- {
- if( *src=='\\' )
- {
- src+=2;
- }
- else if( *src=='\"' )
- {
- src+=1;
- instring=0;
- }
- else
- {
- src+=1;
- }
- }
- }
-
- len=src-pCurrentBuffer->pBuffer;
-
- yyskipbytes( len );
- yyunput( '\n' );
- nLineNo-=1;
-}
-
-
-#ifdef PCENGINE
-ULONG ZP( struct Expression *expr )
-{
- return( (!rpn_isReloc(expr)) && (expr->nVal>0x1FFF) && (expr->nVal<0x2100) );
-}
-
-void out_ZPByte( struct Expression *expr )
-{
- if( rpn_isReloc(expr) )
- {
- rpn_CheckZP(expr,expr);
- out_RelByte(expr);
- }
- else
- {
- if( ZP(expr) )
- out_AbsByte(expr->nVal-0x2000);
- else
- fatalerror( "Value not in zeropage");
- }
-}
-#endif
-
-%}
-
-%union
-{
- char tzSym[MAXSYMLEN+1];
- char tzString[256];
- struct Expression sVal;
- SLONG nConstValue;
-}
-
-%type <sVal> relocconst
-%type <nConstValue> const
-%type <nConstValue> const_3bit
-%type <sVal> const_8bit
-%type <sVal> const_16bit
-%type <sVal> const_PCrel
-%type <nConstValue> sectiontype
-
-%type <tzString> string
-
-%token <nConstValue> T_NUMBER
-%token <tzString> T_STRING
-
-%left T_OP_LOGICNOT
-%left T_OP_LOGICOR T_OP_LOGICAND T_OP_LOGICEQU
-%left T_OP_LOGICGT T_OP_LOGICLT T_OP_LOGICGE T_OP_LOGICLE T_OP_LOGICNE
-%left T_OP_ADD T_OP_SUB
-%left T_OP_OR T_OP_XOR T_OP_AND
-%left T_OP_SHL T_OP_SHR
-%left T_OP_MUL T_OP_DIV T_OP_MOD
-%left T_OP_NOT
-%left T_OP_DEF
-%left T_OP_BANK
-%left T_OP_SIN
-%left T_OP_COS
-%left T_OP_TAN
-%left T_OP_ASIN
-%left T_OP_ACOS
-%left T_OP_ATAN
-%left T_OP_ATAN2
-%left T_OP_FDIV
-%left T_OP_FMUL
-
-%left T_OP_STRCMP
-%left T_OP_STRIN
-%left T_OP_STRSUB
-%left T_OP_STRLEN
-%left T_OP_STRCAT
-%left T_OP_STRUPR
-%left T_OP_STRLWR
-
-%left NEG /* negation--unary minus */
-
-%token <tzSym> T_LABEL
-%token <tzSym> T_ID
-%token <tzSym> T_POP_EQU
-%token <tzSym> T_POP_SET
-%token <tzSym> T_POP_EQUS
-
-%token T_POP_INCLUDE T_POP_PRINTF T_POP_PRINTT T_POP_PRINTV T_POP_IF T_POP_ELSE T_POP_ENDC
-%token T_POP_IMPORT T_POP_EXPORT T_POP_GLOBAL
-%token T_POP_DB T_POP_DS T_POP_DW T_POP_DL
-%token T_POP_SECTION
-%token T_POP_RB
-%token T_POP_RW
-%token T_POP_RL
-%token T_POP_MACRO
-%token T_POP_ENDM
-%token T_POP_RSRESET T_POP_RSSET
-%token T_POP_INCBIN T_POP_REPT
-%token T_POP_SHIFT
-%token T_POP_ENDR
-%token T_POP_FAIL
-%token T_POP_WARN
-%token T_POP_PURGE
-%token T_POP_POPS
-%token T_POP_PUSHS
-%token T_POP_POPO
-%token T_POP_PUSHO
+%{
+#include "symbol.h"
+#include "asm.h"
+#include "output.h"
+#include "mylink.h"
+#include "fstack.h"
+#include "mymath.h"
+#include "rpn.h"
+#include "main.h"
+#include "lexer.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+char *tzNewMacro;
+ULONG ulNewMacroSize;
+
+ULONG symvaluetostring( char *dest, char *sym )
+{
+ if( sym_isString(sym) )
+ strcpy( dest, sym_GetStringValue(sym) );
+ else
+ sprintf( dest, "$%lX", sym_GetConstantValue(sym) );
+
+ return( strlen(dest) );
+}
+
+ULONG str2int( char *s )
+{
+ ULONG r=0;
+ while( *s )
+ {
+ r<<=8;
+ r|=(UBYTE)(*s++);
+ }
+ return( r );
+}
+
+ULONG isWhiteSpace( char s )
+{
+ return( s==' ' || s=='\t' || s=='\0' || s=='\n' );
+}
+
+ULONG isRept( char *s )
+{
+ return( (strnicmp(s,"REPT",4)==0) && isWhiteSpace(*(s-1)) && isWhiteSpace(s[4]) );
+}
+
+ULONG isEndr( char *s )
+{
+ return( (strnicmp(s,"Endr",4)==0) && isWhiteSpace(*(s-1)) && isWhiteSpace(s[4]) );
+}
+
+void copyrept( void )
+{
+ SLONG level=1, len, instring=0;
+ char *src=pCurrentBuffer->pBuffer;
+
+ while( *src && level )
+ {
+ if( instring==0 )
+ {
+ if( isRept(src) )
+ {
+ level+=1;
+ src+=4;
+ }
+ else if( isEndr(src) )
+ {
+ level-=1;
+ src+=4;
+ }
+ else
+ {
+ if( *src=='\"' )
+ instring=1;
+ src+=1;
+ }
+ }
+ else
+ {
+ if( *src=='\\' )
+ {
+ src+=2;
+ }
+ else if( *src=='\"' )
+ {
+ src+=1;
+ instring=0;
+ }
+ else
+ {
+ src+=1;
+ }
+ }
+ }
+
+ len=src-pCurrentBuffer->pBuffer-4;
+
+ src=pCurrentBuffer->pBuffer;
+ ulNewMacroSize=len;
+
+ if( (tzNewMacro=(char *)malloc(ulNewMacroSize+1))!=NULL )
+ {
+ ULONG i;
+
+ tzNewMacro[ulNewMacroSize]=0;
+ for( i=0; i<ulNewMacroSize; i+=1 )
+ {
+ if( (tzNewMacro[i]=src[i])=='\n' )
+ nLineNo+=1;
+ }
+ }
+ else
+ fatalerror( "No mem for REPT block" );
+
+ yyskipbytes( ulNewMacroSize+4 );
+
+}
+
+ULONG isMacro( char *s )
+{
+ return( (strnicmp(s,"MACRO",4)==0) && isWhiteSpace(*(s-1)) && isWhiteSpace(s[5]) );
+}
+
+ULONG isEndm( char *s )
+{
+ return( (strnicmp(s,"Endm",4)==0) && isWhiteSpace(*(s-1)) && isWhiteSpace(s[4]) );
+}
+
+void copymacro( void )
+{
+ SLONG level=1, len, instring=0;
+ char *src=pCurrentBuffer->pBuffer;
+
+ while( *src && level )
+ {
+ if( instring==0 )
+ {
+ if( isMacro(src) )
+ {
+ level+=1;
+ src+=4;
+ }
+ else if( isEndm(src) )
+ {
+ level-=1;
+ src+=4;
+ }
+ else
+ {
+ if( *src=='\"' )
+ instring=1;
+ src+=1;
+ }
+ }
+ else
+ {
+ if( *src=='\\' )
+ {
+ src+=2;
+ }
+ else if( *src=='\"' )
+ {
+ src+=1;
+ instring=0;
+ }
+ else
+ {
+ src+=1;
+ }
+ }
+ }
+
+ len=src-pCurrentBuffer->pBuffer-4;
+
+ src=pCurrentBuffer->pBuffer;
+ ulNewMacroSize=len;
+
+ if( (tzNewMacro=(char *)malloc(ulNewMacroSize+2))!=NULL )
+ {
+ ULONG i;
+
+ tzNewMacro[ulNewMacroSize]='\n';
+ tzNewMacro[ulNewMacroSize+1]=0;
+ for( i=0; i<ulNewMacroSize; i+=1 )
+ {
+ if( (tzNewMacro[i]=src[i])=='\n' )
+ nLineNo+=1;
+ }
+ }
+ else
+ fatalerror( "No mem for MACRO definition" );
+
+ yyskipbytes( ulNewMacroSize+4 );
+}
+
+ULONG isIf( char *s )
+{
+ return( (strnicmp(s,"If",2)==0) && isWhiteSpace(*(s-1)) && isWhiteSpace(s[2]) );
+}
+
+ULONG isElse( char *s )
+{
+ return( (strnicmp(s,"Else",4)==0) && isWhiteSpace(*(s-1)) && isWhiteSpace(s[4]) );
+}
+
+ULONG isEndc( char *s )
+{
+ return( (strnicmp(s,"Endc",4)==0) && isWhiteSpace(*(s-1)) && isWhiteSpace(s[4]) );
+}
+
+void if_skip_to_else( void )
+{
+ SLONG level=1, len, instring=0;
+ char *src=pCurrentBuffer->pBuffer;
+
+ while( *src && level )
+ {
+ if( *src=='\n' )
+ nLineNo+=1;
+
+ if( instring==0 )
+ {
+ if( isIf(src) )
+ {
+ level+=1;
+ src+=2;
+ }
+ else if( level==1 && isElse(src) )
+ {
+ level-=1;
+ src+=4;
+ }
+ else if( isEndc(src) )
+ {
+ level-=1;
+ if( level!=0 )
+ src+=4;
+ }
+ else
+ {
+ if( *src=='\"' )
+ instring=1;
+ src+=1;
+ }
+ }
+ else
+ {
+ if( *src=='\\' )
+ {
+ src+=2;
+ }
+ else if( *src=='\"' )
+ {
+ src+=1;
+ instring=0;
+ }
+ else
+ {
+ src+=1;
+ }
+ }
+ }
+
+ len=src-pCurrentBuffer->pBuffer;
+
+ yyskipbytes( len );
+ yyunput( '\n' );
+ nLineNo-=1;
+}
+
+void if_skip_to_endc( void )
+{
+ SLONG level=1, len, instring=0;
+ char *src=pCurrentBuffer->pBuffer;
+
+ while( *src && level )
+ {
+ if( *src=='\n' )
+ nLineNo+=1;
+
+ if( instring==0 )
+ {
+ if( isIf(src) )
+ {
+ level+=1;
+ src+=2;
+ }
+ else if( isEndc(src) )
+ {
+ level-=1;
+ if( level!=0 )
+ src+=4;
+ }
+ else
+ {
+ if( *src=='\"' )
+ instring=1;
+ src+=1;
+ }
+ }
+ else
+ {
+ if( *src=='\\' )
+ {
+ src+=2;
+ }
+ else if( *src=='\"' )
+ {
+ src+=1;
+ instring=0;
+ }
+ else
+ {
+ src+=1;
+ }
+ }
+ }
+
+ len=src-pCurrentBuffer->pBuffer;
+
+ yyskipbytes( len );
+ yyunput( '\n' );
+ nLineNo-=1;
+}
+
+
+#ifdef PCENGINE
+ULONG ZP( struct Expression *expr )
+{
+ return( (!rpn_isReloc(expr)) && (expr->nVal>0x1FFF) && (expr->nVal<0x2100) );
+}
+
+void out_ZPByte( struct Expression *expr )
+{
+ if( rpn_isReloc(expr) )
+ {
+ rpn_CheckZP(expr,expr);
+ out_RelByte(expr);
+ }
+ else
+ {
+ if( ZP(expr) )
+ out_AbsByte(expr->nVal-0x2000);
+ else
+ fatalerror( "Value not in zeropage");
+ }
+}
+#endif
+
+%}
+
+%union
+{
+ char tzSym[MAXSYMLEN+1];
+ char tzString[256];
+ struct Expression sVal;
+ SLONG nConstValue;
+}
+
+%type <sVal> relocconst
+%type <nConstValue> const
+%type <nConstValue> const_3bit
+%type <sVal> const_8bit
+%type <sVal> const_16bit
+%type <sVal> const_PCrel
+%type <nConstValue> sectiontype
+
+%type <tzString> string
+
+%token <nConstValue> T_NUMBER
+%token <tzString> T_STRING
+
+%left T_OP_LOGICNOT
+%left T_OP_LOGICOR T_OP_LOGICAND T_OP_LOGICEQU
+%left T_OP_LOGICGT T_OP_LOGICLT T_OP_LOGICGE T_OP_LOGICLE T_OP_LOGICNE
+%left T_OP_ADD T_OP_SUB
+%left T_OP_OR T_OP_XOR T_OP_AND
+%left T_OP_SHL T_OP_SHR
+%left T_OP_MUL T_OP_DIV T_OP_MOD
+%left T_OP_NOT
+%left T_OP_DEF
+%left T_OP_BANK
+%left T_OP_SIN
+%left T_OP_COS
+%left T_OP_TAN
+%left T_OP_ASIN
+%left T_OP_ACOS
+%left T_OP_ATAN
+%left T_OP_ATAN2
+%left T_OP_FDIV
+%left T_OP_FMUL
+
+%left T_OP_STRCMP
+%left T_OP_STRIN
+%left T_OP_STRSUB
+%left T_OP_STRLEN
+%left T_OP_STRCAT
+%left T_OP_STRUPR
+%left T_OP_STRLWR
+
+%left NEG /* negation--unary minus */
+
+%token <tzSym> T_LABEL
+%token <tzSym> T_ID
+%token <tzSym> T_POP_EQU
+%token <tzSym> T_POP_SET
+%token <tzSym> T_POP_EQUS
+
+%token T_POP_INCLUDE T_POP_PRINTF T_POP_PRINTT T_POP_PRINTV T_POP_IF T_POP_ELSE T_POP_ENDC
+%token T_POP_IMPORT T_POP_EXPORT T_POP_GLOBAL
+%token T_POP_DB T_POP_DS T_POP_DW T_POP_DL
+%token T_POP_SECTION
+%token T_POP_RB
+%token T_POP_RW
+%token T_POP_RL
+%token T_POP_MACRO
+%token T_POP_ENDM
+%token T_POP_RSRESET T_POP_RSSET
+%token T_POP_INCBIN T_POP_REPT
+%token T_POP_SHIFT
+%token T_POP_ENDR
+%token T_POP_FAIL
+%token T_POP_WARN
+%token T_POP_PURGE
+%token T_POP_POPS
+%token T_POP_PUSHS
+%token T_POP_POPO
+%token T_POP_PUSHO
%token T_POP_OPT
\ No newline at end of file