2011-10-22 37 views
1

This code snippet这是在OPA书延长“hello_chat”的尝试,是提高奇怪的语法错误如下:语法错误解析<表达式一元“ - ”>

[[email protected] Peyk]$ opa main.opa 
In main.opa [24:2-24:2 | global chars=600-600] 
Syntax error at line 24, column 2 
The error may be in the following citation, usually in the red part (starting at ⚐) or just before: 
<<(
    net = Network.cloud("PEYK") 
    room_name = Dom.get_value(#room) 
    server_channel = "{room_name}__SERVER" 
    Network.add(room_name, net) 
    ⚐Network.add(server_channel, net) 

    user = String.to_lower(Dom.get_value(#user)) 
    do notify_room_join(server_channel, user) 

>> 
Hint: expected "" or "%" or "&" or ")" or "*" or "," or "->" or "/" or "/*" or "//" or ":" or "<" or "<-" or "=" or "?" or "@" or "|" or "||" or ' ' or ' ' or '+' or '-' or '^' or <spacing> or <xhtml> 
(while parsing <expression unary '-'> starting at line 23, column 2) 
Error 
Syntax error 

也许我做了一些愚蠢的错误但约4小时后却找不出来源。我会很感激任何提示/帮助。 TIA,

-
巴曼

+0

更正:http://pastebin.com/NWMFiCqT – Fred

回答

2

不要忘记把做你的函数返回void前 my_fun;)

+0

好极了!谢谢。我想的是完全相反的:仅仅因为他们返回'void',他们不需要'do' :-)只是好奇的是,这些被认为是语法错误还是语义错误? –

+0

我猜语义错误,不知道:) – Fred

+0

他们实际上是语法错误。一个函数只能有一个表达式(它是返回值),并且只能绑定('x = ...')和'do'表达式。 – akoprowski