- 990 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 12:46:36.38 ID:6CWHpJ6z.net]
- >>941 Perl 状態セル4個
$ cat input "aa,a",aa,,"aa\"aa" $ perl odai938 < input [None, 'a', 'a', ',', 'a', None, 'X', 'a', 'a', 'X', 'X', None, 'a', 'a', None, '"', 'a', 'a', None] $ cat odai938 %maton = ( 'N' => { 'a' => ['N', q('a')] , ',' => ['N', q('X')] , '"' => ['Q', q(None)] , '\\' => ['E', q(None)] }, 'Q' => { 'a' => ['Q', q('a')] , ',' => ['Q', q(',')] , '"' => ['N', q(None)] , '\\' => ['F', q(None)] }, 'E' => { 'a' => ['N', q('a')] , ',' => ['N', q(',')] , '"' => ['N', q('"') ] , '\\' => ['N', q(None)] }, 'F' => { 'a' => ['Q', q('a')] , ',' => ['Q', q(',')] , '"' => ['Q', q('"') ] , '\\' => ['Q', q(None)] }, ); @res = (); $state = 'N'; for $c ( split //, <> ) { ($next, $out) = @{$maton{$state}{$c}}; last unless defined $next; push @res, $out; $state = $next; } printf "[%s]\n", join ', ', @res;
|

|