Basics
PASM has a simple syntax. Each statement stands on its own line. Statements begin with a Parrot instruction code (commonly referred to as an “opcode”). Arguments follow the opcode, separated by commas:
[label] opcode dest, source, source . . .
If the opcode returns a result, it is stored in the first argument. Sometimes the first register is both a source value and the destination of the result. The arguments are either registers or constants, though only source arguments can be constants:
LABEL: print "The answer is: " print 42 print "\n" end # halt the interpreter
A label names a line of code so other instructions can refer to it. Label names consist of letters, numbers, and underscores. Simple labels are often all caps to make them stand out more clearly. A label definition is simply the name of the label followed by a colon. It can be on its own line:
LABEL: print "Norwegian Blue\n"
or before a statement on the same line:
LABEL: print "Norwegian Blue\n"
Comments are marked with the hash sign (#
) and
continue to the end of the line.
POD (plain old documentation) markers are ignored by Parrot. An
equals sign in the first column marks the start of a POD
block, and a =cut
marks the end of a POD block.
=head1 . . . =cut
Constants
Integer constants are
signed
integers.[30] Integer constants can have a positive
(+
) or negative (-
) sign in
front. Binary integers are preceded by 0b
or
0B
, and hexadecimal integers are preceded by
0x
or 0X
:
print 42 # integer constant print 0x2A # hexadecimal ...
Get Perl 6 and Parrot Essentials, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.