Index: trunk/lib/Text/FormBuilder.pm
===================================================================
--- trunk/lib/Text/FormBuilder.pm	(revision 3)
+++ trunk/lib/Text/FormBuilder.pm	(revision 7)
@@ -4,9 +4,8 @@
 use warnings;
 
-our $VERSION = '0.01';
+our $VERSION = '0.02';
 
 use Text::FormBuilder::Parser;
 use CGI::FormBuilder;
-use YAML;
 
 sub new {
@@ -153,5 +152,12 @@
 }
 
-sub _dump { print YAML::Dump(shift->{form_spec}); }
+sub dump { 
+    eval "use YAML;";
+    unless ($@) {
+        print YAML::Dump(shift->{form_spec});
+    } else {
+        warn "Can't dump form spec structure: $@";
+    }
+}
 
 
@@ -170,5 +176,5 @@
     # returns a new CGI::FormBuilder object with the fields
     # from the input form spec
-    my $form = $parser->build_form;
+    my $form = $parser->form;
 
 =head1 DESCRIPTION
@@ -178,11 +184,40 @@
 =head2 parse
 
+    $parser->parse($src_file);
+    
+    # or as a class method
+    my $parser = Txt::FormBuilder->parse($src_file);
+
+=head2 parse_text
+
 =head2 build
 
+Options passed to build are passed on verbatim to the L<CGI::FormBuilder>
+constructor. Any options given here override the defaults that this module
+uses.
+
+=head2 form
+
+    my $form = $parser->form;
+
+Returns the L<CGI::FormBuilder> object.
+
 =head2 write
 
+    $parser->write($out_file);
+    # or just print to STDOUT
+    $parser->write;
+
+Calls C<render> on the FormBuilder form, and either writes the resulting HTML
+to a file, or to STDOUT if no filename is given.
+
+=head2 dump
+
+Uses L<YAML> to print out a human-readable representaiton of the parsed
+form spec.
+
 =head1 LANGUAGE
 
-    name[size]|descriptive label[hint]:type=default{option1(display string),option2(display string),...}//validate
+    name[size]|descriptive label[hint]:type=default{option1[display string],option2[display string],...}//validate
     
     !title ...
@@ -190,6 +225,6 @@
     !pattern name /regular expression/
     !list name {
-        option1(display string),
-        option2(display string),
+        option1[display string],
+        option2[display string],
         ...
     }
@@ -204,4 +239,6 @@
 
 =item C<!title>
+
+=item C<!author>
 
 =back
@@ -220,4 +257,12 @@
 Any line beginning with a C<#> is considered a comment.
 
+=head1 TODO
+
+=head2 Langauge
+
+Directive for a descriptive or explanatory paragraph about the form
+
+Subsection headers?
+
 =head1 SEE ALSO
 
