mirror of
https://github.com/irmen/prog8.git
synced 2024-07-13 12:29:05 +00:00
identifiers can no longer start with an underscore. (this interfered with 64tass syntax)
This commit is contained in:
parent
89f46222d9
commit
20cdcc673b
@ -157,7 +157,7 @@ Directives
|
|||||||
Identifiers
|
Identifiers
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
Naming things in Prog8 is done via valid *identifiers*. They start with a letter or underscore,
|
Naming things in Prog8 is done via valid *identifiers*. They start with a letter,
|
||||||
and after that, a combination of letters, numbers, or underscores. Examples of valid identifiers::
|
and after that, a combination of letters, numbers, or underscores. Examples of valid identifiers::
|
||||||
|
|
||||||
a
|
a
|
||||||
@ -165,7 +165,7 @@ and after that, a combination of letters, numbers, or underscores. Examples of v
|
|||||||
monkey
|
monkey
|
||||||
COUNTER
|
COUNTER
|
||||||
Better_Name_2
|
Better_Name_2
|
||||||
_something_strange_
|
something_strange__
|
||||||
|
|
||||||
|
|
||||||
Code blocks
|
Code blocks
|
||||||
|
@ -5,54 +5,33 @@
|
|||||||
|
|
||||||
main {
|
main {
|
||||||
|
|
||||||
; todo make it possible to use cpu opcodes as varnames such as 'nop'
|
; todo make it possible to use cpu opcodes as varnames such as 'nop' by prefixing all asm vars with something such as '_'
|
||||||
|
|
||||||
sub start() {
|
sub start() {
|
||||||
|
|
||||||
byte ub
|
byte nop2
|
||||||
word uw
|
|
||||||
ubyte x = 1
|
|
||||||
ubyte z = 0
|
|
||||||
|
|
||||||
ubyte[] array = [1,2,3]
|
nop2=4
|
||||||
|
nop2++
|
||||||
|
foo.xxx()
|
||||||
|
|
||||||
ubyte i
|
derp:
|
||||||
ub = %00100001
|
goto main.nop2
|
||||||
for i in 0 to 9 {
|
main.nop2()
|
||||||
c64scr.print_ubbin(ub as ubyte, true)
|
}
|
||||||
c64.CHROUT('\n')
|
|
||||||
;ub <<= 1
|
sub nop2 () {
|
||||||
;ub <<= x
|
|
||||||
ub <<= (z+1)
|
|
||||||
}
|
|
||||||
c64.CHROUT('\n')
|
c64.CHROUT('\n')
|
||||||
;ub = %11000110 ; -123
|
|
||||||
ub = -123
|
|
||||||
for i in 0 to 9 {
|
|
||||||
c64scr.print_ubbin(ub as ubyte, true)
|
|
||||||
c64.CHROUT('\n')
|
|
||||||
;ub >>= 1
|
|
||||||
;ub >>= x
|
|
||||||
ub >>= (z+1)
|
|
||||||
}
|
|
||||||
|
|
||||||
uw = %0011100000000011
|
|
||||||
for i in 0 to 17 {
|
|
||||||
c64scr.print_uwbin(uw as uword, true)
|
|
||||||
c64.CHROUT('\n')
|
|
||||||
;uw <<= 1
|
|
||||||
;uw <<= x
|
|
||||||
uw <<= (z+1)
|
|
||||||
}
|
|
||||||
c64.CHROUT('\n')
|
|
||||||
uw = -12345
|
|
||||||
;uw = %1110000011000100
|
|
||||||
for i in 0 to 17 {
|
|
||||||
c64scr.print_uwbin(uw as uword, true)
|
|
||||||
c64.CHROUT('\n')
|
|
||||||
;uw >>= 1
|
|
||||||
;uw >>= x
|
|
||||||
uw >>= (z+1)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foo {
|
||||||
|
|
||||||
|
sub xxx() {
|
||||||
|
|
||||||
|
bar:
|
||||||
|
goto bar
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -20,7 +20,7 @@ WS : [ \t] -> skip ;
|
|||||||
EOL : [\r\n]+ ;
|
EOL : [\r\n]+ ;
|
||||||
// WS2 : '\\' EOL -> skip;
|
// WS2 : '\\' EOL -> skip;
|
||||||
VOID: 'void';
|
VOID: 'void';
|
||||||
NAME : [a-zA-Z_][a-zA-Z0-9_]* ;
|
NAME : [a-zA-Z][a-zA-Z0-9_]* ;
|
||||||
DEC_INTEGER : ('0'..'9') | (('1'..'9')('0'..'9')+);
|
DEC_INTEGER : ('0'..'9') | (('1'..'9')('0'..'9')+);
|
||||||
HEX_INTEGER : '$' (('a'..'f') | ('A'..'F') | ('0'..'9'))+ ;
|
HEX_INTEGER : '$' (('a'..'f') | ('A'..'F') | ('0'..'9'))+ ;
|
||||||
BIN_INTEGER : '%' ('0' | '1')+ ;
|
BIN_INTEGER : '%' ('0' | '1')+ ;
|
||||||
|
Loading…
Reference in New Issue
Block a user