That code is non-portable since it contains non-standard C. The interrupt keyword and the "@" syntax are not allowed in C. I would advise to write the vector table in pure ISO C:
/* CW .PRM file (example for HCS12) */
...
VECTOR_RESERVED = NO_INIT 0xFF80 TO 0xFF8B;
VECTOR_TABLE = READ_ONLY 0xFF8C TO 0xFFFF;
...
VECTORS INTO VECTOR_TABLE;
...
ENTRIES
vector_table
END
/* vector_table.h */
...
#pragma CONST_SEG VECTORS
extern void (* const vector_table[])(void);
#pragma CONST_SEG DEFAULT
...
/* vector_table.c */
#include "vector_table.h"
extern void some_interrupt (void);
extern void some_other_interrupt (void);
#pragma CONST_SEG VECTORS
void (* const vector_table[])(void) =
{
some_interrupt,
some_other_interrupt,
...
};
/* some peripheral file for the app */
#pragma TRAP_PROC
void some_interrupt (void)
{
...
}