summary refs log tree commit diff stats
path: root/compiler/wordrecg.nim
Commit message (Collapse)AuthorAgeFilesLines
* added undocumented exportNims pragma for Nimscript supportAraq2015-10-031-2/+3
|
* implement bitsize pragma for bitfieldsAman Gupta2015-09-281-0/+2
|
* fixes #2590; methods now require a .base annotationAraq2015-09-061-2/+3
|
* Introduce {.noRewrite.} expr pragma disabling TRAdam Strzelecki2015-06-021-2/+2
| | | | | | | | | | | | | | Term rewriting macros/templates are currently greedy and they will rewrite as long as there is a match. So there was no way to ensure some rewrite happens only once, eg. when rewriting term to same term plus extra content. With new macro we can actually prevent further rewriting on marked expr or stmts, eg. with given example echo(...) will be rewritten just once: template pwnEcho{echo(x)}(x: expr) = {.noRewrite.}: echo("pwned!") echo "ab"
* breaking change: 'concept' is now a keyword and used instead of 'generic'Araq2015-03-231-2/+2
|
* 'constructor' pragma for C++ supportAraq2015-03-181-57/+57
|
* Happy new year!Guillaume Gelin2015-01-061-1/+1
|
* destuctors are experimental; 'func' is now a keywordAraq2014-12-101-2/+2
|
* implemented 'experimental' switchAraq2014-12-051-2/+3
|
* implements 'defer'Araq2014-12-041-2/+2
|
* implemented 'guard' annotationAraq2014-09-211-2/+2
|
* Nimrod renamed to NimAraq2014-08-281-1/+1
|
* 'lambda' is no keyword anymoreAraq2014-08-081-2/+2
|
* progress on deepCopyAraq2014-08-011-2/+2
|
* New concurrency model: next stepsAraq2014-04-191-5/+6
|
* first version of 'spawn'Araq2014-04-161-1/+2
|
* new concurrency model: first steps; shared is not a keyword anymoreAraq2014-04-141-2/+2
|
* Added support for {.packed.} pragma on objectsAudun Wilhelmsen2014-03-181-2/+2
| | | | Added tests for packed and union pragmas
* implemented 'union' and 'unchecked' pragmasAraq2014-03-051-2/+2
|
* renamed noStackFrame to asmNoStackFrameAraq2014-02-181-2/+2
|
* case consistency part 4Araq2013-12-271-2/+2
|
* Merge branch 'master' of https://github.com/Araq/Nimrod into vm2Araq2013-12-231-2/+3
|\ | | | | | | | | Conflicts: web/news.txt
| * implemented 'injectStmt'; more debug supportAraq2013-12-161-2/+3
| |
* | bugfix: keywords are sortedAraq2013-12-051-5/+5
|/
* implemented the using statementZahary Karadjov2013-08-311-5/+5
|
* implemented delegators and improved the error messages of unmatched type classesZahary Karadjov2013-08-261-2/+4
|
* implemented computed goto supportAraq2013-08-131-2/+2
|
* implements the 'codegenDecl' pragmaAraq2013-06-271-2/+2
|
* implemented large parts of the 'not nil' checkingAraq2013-06-091-2/+2
|
* added a ``noforward`` pragma that enables a new compilation strategyZahary Karadjov2013-05-111-2/+2
| | | | not requiring forward declarations on a per-module basis
* Removes executable bit for text files.Grzegorz Adam Hankiewicz2013-03-161-0/+0
|
* made 'shared' a keywordAraq2012-11-221-2/+3
|
* implemented 'tags' pragmaAraq2012-11-111-3/+3
|
* bugfix: wrong assertions for C++ code generation; some solaris support; ↵Araq2012-10-301-4/+4
| | | | first steps to an effect system
* 'mixin' and 'interface' are now keywordsAraq2012-09-221-4/+5
|
* next steps towards term rewriting macros; simple examples workAraq2012-08-301-2/+2
|
* next steps to hygienic templatesAraq2012-08-201-2/+3
|
* first steps to make templates hygienicAraq2012-08-201-2/+2
|
* documentation improvements; added system.gorge (for Araq's fun)Araq2012-06-221-2/+2
|
* destructor pragmaZahary Karadjov2012-06-071-2/+2
|
* codegen for user-defined destructorsZahary Karadjov2012-05-251-1/+6
|
* more Objective-C and C keywords are now escapedZahary Karadjov2012-04-181-4/+12
|
* experimental support for preserving local variable names in the generated codeZahary Karadjov2012-04-131-7/+45
|
* Added ``global`` pragma that can be used to introduce new global variables ↵Zahary Karadjov2012-04-051-2/+2
| | | | from within procs
* merged branch overloading-for-macrosZahary Karadjov2012-03-191-2/+2
|\
| * bootstraps fine with overloadable templatesZahary Karadjov2012-03-141-2/+2
| |
* | first steps for cleaner static/const distinctionAraq2012-03-131-6/+8
|/
* bugfix: no need for arrows to be new token kindsAraq2012-02-121-2/+2
|
* `do' keyword in the grammar for lambda blocksZahary Karadjov2012-02-101-6/+10
|
* pragma on/off improvements; endb rewrittenAraq2012-01-281-2/+2
|
ar rcv_dg_outstanding*: Char rcv_any_outstanding*: Char PSessionBuffer* = ptr TSessionBuffer TSessionBuffer* {.final.} = object lsn*: Char state*: Char local_name*: array[0..NCBNAMSZ - 1, Char] remote_name*: array[0..NCBNAMSZ - 1, Char] rcvs_outstanding*: Char sends_outstanding*: Char const # Values for state LISTEN_OUTSTANDING* = 0x00000001 CALL_PENDING* = 0x00000002 SESSION_ESTABLISHED* = 0x00000003 HANGUP_PENDING* = 0x00000004 HANGUP_COMPLETE* = 0x00000005 SESSION_ABORTED* = 0x00000006 type # Structure returned to the NCB command NCBENUM. # On a system containing lana's 0, 2 and 3, a structure with # length =3, lana[0]=0, lana[1]=2 and lana[2]=3 will be returned. PLanaEnum* = ptr TLanaEnum TLanaEnum* {.final.} = object # Structure returned to the NCB command NCBFINDNAME is FIND_NAME_HEADER followed # by an array of FIND_NAME_BUFFER structures. len*: Char # Number of valid entries in lana[] lana*: array[0..MAX_LANA, Char] PFindNameHeader* = ptr TFindNameHeader TFindNameHeader* {.final.} = object node_count*: int16 reserved*: Char unique_group*: Char PFindNameBuffer* = ptr TFindNameBuffer TFindNameBuffer* {.final.} = object # Structure provided with NCBACTION. The purpose of NCBACTION is to provide # transport specific extensions to netbios. len*: Char access_control*: Char frame_control*: Char destination_addr*: array[0..5, Char] source_addr*: array[0..5, Char] routing_info*: array[0..17, Char] PActionHeader* = ptr TActionHeader TActionHeader* {.final.} = object transport_id*: int32 action_code*: int16 reserved*: int16 const # Values for transport_id ALL_TRANSPORTS* = "M\0\0\0" MS_NBF* = "MNBF" # Special values and constants const # NCB Command codes NCBCALL* = 0x00000010 # NCB CALL NCBLISTEN* = 0x00000011 # NCB LISTEN NCBHANGUP* = 0x00000012 # NCB HANG UP NCBSEND* = 0x00000014 # NCB SEND NCBRECV* = 0x00000015 # NCB RECEIVE NCBRECVANY* = 0x00000016 # NCB RECEIVE ANY NCBCHAINSEND* = 0x00000017 # NCB CHAIN SEND NCBDGSEND* = 0x00000020 # NCB SEND DATAGRAM NCBDGRECV* = 0x00000021 # NCB RECEIVE DATAGRAM NCBDGSENDBC* = 0x00000022 # NCB SEND BROADCAST DATAGRAM NCBDGRECVBC* = 0x00000023 # NCB RECEIVE BROADCAST DATAGRAM NCBADDNAME* = 0x00000030 # NCB ADD NAME NCBDELNAME* = 0x00000031 # NCB DELETE NAME NCBRESET* = 0x00000032 # NCB RESET NCBASTAT* = 0x00000033 # NCB ADAPTER STATUS NCBSSTAT* = 0x00000034 # NCB SESSION STATUS NCBCANCEL* = 0x00000035 # NCB CANCEL NCBADDGRNAME* = 0x00000036 # NCB ADD GROUP NAME NCBENUM* = 0x00000037 # NCB ENUMERATE LANA NUMBERS NCBUNLINK* = 0x00000070 # NCB UNLINK NCBSENDNA* = 0x00000071 # NCB SEND NO ACK NCBCHAINSENDNA* = 0x00000072 # NCB CHAIN SEND NO ACK NCBLANSTALERT* = 0x00000073 # NCB LAN STATUS ALERT NCBACTION* = 0x00000077 # NCB ACTION NCBFINDNAME* = 0x00000078 # NCB FIND NAME NCBTRACE* = 0x00000079 # NCB TRACE ASYNCH* = 0x00000080 # high bit set = asynchronous # NCB Return codes NRC_GOODRET* = 0x00000000 # good return # also returned when ASYNCH request accepted NRC_BUFLEN* = 0x00000001 # illegal buffer length NRC_ILLCMD* = 0x00000003 # illegal command NRC_CMDTMO* = 0x00000005 # command timed out NRC_INCOMP* = 0x00000006 # message incomplete, issue another command NRC_BADDR* = 0x00000007 # illegal buffer address NRC_SNUMOUT* = 0x00000008 # session number out of range NRC_NORES* = 0x00000009 # no resource available NRC_SCLOSED* = 0x0000000A # session closed NRC_CMDCAN* = 0x0000000B # command cancelled NRC_DUPNAME* = 0x0000000D # duplicate name NRC_NAMTFUL* = 0x0000000E # name table full NRC_ACTSES* = 0x0000000F # no deletions, name has active sessions NRC_LOCTFUL* = 0x00000011 # local session table full NRC_REMTFUL* = 0x00000012 # remote session table full NRC_ILLNN* = 0x00000013 # illegal name number NRC_NOCALL* = 0x00000014 # no callname NRC_NOWILD* = 0x00000015 # cannot put * in NCB_NAME NRC_INUSE* = 0x00000016 # name in use on remote adapter NRC_NAMERR* = 0x00000017 # name deleted NRC_SABORT* = 0x00000018 # session ended abnormally NRC_NAMCONF* = 0x00000019 # name conflict detected NRC_IFBUSY* = 0x00000021 # interface busy, IRET before retrying NRC_TOOMANY* = 0x00000022 # too many commands outstanding, retry later NRC_BRIDGE* = 0x00000023 # NCB_lana_num field invalid NRC_CANOCCR* = 0x00000024 # command completed while cancel occurring NRC_CANCEL* = 0x00000026 # command not valid to cancel NRC_DUPENV* = 0x00000030 # name defined by anther local process NRC_ENVNOTDEF* = 0x00000034 # environment undefined. RESET required NRC_OSRESNOTAV* = 0x00000035 # required OS resources exhausted NRC_MAXAPPS* = 0x00000036 # max number of applications exceeded NRC_NOSAPS* = 0x00000037 # no saps available for netbios NRC_NORESOURCES* = 0x00000038 # requested resources are not available NRC_INVADDRESS* = 0x00000039 # invalid ncb address or length > segment NRC_INVDDID* = 0x0000003B # invalid NCB DDID NRC_LOCKFAIL* = 0x0000003C # lock of user area failed NRC_OPENERR* = 0x0000003F # NETBIOS not loaded NRC_SYSTEM* = 0x00000040 # system error NRC_PENDING* = 0x000000FF # asynchronous command is not yet finished # main user entry point for NetBIOS 3.0 # Usage: Result = Netbios( pncb ); proc Netbios*(P: PNCB): Char{.stdcall, dynlib: "netapi32.dll", importc: "Netbios".} # implementation