Author: jvanzyl
Date: Sun Nov 27 13:38:30 2005
New Revision: 349320
URL: http://svn.apache.org/viewcvs?rev=349320&view=rev
Log:
o changing the accept method to take the source so that we can do some
primitive look ahead as i prefer
to do this then embed the parsers in one another (like the twiki parser). in
most cases you can peek
ahead a line and figure out what you have and go from there.
Modified:
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/common/ByLineReaderSource.java
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/BlockParser.java
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/HorizontalRuleBlockParser.java
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/ParagraphBlockParser.java
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/SectionBlockParser.java
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/VerbatimBlockParser.java
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/ListBlockParser.java
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/table/TableBlockParser.java
Modified:
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/common/ByLineReaderSource.java
URL:
http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/common/ByLineReaderSource.java?rev=349320&r1=349319&r2=349320&view=diff
==============================================================================
---
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/common/ByLineReaderSource.java
(original)
+++
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/common/ByLineReaderSource.java
Sun Nov 27 13:38:30 2005
@@ -130,8 +130,7 @@
{
if ( ungetted )
{
- throw new IllegalStateException(
- "we support only one level of ungetLine()" );
+ throw new IllegalStateException( "we support only one level of
ungetLine()" );
}
ungetted = true;
}
Modified:
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java
URL:
http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java?rev=349320&r1=349319&r2=349320&view=diff
==============================================================================
---
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java
(original)
+++
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java
Sun Nov 27 13:38:30 2005
@@ -89,7 +89,7 @@
continue;
}
- if ( parser.accept( line ) )
+ if ( parser.accept( line, source ) )
{
/*
System.out.println(
"------------------------------------------------------------" );
Modified:
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/BlockParser.java
URL:
http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/BlockParser.java?rev=349320&r1=349319&r2=349320&view=diff
==============================================================================
---
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/BlockParser.java
(original)
+++
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/BlockParser.java
Sun Nov 27 13:38:30 2005
@@ -22,7 +22,7 @@
public interface BlockParser
{
- boolean accept( String line );
+ boolean accept( String line, ByLineSource source );
Block visit( String line, ByLineSource source ) throws ParseException;
}
Modified:
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/HorizontalRuleBlockParser.java
URL:
http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/HorizontalRuleBlockParser.java?rev=349320&r1=349319&r2=349320&view=diff
==============================================================================
---
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/HorizontalRuleBlockParser.java
(original)
+++
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/HorizontalRuleBlockParser.java
Sun Nov 27 13:38:30 2005
@@ -16,16 +16,13 @@
* limitations under the License.
*/
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
import org.apache.maven.doxia.module.common.ByLineSource;
import org.apache.maven.doxia.parser.ParseException;
public class HorizontalRuleBlockParser
implements BlockParser
{
- public boolean accept( String line )
+ public boolean accept( String line, ByLineSource source )
{
return line.startsWith( "----" );
}
Modified:
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/ParagraphBlockParser.java
URL:
http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/ParagraphBlockParser.java?rev=349320&r1=349319&r2=349320&view=diff
==============================================================================
---
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/ParagraphBlockParser.java
(original)
+++
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/ParagraphBlockParser.java
Sun Nov 27 13:38:30 2005
@@ -27,7 +27,7 @@
public class ParagraphBlockParser
implements BlockParser
{
- public boolean accept( String line )
+ public boolean accept( String line, ByLineSource source )
{
return true;
}
@@ -125,6 +125,8 @@
break;
case '}':
+
+ System.out.println( "line = " + line );
if ( line.charAt( i + 1 ) == '}' )
{
Modified:
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/SectionBlockParser.java
URL:
http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/SectionBlockParser.java?rev=349320&r1=349319&r2=349320&view=diff
==============================================================================
---
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/SectionBlockParser.java
(original)
+++
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/SectionBlockParser.java
Sun Nov 27 13:38:30 2005
@@ -8,12 +8,12 @@
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
- * @version $Id:$
+ * @version $Id$
*/
public class SectionBlockParser
implements BlockParser
{
- public boolean accept( String line )
+ public boolean accept( String line, ByLineSource source )
{
if ( line.startsWith( "h1." ) )
{
Modified:
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/VerbatimBlockParser.java
URL:
http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/VerbatimBlockParser.java?rev=349320&r1=349319&r2=349320&view=diff
==============================================================================
---
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/VerbatimBlockParser.java
(original)
+++
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/VerbatimBlockParser.java
Sun Nov 27 13:38:30 2005
@@ -15,7 +15,7 @@
{
static String LS = System.getProperty( "line.separator" );
- public boolean accept( String line )
+ public boolean accept( String line, ByLineSource source )
{
if ( line.startsWith( "{code}" ) || line.startsWith( "{noformat}" ) )
{
@@ -40,7 +40,6 @@
// TODO
text.append( line ).append( LS );
}
-
return new VerbatimBlock( text.toString() );
}
Modified:
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/ListBlockParser.java
URL:
http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/ListBlockParser.java?rev=349320&r1=349319&r2=349320&view=diff
==============================================================================
---
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/ListBlockParser.java
(original)
+++
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/ListBlockParser.java
Sun Nov 27 13:38:30 2005
@@ -32,9 +32,22 @@
public static int NUMBERED_LIST = 1;
- public boolean accept( String line )
+ public boolean accept( String line, ByLineSource source )
{
- if ( isList( line ) )
+ String nextLine = null;
+
+ try
+ {
+ nextLine = source.getNextLine();
+
+ source.ungetLine();
+ }
+ catch ( ParseException e )
+ {
+ // do nothing
+ }
+
+ if ( isList( line ) && isList( nextLine ) )
{
return true;
}
@@ -51,7 +64,7 @@
do
{
- if ( !accept( l ) )
+ if ( !isList( l ) )
{
break;
}
@@ -70,11 +83,6 @@
}
}
while ( ( l = source.getNextLine() ) != null );
-
- if ( l != null )
- {
- source.ungetLine();
- }
return treeListBuilder.getBlock();
}
Modified:
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/table/TableBlockParser.java
URL:
http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/table/TableBlockParser.java?rev=349320&r1=349319&r2=349320&view=diff
==============================================================================
---
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/table/TableBlockParser.java
(original)
+++
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/confluence/parser/table/TableBlockParser.java
Sun Nov 27 13:38:30 2005
@@ -18,8 +18,6 @@
import java.util.ArrayList;
import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
import org.apache.maven.doxia.module.common.ByLineSource;
import org.apache.maven.doxia.module.confluence.parser.BlockParser;
@@ -39,7 +37,7 @@
public class TableBlockParser
implements BlockParser
{
- public boolean accept( String line )
+ public boolean accept( String line, ByLineSource source )
{
return line.startsWith( "|" );
}
@@ -47,7 +45,7 @@
public Block visit( String line, ByLineSource source )
throws ParseException
{
- if ( !accept( line ) )
+ if ( !accept( line, source ) )
{
throw new IllegalAccessError( "call accept before this ;)" );
}
@@ -95,7 +93,7 @@
rows.add( new TableRowBlock( cells ) );
}
- while ( ( l = source.getNextLine() ) != null && accept( l ) );
+ while ( ( l = source.getNextLine() ) != null && accept( l, source ) );
assert rows.size() >= 1;