using System;
public class Test
{
public static void Main( )
{
string str = "fnGetDate('d',-1+ cint(cbool(DatePart('w',Date())<=2)) + cint(cbool(DatePart('w',Date())=2)))" ;
int parLevel = 0 ;
List< string> arguments = new List< string> ( ) ;
string currentString = String.Empty ;
foreach ( char t in str)
{
switch ( t)
{
case '(' :
if ( t == '(' ) parLevel++;
break ;
case ')' :
if ( t == ')' ) parLevel--;
break ;
case ',' :
if ( parLevel > 1 ) continue ;
arguments.Add ( currentString) ;
currentString = String.Empty ;
break ;
default :
if ( parLevel == 0 ) continue ;
currentString += t;
break ;
}
}
if ( ! String.IsNullOrEmpty ( currentString) ) arguments.Add ( currentString) ;
for ( int i = 0 ; i < arguments.Count ; i++ )
Console.WriteLine ( "Argument {0}: {1}" , i, arguments[ i] ) ;
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQogICAgewogICAgICAgIHN0cmluZyBzdHIgPSAiZm5HZXREYXRlKCdkJywtMSsgY2ludChjYm9vbChEYXRlUGFydCgndycsRGF0ZSgpKTw9MikpICsgY2ludChjYm9vbChEYXRlUGFydCgndycsRGF0ZSgpKT0yKSkpIjsKICAgICAgICBpbnQgcGFyTGV2ZWwgPSAwOwogICAgICAgIExpc3Q8c3RyaW5nPiBhcmd1bWVudHMgPSBuZXcgTGlzdDxzdHJpbmc+KCk7CiAgICAgICAgc3RyaW5nIGN1cnJlbnRTdHJpbmcgPSBTdHJpbmcuRW1wdHk7CgogICAgICAgIGZvcmVhY2ggKGNoYXIgdCBpbiBzdHIpCiAgICAgICAgewogICAgICAgICAgICBzd2l0Y2ggKHQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNhc2UgJygnOgogICAgICAgICAgICAgICAgICAgIGlmICh0ID09ICcoJykgcGFyTGV2ZWwrKzsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgJyknOgogICAgICAgICAgICAgICAgICAgIGlmICh0ID09ICcpJykgcGFyTGV2ZWwtLTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgJywnOgogICAgICAgICAgICAgICAgICAgIGlmIChwYXJMZXZlbCA+IDEpIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHMuQWRkKGN1cnJlbnRTdHJpbmcpOwogICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTdHJpbmcgPSBTdHJpbmcuRW1wdHk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIGlmIChwYXJMZXZlbCA9PSAwKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0cmluZyArPSB0OwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghU3RyaW5nLklzTnVsbE9yRW1wdHkoY3VycmVudFN0cmluZykpIGFyZ3VtZW50cy5BZGQoY3VycmVudFN0cmluZyk7CgogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJndW1lbnRzLkNvdW50OyBpKyspCiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJBcmd1bWVudCB7MH06IHsxfSIsIGksIGFyZ3VtZW50c1tpXSk7CiAgICB9Cn0=
compilation info
prog.cs(9,9): error CS0246: The type or namespace name `List' could not be found. Are you missing `System.Collections.Generic' using directive?
prog.cs(25,21): error CS0841: A local variable `arguments' cannot be used before it is declared
prog.cs(35,51): error CS0841: A local variable `arguments' cannot be used before it is declared
prog.cs(37,29): error CS0841: A local variable `arguments' cannot be used before it is declared
prog.cs(38,55): error CS0841: A local variable `arguments' cannot be used before it is declared
Compilation failed: 5 error(s), 0 warnings
stdout