|
From: <ma...@us...> - 2009-09-15 14:13:34
|
Revision: 332
http://scstudio.svn.sourceforge.net/scstudio/?rev=332&view=rev
Author: madzin
Date: 2009-09-15 14:13:20 +0000 (Tue, 15 Sep 2009)
Log Message:
-----------
Remove backtracking from the grammar. Add tests with missed elements
Modified Paths:
--------------
trunk/src/data/Z120/Context.cpp
trunk/src/data/Z120/Z120.g
trunk/tests/z120_test/CMakeLists.txt
trunk/tests/z120_test/z120_test51.mpr
Added Paths:
-----------
trunk/tests/z120_test/z120_test50.mpr.result
trunk/tests/z120_test/z120_test52.mpr
trunk/tests/z120_test/z120_test52.mpr.result
trunk/tests/z120_test/z120_test53.mpr
trunk/tests/z120_test/z120_test53.mpr.result
trunk/tests/z120_test/z120_test54.mpr
trunk/tests/z120_test/z120_test54.mpr.result
trunk/tests/z120_test/z120_test55.mpr
trunk/tests/z120_test/z120_test55.mpr.result
trunk/tests/z120_test/z120_test56.mpr
trunk/tests/z120_test/z120_test56.mpr.result
trunk/tests/z120_test/z120_test57.mpr
trunk/tests/z120_test/z120_test58.mpr
trunk/tests/z120_test/z120_test58.mpr.result
trunk/tests/z120_test/z120_test59.mpr
trunk/tests/z120_test/z120_test59.mpr.result
Modified: trunk/src/data/Z120/Context.cpp
===================================================================
--- trunk/src/data/Z120/Context.cpp 2009-09-14 20:06:35 UTC (rev 331)
+++ trunk/src/data/Z120/Context.cpp 2009-09-15 14:13:20 UTC (rev 332)
@@ -377,8 +377,24 @@
}
}
- InstancePtr instance = context->instances.find(context->element_name)->second;
+ InstancePtr instance;
+ std::map<std::string, InstancePtr>::iterator inst_it = context->instances.find(context->element_name);
+
+ if(inst_it == context->instances.end())
+ {
+ instance = new Instance(TOWSTRING(context->element_name));
+ context->instances.insert(std::make_pair(context->element_name, instance));
+ context->myBmsc->add_instance(instance);
+ context->open_instance++;
+ context->z->print_report(RS_WARNING,
+ stringize() << "Warning 23: Instance (" << TOWSTRING(context->element_name) << ") has not been started (e.g. " << TOWSTRING(context->element_name) << ": instance;)\n");
+ }
+ else
+ {
+ instance = inst_it->second;
+ }
+
if (instance->get_last() == NULL ||
context->coregion_area_finished.find(context->element_name) != context->coregion_area_finished.end())
{
@@ -532,8 +548,24 @@
}
}
- InstancePtr instance = context->instances.find(context->element_name)->second;
+ InstancePtr instance;
+ std::map<std::string, InstancePtr>::iterator inst_it = context->instances.find(context->element_name);
+
+ if(inst_it == context->instances.end())
+ {
+ instance = new Instance(TOWSTRING(context->element_name));
+ context->instances.insert(std::make_pair(context->element_name, instance));
+ context->myBmsc->add_instance(instance);
+ context->open_instance++;
+ context->z->print_report(RS_WARNING,
+ stringize() << "Warning 23: Instance (" << TOWSTRING(context->element_name) << ") has not been started (e.g. " << TOWSTRING(context->element_name) << ": instance;)\n");
+ }
+ else
+ {
+ instance = inst_it->second;
+ }
+
//add new strict area to instance if it is needed
if (instance->get_last() == NULL ||
context->coregion_area_finished.find(context->element_name) != context->coregion_area_finished.end())
Modified: trunk/src/data/Z120/Z120.g
===================================================================
--- trunk/src/data/Z120/Z120.g 2009-09-14 20:06:35 UTC (rev 331)
+++ trunk/src/data/Z120/Z120.g 2009-09-15 14:13:20 UTC (rev 332)
@@ -26,7 +26,8 @@
options
{
language = C;
- backtrack = true;
+// backtrack=true;
+ k=3;
}
//@rulecatch {
@@ -115,15 +116,12 @@
;
non_parenthesis:
- (non_par_non_escape | escapechar (escapechar | Character_String))
+ non_par_non_escape | (escapechar (escapechar | Character_String))
;
non_par_non_escape:
Character_String | NAME {bug_report_fun(context, "Warning: The file is breaking the ITU-T Z120 standard");}
-//('a'..'z' | 'A'..'Z' | '0'..'9'| '?' | '%' | '+' | '-' | '!' | '/' | '*' | '"' | '=' | '@' | '&' | '#' | '.' | '_' | '\'')+ { bug_report(context, "The file is breaking the Z120 standard");}
-
-
;
non_nestable_par:
@@ -171,7 +169,7 @@
add_z_fun(context, $my_z120);
}
}
- ((document_head | 'mscdocument' instance_kind end)? (message_sequence_chart)*)
+ (document_head)? (message_sequence_chart)*
{
check_references_fun(context);
$my_msc = get_total_msc_fun(context);
@@ -187,12 +185,12 @@
document_head:
'mscdocument' instance_kind ('related' 'to' sdl_reference)?
(inheritance)? end
- (parenthesis_declaration)?
+ ((parenthesis_declaration)?
data_definition
using_clause
containing_clause
message_decl_clause
- timer_decl_clause
+ timer_decl_clause)?
;
textual_defining_part:
@@ -389,8 +387,8 @@
{
set_event_name_fun(context, (char*) ($NAME.text->chars));
})?
- (message_event | incomplete_message_event |
- method_call_event | incomplete_method_call_event | create |
+ (message_event |
+// method_call_event | incomplete_method_call_event | create |
timer_statement | action)
('before' order_dest_list
{
@@ -465,17 +463,29 @@
;
message_output:
- 'out' msg_identification 'to' input_address
+ 'out' msg_identification 'to'
+ (input_address
{
message_fun(context, (char *)$msg_identification.text->chars, output);
}
+ | 'lost' (input_address)?
+ {
+ incomplete_message_fun(context, (char *) $msg_identification.text->chars, output);
+ }
+ )
;
message_input:
- 'in' msg_identification 'from' output_address
+ 'in' msg_identification 'from'
+ (output_address
{
message_fun(context, (char *)$msg_identification.text->chars, input);
}
+ | 'found' (output_address)?
+ {
+ incomplete_message_fun(context, (char *)$msg_identification.text->chars, input);
+ }
+ )
;
incomplete_message_event:
@@ -758,16 +768,13 @@
;
condition_text:
- condition_name_list | 'when' (condition_name_list | '(' expression ')') |
- 'otherwise'
+ name = condition_name_list { set_condition_name_fun(context, (char*) $name.text->chars); }
+ | 'when' (name = condition_name_list { set_condition_name_fun(context, (char*) $name.text->chars); } | '(' expression ')')
+ | 'otherwise'
;
condition_name_list:
- name = NAME
- {
- set_condition_name_fun(context, (char*) $name.text->chars);
- }
- (',' NAME)*
+ NAME (',' condition_name_list)?
;
shared:
@@ -791,7 +798,8 @@
starttimer:
'starttimer' NAME (',' NAME)?
- (duration)? ('(' parameter_list ')')?
+ (duration)?
+ ('(' parameter_list ')')?
;
duration:
@@ -885,7 +893,7 @@
;
equal_par:
- (unmatched_string equal_par)*
+ unmatched_string (equal_par)?
;
unmatched_string:
@@ -903,7 +911,7 @@
// ----- Declaring data
message_decl_list:
- message_decl (end message_decl_list)?
+ message_decl // (end message_decl_list)?
;
message_decl:
@@ -919,7 +927,8 @@
;
timer_decl:
- timer_name_list (duration)? (':' '(' type_ref_list ')')?
+ timer_name_list (duration)?
+ (':' '(' type_ref_list ')')?
;
timer_name_list:
@@ -999,12 +1008,13 @@
;
pattern:
- string | wildcard
+ //string | wildcard
+ NAME
;
-wildcard:
- string
-;
+//wildcard:
+// string
+//;
// ----- Data in message and timer paramerers
@@ -1014,7 +1024,7 @@
;
parameter_defn:
- binding | expression | pattern
+ binding | expression // | pattern
;
@@ -1487,7 +1497,7 @@
{
add_connect_name_fun(context, (char*) ($NAME.text->chars));
}
- ('alt' label_name_list)*
+ ('alt' label_name_list)?
;
node:
Modified: trunk/tests/z120_test/CMakeLists.txt
===================================================================
--- trunk/tests/z120_test/CMakeLists.txt 2009-09-14 20:06:35 UTC (rev 331)
+++ trunk/tests/z120_test/CMakeLists.txt 2009-09-15 14:13:20 UTC (rev 332)
@@ -70,8 +70,16 @@
ADD_Z120_TEST(z120_test47.mpr 1)
ADD_Z120_TEST(z120_test48.mpr 0)
ADD_Z120_TEST(z120_test49.mpr 1)
-ADD_Z120_TEST(z120_test50.mpr 0)
+ADD_Z120_TEST(z120_test50.mpr 1)
ADD_Z120_TEST(z120_test51.mpr 1)
+ADD_Z120_TEST(z120_test52.mpr 1)
+ADD_Z120_TEST(z120_test53.mpr 1)
+ADD_Z120_TEST(z120_test54.mpr 1)
+ADD_Z120_TEST(z120_test55.mpr 1)
+ADD_Z120_TEST(z120_test56.mpr 1)
+ADD_Z120_TEST(z120_test57.mpr 0)
+ADD_Z120_TEST(z120_test58.mpr 1)
+ADD_Z120_TEST(z120_test59.mpr 1)
# $Id$
Added: trunk/tests/z120_test/z120_test50.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test50.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_test50.mpr.result 2009-09-15 14:13:20 UTC (rev 332)
@@ -0,0 +1,18 @@
+z120_test50.mpr(8) : error 3 : 1377:1: node_definition : ( initial_node | final_node | intermediate_node );, at offset 4
+ near [Index: 28 (Start: 145601215-Stop: 145601218) ='NAME', type<11> Line: 8 LinePos:4]
+ : cannot match to any predicted input...
+Warning 08: There is reference to nonexisted node
+
+Warning 09: There is reference to nonexisted MSC
+
+OK: z120_test50 is correct, should be correct
+
+mscdocument z120_test50;
+msc Stranka1;
+initial connect L0;
+L0: connect L1;
+L1: reference NAME1 connect L2;
+L2: final;
+endmsc;
+msc NAME1;
+endmsc;
Modified: trunk/tests/z120_test/z120_test51.mpr
===================================================================
--- trunk/tests/z120_test/z120_test51.mpr 2009-09-14 20:06:35 UTC (rev 331)
+++ trunk/tests/z120_test/z120_test51.mpr 2009-09-15 14:13:20 UTC (rev 332)
@@ -1,6 +1,6 @@
/*****************************************************
Simple test of bmsc (event driven notification)
-
+Complete message with one event
******************************************************/
mscdocument bbb;
Added: trunk/tests/z120_test/z120_test52.mpr
===================================================================
--- trunk/tests/z120_test/z120_test52.mpr (rev 0)
+++ trunk/tests/z120_test/z120_test52.mpr 2009-09-15 14:13:20 UTC (rev 332)
@@ -0,0 +1,5 @@
+msc One;
+initial connect L0;
+L0: condition access,a connect L1;
+L1: final;
+endmsc;
Added: trunk/tests/z120_test/z120_test52.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test52.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_test52.mpr.result 2009-09-15 14:13:20 UTC (rev 332)
@@ -0,0 +1,8 @@
+OK: z120_test52 is correct, should be correct
+
+mscdocument z120_test52;
+msc One;
+initial connect L0;
+L0: condition access,a connect L1;
+L1: final;
+endmsc;
Added: trunk/tests/z120_test/z120_test53.mpr
===================================================================
--- trunk/tests/z120_test/z120_test53.mpr (rev 0)
+++ trunk/tests/z120_test/z120_test53.mpr 2009-09-15 14:13:20 UTC (rev 332)
@@ -0,0 +1,19 @@
+/***************************************************
+Example of bMSC with mesages with the same name.
+***************************************************/
+
+msc Stranka1;
+inst W
+inst Q;
+W: instance;
+out a to Q;
+out a to Q;
+out a to Q;
+endinstance;
+Q: instance;
+in a from W;
+in a from W;
+in a from W;
+endinstance;
+endmsc;
+
Added: trunk/tests/z120_test/z120_test53.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test53.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_test53.mpr.result 2009-09-15 14:13:20 UTC (rev 332)
@@ -0,0 +1,20 @@
+z120_test53.mpr(7) : error 3 : , at offset 0
+ near [Index: 11 (Start: 163857081-Stop: 163857084) ='inst', type<39> Line: 7 LinePos:0]
+ : cannot match to any predicted input...
+OK: z120_test53 is correct, should be correct
+
+mscdocument z120_test53;
+msc Stranka1;
+inst W;
+inst Q;
+W: instance;
+out a,0 to Q;
+out a,1 to Q;
+out a,2 to Q;
+endinstance;
+Q: instance;
+in a,0 from W;
+in a,1 from W;
+in a,2 from W;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_test54.mpr
===================================================================
--- trunk/tests/z120_test/z120_test54.mpr (rev 0)
+++ trunk/tests/z120_test/z120_test54.mpr 2009-09-15 14:13:20 UTC (rev 332)
@@ -0,0 +1,20 @@
+/*****************************************************
+Simple test of bmsc (event driven notification)
+Instance A does not start
+
+******************************************************/
+
+mscdocument bbb;
+msc pok2;
+B: instance;
+A: in A,1 from found;
+A: out jedna,2 to B;
+B: in jedna,2 from A;
+A: concurrent;
+A: out B1,3 to B;
+B: in B1,3 from A;
+A: out B,4 to lost;
+A: endconcurrent;
+A: endinstance;
+B: endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_test54.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test54.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_test54.mpr.result 2009-09-15 14:13:20 UTC (rev 332)
@@ -0,0 +1,21 @@
+Warning 23: Instance (A) has not been started (e.g. A: instance;)
+
+OK: z120_test54 is correct, should be correct
+
+mscdocument z120_test54;
+msc pok2;
+inst B;
+inst A;
+B: instance;
+in jedna,0 from A;
+in B1,1 from A;
+endinstance;
+A: instance;
+in A,2 from found;
+out jedna,0 to B;
+concurrent;
+label e0; out B,3 to lost;
+label e1; out B1,1 to B;
+endconcurrent;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_test55.mpr
===================================================================
--- trunk/tests/z120_test/z120_test55.mpr (rev 0)
+++ trunk/tests/z120_test/z120_test55.mpr 2009-09-15 14:13:20 UTC (rev 332)
@@ -0,0 +1,21 @@
+/*****************************************************
+Simple test of bmsc (event driven notification)
+Instance A does not start
+
+******************************************************/
+
+mscdocument bbb;
+msc pok2;
+B: instance;
+A: in A,1 from B;
+B: out A,1 to A;
+A: out jedna,2 to B;
+B: in jedna,2 from A;
+A: concurrent;
+A: out B1,3 to B;
+B: in B1,3 from A;
+A: out B,4 to lost;
+A: endconcurrent;
+A: endinstance;
+B: endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_test55.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test55.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_test55.mpr.result 2009-09-15 14:13:20 UTC (rev 332)
@@ -0,0 +1,22 @@
+Warning 23: Instance (A) has not been started (e.g. A: instance;)
+
+OK: z120_test55 is correct, should be correct
+
+mscdocument z120_test55;
+msc pok2;
+inst B;
+inst A;
+B: instance;
+out A,0 to A;
+in jedna,1 from A;
+in B1,2 from A;
+endinstance;
+A: instance;
+in A,0 from B;
+out jedna,1 to B;
+concurrent;
+label e0; out B1,2 to B;
+label e1; out B,3 to lost;
+endconcurrent;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_test56.mpr
===================================================================
--- trunk/tests/z120_test/z120_test56.mpr (rev 0)
+++ trunk/tests/z120_test/z120_test56.mpr 2009-09-15 14:13:20 UTC (rev 332)
@@ -0,0 +1,19 @@
+mscdocument z120_test18;
+msc Strnka1;
+initial connect L0;
+L0: reference bmsc1 connect L1;
+L1: final;
+endmsc;
+
+msc bmsc1;
+inst A;
+inst B;
+in no,0 from B;
+out ok,1 to B;
+endinstance;
+B: instance;
+out no,0 to A;
+in ok,1 from A;
+endinstance;
+endmsc;
+
Added: trunk/tests/z120_test/z120_test56.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test56.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_test56.mpr.result 2009-09-15 14:13:20 UTC (rev 332)
@@ -0,0 +1,26 @@
+z120_test56.mpr(11) : error 3 : ()+ loopback of 217:4: ( 'inst' instance_item )+, at offset 0
+ near [Index: 53 (Start: 159855249-Stop: 159855250) ='in', type<59> Line: 11 LinePos:0]
+ : cannot match to any predicted input...
+z120_test56.mpr(11) : error 3 : ()+ loopback of 217:4: ( 'inst' instance_item )+, at offset 0
+ near [Index: 53 (Start: 159855249-Stop: 159855250) ='in', type<59> Line: 11 LinePos:0]
+ : cannot match to any predicted input...
+z120_test56.mpr(11) : error 3 : 368:1: event_definition : ( NAME ':' instance_event_list | instance_name_list ':' multi_instance_event_list );, at offset 14
+ near [Index: 62 (Start: 159855263-Stop: 159855263) =';', type<26> Line: 11 LinePos:14]
+ : cannot match to any predicted input...
+Warning 05: There is complete message with only one event
+
+OK: z120_test56 is correct, should be correct
+
+mscdocument z120_test56;
+msc Strnka1;
+initial connect L0;
+L0: reference bmsc1 connect L1;
+L1: final;
+endmsc;
+msc bmsc1;
+inst B;
+B: instance;
+out no,0 to lost;
+in ok,1 from found;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_test57.mpr
===================================================================
--- trunk/tests/z120_test/z120_test57.mpr (rev 0)
+++ trunk/tests/z120_test/z120_test57.mpr 2009-09-15 14:13:20 UTC (rev 332)
@@ -0,0 +1,34 @@
+/***********************************************
+Example of bMSC
+
+Missing:
+ line 5: colon (client: instance;)
+ line 8: semi-colon (label e1; in know,1 from server;)
+ line 20: semi-colon (endconcurrent;)
+***********************************************/
+
+mscdocument Vkres2;
+msc Strnka1;
+inst client;
+inst server;
+client instance;
+concurrent;
+label e0; out no,0 to server;
+label e1 in know,1 from server;
+endconcurrent;
+out yes,2 to lost;
+concurrent;
+label e2; in tric,3 from server;
+endconcurrent;
+in tric,4 from found;
+endinstance;
+server: instance;
+in no,0 from client;
+concurrent;
+label e3; out know,1 to client;
+endconcurrent
+concurrent;
+label e4; out tric,3 to client;
+endconcurrent;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_test58.mpr
===================================================================
--- trunk/tests/z120_test/z120_test58.mpr (rev 0)
+++ trunk/tests/z120_test/z120_test58.mpr 2009-09-15 14:13:20 UTC (rev 332)
@@ -0,0 +1,33 @@
+/***********************************************
+Example of bMSC
+
+Missing:
+ line 8: semi-colon (label e1; in know,1 from server;)
+ line 20: semi-colon (endconcurrent;)
+***********************************************/
+
+mscdocument Vkres2;
+msc Strnka1;
+inst client;
+inst server;
+client: instance;
+concurrent;
+label e0; out no,0 to server;
+label e1 in know,1 from server;
+endconcurrent;
+out yes,2 to lost;
+concurrent;
+label e2; in tric,3 from server;
+endconcurrent;
+in tric,4 from found;
+endinstance;
+server: instance;
+in no,0 from client;
+concurrent;
+label e3; out know,1 to client;
+endconcurrent
+concurrent;
+label e4; out tric,3 to client;
+endconcurrent;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_test58.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test58.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_test58.mpr.result 2009-09-15 14:13:20 UTC (rev 332)
@@ -0,0 +1,33 @@
+z120_test58.mpr(16) : error 10 : Missing token, at offset 9
+ near [Index: 0 (Start: 0-Stop: 0) ='<missing ';'>', type<26> Line: 16 LinePos:9]
+ : Missing ';'
+z120_test58.mpr(16) : error 9 : Extraneous token, at offset 9
+ near [Index: 0 (Start: 0-Stop: 0) ='<missing ';'>', type<26> Line: 16 LinePos:9]
+ : Extraneous input - expected ';' ...
+Warning 11: Instance server does not have open any coregion
+
+OK: z120_test58 is correct, should be correct
+
+mscdocument z120_test58;
+msc Strnka1;
+inst client;
+inst server;
+client: instance;
+concurrent;
+label e0; out no,0 to server;
+label e1; in know,1 from server;
+endconcurrent;
+out yes,2 to lost;
+concurrent;
+label e2; in tric,3 from server;
+endconcurrent;
+in tric,4 from found;
+endinstance;
+server: instance;
+in no,0 from client;
+concurrent;
+label e3; out know,1 to client;
+endconcurrent;
+out tric,3 to client;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_test59.mpr
===================================================================
--- trunk/tests/z120_test/z120_test59.mpr (rev 0)
+++ trunk/tests/z120_test/z120_test59.mpr 2009-09-15 14:13:20 UTC (rev 332)
@@ -0,0 +1,32 @@
+/***********************************************
+Example of bMSC
+
+Missing:
+ line 20: semi-colon (endconcurrent;)
+***********************************************/
+
+mscdocument Vkres2;
+msc Strnka1;
+inst client;
+inst server;
+client: instance;
+concurrent;
+label e0; out no,0 to server;
+label e1; in know,1 from server;
+endconcurrent;
+out yes,2 to lost;
+concurrent;
+label e2; in tric,3 from server;
+endconcurrent;
+in tric,4 from found;
+endinstance;
+server: instance;
+in no,0 from client;
+concurrent;
+label e3; out know,1 to client;
+endconcurrent
+concurrent;
+label e4; out tric,3 to client;
+endconcurrent;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_test59.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test59.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_test59.mpr.result 2009-09-15 14:13:20 UTC (rev 332)
@@ -0,0 +1,30 @@
+z120_test59.mpr(28) : error 9 : Extraneous token, at offset 0
+ near [Index: 151 (Start: 140641322-Stop: 140641331) ='concurrent', type<102> Line: 28 LinePos:0]
+ : Extraneous input - expected ';' ...
+Warning 11: Instance server does not have open any coregion
+
+OK: z120_test59 is correct, should be correct
+
+mscdocument z120_test59;
+msc Strnka1;
+inst client;
+inst server;
+client: instance;
+concurrent;
+label e0; out no,0 to server;
+label e1; in know,1 from server;
+endconcurrent;
+out yes,2 to lost;
+concurrent;
+label e2; in tric,3 from server;
+endconcurrent;
+in tric,4 from found;
+endinstance;
+server: instance;
+in no,0 from client;
+concurrent;
+label e3; out know,1 to client;
+endconcurrent;
+out tric,3 to client;
+endinstance;
+endmsc;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|