fbpx
Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1

TOPIC: creating defines using keyword names

creating defines using keyword names 7 months 4 weeks ago #6604

  Karl-Heinz's Avatar Topic Author Karl-Heinz Offline Posts: 269
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

Please Log in or Create an account to join the conversation.

creating defines using keyword names 7 months 4 weeks ago #6606

  FFF's Avatar FFF Away Posts: 577
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

Please Log in or Create an account to join the conversation.

creating defines using keyword names 7 months 4 weeks ago #6607

  robert's Avatar robert Offline Posts: 1001
Karl-Heinz

Positional Keywords...

Robert
XSharp Development Team
The Netherlands
This email address is being protected from spambots. You need JavaScript enabled to view it.

Please Log in or Create an account to join the conversation.

creating defines using keyword names 7 months 4 weeks ago #6610

  Chris's Avatar Chris Away Posts: 1181
...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
XSharp Development Team
chris(at)xsharp.eu

Please Log in or Create an account to join the conversation.

creating defines using keyword names 7 months 4 weeks ago #6614

  Karl-Heinz's Avatar Topic Author Karl-Heinz Offline Posts: 269
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

Please Log in or Create an account to join the conversation.

  • Page:
  • 1