Index: /trunk/PS-IPP-Metadata-Config/lib/PS/IPP/Metadata/Config.pm
===================================================================
--- /trunk/PS-IPP-Metadata-Config/lib/PS/IPP/Metadata/Config.pm	(revision 3482)
+++ /trunk/PS-IPP-Metadata-Config/lib/PS/IPP/Metadata/Config.pm	(revision 3483)
@@ -1,5 +1,5 @@
 # Copyright (c) 2005  Joshua Hoblitt
 #
-# $Id: Config.pm,v 1.9 2005-03-23 02:00:16 jhoblitt Exp $
+# $Id: Config.pm,v 1.10 2005-03-23 19:25:53 jhoblitt Exp $
 
 package PS::IPP::Metadata::Config;
@@ -85,5 +85,5 @@
 
 scalar:
-    <skip:'[ \t\r]*'> name type value comment(?) "\n"
+    <skip:'[ \t\r]*'> name type <matchrule:$item{type}> comment(?) "\n"
         {
             $return = {
@@ -91,5 +91,5 @@
                 name    => $item{name},
                 type    => $item{type},
-                value   => $item{value},
+                value   => $item[4],
             };
 
@@ -99,5 +99,5 @@
 
 vector:
-     <skip:'[ \t\r]*'> vname vtype vvalue comment(?) "\n"
+     <skip:'[ \t\r]*'> vname vtype vvalue[ $item{vtype} ] comment(?) "\n"
         {
             $return = {
@@ -114,5 +114,5 @@
 
 multi_declare:
-    <skip:'[ \t\r]*'> name '*' to_end_of_line "\n"
+    <skip:'[ \t\r]*'> name /MULTI/i comment(?) "\n"
         {{
             class   => 'blank_line',
@@ -259,5 +259,7 @@
 
 type: 
-    vtype | 'STR' | 'STRING'
+    vtype
+    | 'STR'
+    | 'STRING'
 
 vtype: 
@@ -282,10 +284,22 @@
     | 'TT'
 
-value:
-    primitive | string
-
+S8: int
+S16: int
+S32: int
+S64: int
+U8 : int
+U16: int
+U32: int
+U64: int
+F32: float
+F64: float
+C32: float
+C64: float
+BOOL: bool
+STR: string
+STRING: string
 
 vvalue:
-    _vvalue(s)
+    _vvalue[%arg](s)
         { [ map { @$_ } @{$item[1]} ] }
 
@@ -296,12 +310,9 @@
 # backtracking optimization
 _vvalue:
-    primitive vector_sep(?)
+    <matchrule:$arg[0]> vector_sep(?)
         { [ $item[1] ] }
 
 vector_sep:
     /,|\s+/
-
-primitive:
-    bool | float | int
 
 int:
@@ -314,5 +325,5 @@
 
 bool:
-    /[tf]\s+?/i
+    /[tf]/i
         { $item[1] =~ /t/i ? 1 : 0 }
 
