aboutsummaryrefslogtreecommitdiff
path: root/DESIGN-NOTES.md
diff options
context:
space:
mode:
authorZoffix Znet <cpan@zoffix.com>2015-12-05 14:52:45 -0500
committerZoffix Znet <cpan@zoffix.com>2015-12-05 14:52:45 -0500
commitccbd5ff10ce1fa1a2025a540635bc1c939484098 (patch)
treece8afe928d0241332f5c4470ca21a370a9061ad9 /DESIGN-NOTES.md
parentf4e9d98cee046fcd70bc3bcca4b2555f38254b28 (diff)
Barely-working grammar
Diffstat (limited to 'DESIGN-NOTES.md')
-rw-r--r--DESIGN-NOTES.md41
1 files changed, 41 insertions, 0 deletions
diff --git a/DESIGN-NOTES.md b/DESIGN-NOTES.md
index b91ec73..84b93a7 100644
--- a/DESIGN-NOTES.md
+++ b/DESIGN-NOTES.md
@@ -23,3 +23,44 @@ Each IRC message may consist of up to three main parts: the prefix (optional),
the command, and the command parameters (of which there may be up to 15). The
prefix, command, and all parameters are separated by one (or more) ASCII space
character(s) (0x20).
+
+***Clients should not use prefix when sending a message from themselves;***
+
+The command must either be a valid IRC command or a three (3) digit number represented in ASCII text.
+
+IRC messages are always lines of characters terminated with a CR-LF (Carriage Return - Line Feed) pair, and these messages shall ***not exceed 512 characters*** in length, counting all characters **including the trailing CR-LF**. Thus, there are 510 characters maximum allowed for the command and its parameters. There is no provision for continuation message lines. See section 7 for more details about current implementations.
+
+
+The BNF representation for this is:
+
+::=
+
+[':' <prefix> <SPACE> ] <command> <params> <crlf>
+
+::=
+
+<servername> | <nick> [ '!' <user> ] [ '@' <host> ]
+
+::=
+
+<letter> { <letter> } | <number> <number> <number>
+
+::=
+
+' ' { ' ' }
+
+::=
+
+<SPACE> [ ':' <trailing> | <middle> <params> ]
+
+::=
+
+<Any *non-empty* sequence of octets not including SPACE or NUL or CR or LF, the first of which may not be ':'>
+
+::=
+
+<Any, possibly *empty*, sequence of octets not including NUL or CR or LF>
+
+::=
+
+CR LF