i´m wondering why such defines are allowed ?
DEFINE ASSIGN := 11 AS INT
DEFINE FOR := 12 AS INT
DEFINE NEXT := "aa" AS STRING
DEFINE METHOD := 23 AS INT
DEFINE LOOP := 24 AS INT
DEFINE SEQUENCE := 25 AS INT
DEFINE FOREACH := 26 AS INT
DEFINE __ARGLIST := 34 AS INT
DEFINE DEFINE := 36 AS INT
DEFINE INT := 38 AS INT
DEFINE STRING := 40 AS INT
// DEFINE SELF := 41 AS INT // ok, error XS9002: Parser: mismatched input 'SELF'
// DEFINE SUPER := 42 AS INT // ok, error XS9002: Parser: mismatched input 'SUPER'
If i use fully qualified names, i can even access such defines
? speed.exe.Functions.METHOD
? speed.exe.Functions.SEQUENCE
? speed.exe.Functions.__ARGLIST
? speed.exe.Functions.DEFINE
? speed.exe.Functions.INT
? speed.exe.Functions.String
? speed.exe.Functions.next + "bb"
regards
Karl-Heinz
creating defines using keyword names
creating defines using keyword names
IIRC, because the compiler knows positional keywords, i.e., is smart. If it is smart to write such defines is another question <g,d&r>
Karl
Karl
Regards
Karl
(on Win8.1/64, Xide32 2.19, X#2.19.0.2.)
Karl
(on Win8.1/64, Xide32 2.19, X#2.19.0.2.)
creating defines using keyword names
Karl-Heinz
Positional Keywords...
Robert
Positional Keywords...
Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
The Netherlands
robert@xsharp.eu
creating defines using keyword names
...and you can use them also almost normally in your code, by prefixing them with @@, in the places where the parser does not allow them:
? @@METHOD
and you can also use this to define a define named "self":
DEFINE @@SELF := 41 AS INT
? @@METHOD
and you can also use this to define a define named "self":
DEFINE @@SELF := 41 AS INT
Chris Pyrgas
XSharp Development Team test
chris(at)xsharp.eu
XSharp Development Team test
chris(at)xsharp.eu
-
- Posts: 774
- Joined: Wed May 17, 2017 8:50 am
creating defines using keyword names
Oki doki,
because of an unwanted delete action I compiled in VO :
DEFINE for := 2
which results in a "bad global name". Tried immediately the same with x#, of course
>
> DEFINE @@SELF := 41 AS INT
>
very nice
regards
Karl-Heinz
because of an unwanted delete action I compiled in VO :
DEFINE for := 2
which results in a "bad global name". Tried immediately the same with x#, of course
>
> DEFINE @@SELF := 41 AS INT
>
very nice
regards
Karl-Heinz