0
0
mirror of https://github.com/netwide-assembler/nasm.git synced 2025-11-08 23:27:15 -05:00
Files
nasm/asm/directiv.dat
H. Peter Anvin (Intel) c0aec6969b directives: correctly handle quoted strings in directives
Quoted strings should be valid inside directives, including ones that
contain a ] character. Also check for garbage on the line after the
directive.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-10-10 10:41:09 -07:00

128 lines
2.6 KiB
Plaintext

;; SPDX-License-Identifier: BSD-2-Clause
;; Copyright 1996-2025 The NASM Authors - All Rights Reserved
;;
;; List of global NASM directives and pragma operations codes
;;
;; ALL directives, including backend-specific, need to be added here.
;;
;; %pragma operation keywords (the second word, after facility) MAY
;; be added here too to assist in parsing, but it is not required.
;; See the definition of struct pragma in include/nasm.h.
;;
;; The same keyword can be used as a directive and as a pragma
;; operation, or as pragma operations in different namespaces. The
;; same D_ constant will be used for both, and this is perfectly
;; acceptable.
;;
;; In the future, this will be turned into a general list of keywords
;; to be parsed in special contexts.
;;
;; #special tokens are used to separate different classes of tokens.
;; Make sure to add new tokens to the correct place. If a token is used
;; in both a directive and in pragmas, they should be in the directive
;; part of the list. Tokens used in pragmas *only* go at the end of the
;; list.
;;
; --- General configuration
#name directive
#prefix D_
#errval D_unknown
#header directiv.h
; --- Special enum values
; These must be first in the list.
#special none = 0 ; Must be zero
#special unknown
#special corrupt
; --- True directives
; These tokens are accepted as directives by the global code or
; ignored if not implemented.
; --- Global directives
absolute
bits
common
cpu
debug
default
dollarhex
extern
float
global
list
pragma
required
sectalign
section
segment
static
warning
; --- Common output directives/pragmas
prefix
suffix
postfix
gprefix
gsuffix
gpostfix
lprefix
lsuffix
lpostfix
; --- Pseudo-op list, for the benefit of %isdirective
; Tokens put in this part will be rejected as either directives or
; pragmas
#special pseudo_ops
db
dw
dd
dq
dt
do
dy
dz
resb
resw
resd
resq
rest
reso
resy
resz
incbin
equ
; --- Format-specific directives
; Tokens put in this part of the list will be forwarded to the
; backend ofmt->directive() method.
#special ofmt
export ; outcoff, outobj
group ; outobj
import ; outobj
library ; outrdf2
map ; outbin
module ; outrdf2
org ; outbin
osabi ; outelf
safeseh ; outcoff
uppercase ; outieee, outobj
; --- The following are tokens used in pragmas, not actual directives.
; They will not be accepted as directives.
#special pragma_tokens
; --- Assembler pragmas
limit
; --- Listing pragmas
options
; --- Backend-specific pragmas
subsections_via_symbols ; macho
no_dead_strip ; macho
maxdump ; dbg
nodepend ; obj
noseclabels ; dbg