tools/protocolParser.hs
author unc0rr
Sat, 25 Apr 2015 23:46:09 +0300
branchqmlfrontend
changeset 10900 6a805e822074
parent 10898 f373838129c2
child 10902 29519fe63fdd
permissions -rw-r--r--
Some hedgewars coding a week keeps doctor away
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10898
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
     1
module Main where
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
     2
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
     3
import Text.PrettyPrint.HughesPJ
10900
6a805e822074 Some hedgewars coding a week keeps doctor away
unc0rr
parents: 10898
diff changeset
     4
import Data.Tree
10898
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
     5
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
     6
data HWProtocol = Command String [CmdParam]
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
     7
data CmdParam = Skip
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
     8
              | SS
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
     9
              | LS
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    10
              | IntP
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    11
              | Many [CmdParam]
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    12
data ClientStates = NotConnected
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    13
                  | JustConnected
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    14
                  | ServerAuth
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    15
                  | Lobby
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    16
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    17
cmd = Command
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    18
cmd1 s p = Command s [p]
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    19
cmd2 s p1 p2 = Command s [p1, p2]
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    20
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    21
commands = [
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    22
        cmd "CONNECTED" [Skip, IntP]
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    23
        , cmd1 "NICK" SS
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    24
        , cmd1 "PROTO" IntP
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    25
        , cmd1 "ASKPASSWORD" SS
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    26
        , cmd1 "SERVER_AUTH" SS
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    27
        , cmd1 "LOBBY:JOINED" $ Many [SS]
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    28
    ]
f373838129c2 Some futher work on flib net client part
unc0rr
parents:
diff changeset
    29
10900
6a805e822074 Some hedgewars coding a week keeps doctor away
unc0rr
parents: 10898
diff changeset
    30
pas = 
6a805e822074 Some hedgewars coding a week keeps doctor away
unc0rr
parents: 10898
diff changeset
    31
    
6a805e822074 Some hedgewars coding a week keeps doctor away
unc0rr
parents: 10898
diff changeset
    32
main = putStrLn $ render pas