--- /dev/null
+# FML marc rutines - with passing of code and regular expressions
+#
+# $Id: marc3.fml,v 1.1 1995/02/27 09:01:21 adam Exp $
+\func case tag indicator identifier \code {
+ \if {\match \tag {\line\index 1}} {
+ \if {\match \indicator {\line\index 2}} {
+ \foreach field {\line \index 3} {
+ \if{\match \identifier \field\index 1} {
+ \set info {\field \index 2}
+ \code
+ }
+ }
+ } }
+}
+
+\func marc rec \code {
+ \foreach line {\rec} {\code}
+}
+
+\func testfmt record {
+ \marc {\record} {
+ \case 245 00 a { 245 00 a: \info\n }
+ \case 100 00 [bc] { 100 00 [bc]: \info\n }
+ \case 101 00 x { }
+ \case 102 00 x { }
+ \case 103 00 x { }
+ \case 104 00 x { }
+ \case 105 00 x { }
+ \case 106 00 x { }
+ }
+}
+
+\foreach i {1 2 3 4 5 6 7 8 9 10}
+{
+\testfmt \list {
+ { 008 00 {
+ { b {a b c d e f} }
+ { c {a b c d e f} }
+ } }
+ { 100 00 {
+ { b {Felt 100-b} }
+ { c {felt 100-c} }
+ } }
+ { 245 00 {
+ { a {Felt 245-x} }
+ } }
+ { 260 00 {
+ { b {Felt 100-b} }
+ { c {felt 100-c} }
+ } }
+ { 970 00 {
+ { b {Felt 100-b} }
+ { c {felt 100-c} }
+ } }
+ { 971 00 {
+ { b {Felt 100-b} }
+ { c {felt 100-c} }
+ } }
+ { 972 00 {
+ { b {Felt 100-b} }
+ { c {felt 100-c} }
+ } }
+ { 973 00 {
+ { b {Felt 100-b} }
+ { c {felt 100-c} }
+ } }
+ { 974 00 {
+ { b {Felt 100-b} }
+ { c {felt 100-c} }
+ } }
+}
+}