added support for new OOP features to Java parser
parent
088eb786c8
commit
bd0b1c4f0d
|
@ -321,6 +321,3 @@ SYMBOL: event
|
||||||
] with-screen ;
|
] with-screen ;
|
||||||
|
|
||||||
factoroids
|
factoroids
|
||||||
|
|
||||||
! Currently the plugin doesn't handle GENERIC: and M:, so we
|
|
||||||
! disable the parser. too many errors :sidekick.parser=factor:
|
|
||||||
|
|
|
@ -113,6 +113,16 @@ public class DefaultVocabularyLookup implements VocabularyLookup
|
||||||
|
|
||||||
FactorWord pushWord = define("syntax","\\");
|
FactorWord pushWord = define("syntax","\\");
|
||||||
pushWord.parsing = new PushWord(pushWord);
|
pushWord.parsing = new PushWord(pushWord);
|
||||||
|
|
||||||
|
/* OOP */
|
||||||
|
FactorWord generic = define("generic","GENERIC:");
|
||||||
|
generic.parsing = new Generic(generic);
|
||||||
|
FactorWord traits = define("generic","TRAITS:");
|
||||||
|
traits.parsing = new Traits(traits);
|
||||||
|
FactorWord beginMethod = define("generic","M:");
|
||||||
|
beginMethod.parsing = new BeginMethod(beginMethod);
|
||||||
|
FactorWord endMethod = define("generic",";M");
|
||||||
|
endMethod.parsing = new EndMethod(beginMethod,endMethod);
|
||||||
} //}}}
|
} //}}}
|
||||||
|
|
||||||
//{{{ getVocabulary() method
|
//{{{ getVocabulary() method
|
||||||
|
|
|
@ -29,9 +29,6 @@
|
||||||
|
|
||||||
package factor;
|
package factor;
|
||||||
|
|
||||||
import java.lang.reflect.*;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* : name ... ;
|
* : name ... ;
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
/* :folding=explicit:collapseFolds=1: */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Copyright (C) 2004 Slava Pestov.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||||
|
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* DEVELOPERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package factor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GENERIC: name
|
||||||
|
*/
|
||||||
|
public class FactorGenericDefinition extends FactorWordDefinition
|
||||||
|
{
|
||||||
|
//{{{ FactorGenericDefinition constructor
|
||||||
|
/**
|
||||||
|
* A new definition.
|
||||||
|
*/
|
||||||
|
public FactorGenericDefinition(FactorWord word)
|
||||||
|
{
|
||||||
|
super(word);
|
||||||
|
} //}}}
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
/* :folding=explicit:collapseFolds=1: */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Copyright (C) 2004 Slava Pestov.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||||
|
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* DEVELOPERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package factor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* M: type generic ... ;M
|
||||||
|
*/
|
||||||
|
public class FactorMethodDefinition extends FactorWordDefinition
|
||||||
|
{
|
||||||
|
private FactorWord type;
|
||||||
|
private Cons def;
|
||||||
|
|
||||||
|
public FactorMethodDefinition(FactorWord type,
|
||||||
|
FactorWord generic, Cons def)
|
||||||
|
{
|
||||||
|
super(generic);
|
||||||
|
this.type = type;
|
||||||
|
this.def = def;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Cons toList()
|
||||||
|
{
|
||||||
|
return def;
|
||||||
|
}
|
||||||
|
}
|
|
@ -47,10 +47,4 @@ public class FactorSymbolDefinition extends FactorWordDefinition
|
||||||
super(word);
|
super(word);
|
||||||
this.symbol = symbol;
|
this.symbol = symbol;
|
||||||
} //}}}
|
} //}}}
|
||||||
|
|
||||||
//{{{ toList() method
|
|
||||||
public Cons toList()
|
|
||||||
{
|
|
||||||
return new Cons(symbol,null);
|
|
||||||
} //}}}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
/* :folding=explicit:collapseFolds=1: */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Copyright (C) 2004 Slava Pestov.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||||
|
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* DEVELOPERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package factor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TRAITS: type
|
||||||
|
*/
|
||||||
|
public class FactorTraitsDefinition extends FactorSymbolDefinition
|
||||||
|
{
|
||||||
|
public FactorTraitsDefinition(FactorWord word)
|
||||||
|
{
|
||||||
|
super(word,word);
|
||||||
|
}
|
||||||
|
}
|
|
@ -51,7 +51,7 @@ public abstract class FactorWordDefinition
|
||||||
//{{{ toList() method
|
//{{{ toList() method
|
||||||
public Cons toList()
|
public Cons toList()
|
||||||
{
|
{
|
||||||
return new Cons(new FactorWord(null,getClass().getName()),null);
|
return null;
|
||||||
} //}}}
|
} //}}}
|
||||||
|
|
||||||
//{{{ toString() method
|
//{{{ toString() method
|
||||||
|
|
|
@ -13,6 +13,8 @@ plugin.factor.jedit.FactorPlugin.depend.3=plugin console.ConsolePlugin 4.0.2
|
||||||
|
|
||||||
#! Menu
|
#! Menu
|
||||||
plugin.factor.jedit.FactorPlugin.menu=factor-listener \
|
plugin.factor.jedit.FactorPlugin.menu=factor-listener \
|
||||||
|
sidekick-tree \
|
||||||
|
sidekick-complete \
|
||||||
- \
|
- \
|
||||||
factor-run-file \
|
factor-run-file \
|
||||||
factor-eval-selection \
|
factor-eval-selection \
|
||||||
|
|
|
@ -210,14 +210,14 @@ public class FactorShell extends Shell
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
try
|
/* try
|
||||||
{
|
{
|
||||||
packetLoop(output);
|
packetLoop(output);
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
catch(Exception e)
|
||||||
{
|
{
|
||||||
Log.log(Log.ERROR,this,e);
|
Log.log(Log.ERROR,this,e);
|
||||||
}
|
} */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,19 +51,6 @@ public class FactorWordRenderer extends DefaultListCellRenderer
|
||||||
else if(def instanceof FactorSymbolDefinition)
|
else if(def instanceof FactorSymbolDefinition)
|
||||||
{
|
{
|
||||||
prop = "factor.completion.symbol";
|
prop = "factor.completion.symbol";
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Cons d = def.toList();
|
|
||||||
if(d != null && d.car instanceof FactorDocComment)
|
|
||||||
{
|
|
||||||
FactorDocComment comment = (FactorDocComment)
|
|
||||||
d.car;
|
|
||||||
if(comment.isStackComment())
|
|
||||||
{
|
|
||||||
stackEffect = comment.toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} */
|
} */
|
||||||
|
|
||||||
String in;
|
String in;
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
/* :folding=explicit:collapseFolds=1: */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Copyright (C) 2004 Slava Pestov.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||||
|
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* DEVELOPERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package factor.parser;
|
||||||
|
|
||||||
|
import factor.*;
|
||||||
|
|
||||||
|
public class BeginMethod extends FactorParsingDefinition
|
||||||
|
{
|
||||||
|
public BeginMethod(FactorWord word)
|
||||||
|
{
|
||||||
|
super(word);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void eval(FactorReader reader)
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
FactorWord type = reader.nextWord(true);
|
||||||
|
if(type == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
FactorWord generic = reader.nextWord(true);
|
||||||
|
if(generic == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
reader.pushExclusiveState(word,generic);
|
||||||
|
}
|
||||||
|
}
|
|
@ -33,14 +33,10 @@ import factor.*;
|
||||||
|
|
||||||
public class Def extends FactorParsingDefinition
|
public class Def extends FactorParsingDefinition
|
||||||
{
|
{
|
||||||
//{{{ Def constructor
|
|
||||||
/**
|
|
||||||
* A new definition.
|
|
||||||
*/
|
|
||||||
public Def(FactorWord word)
|
public Def(FactorWord word)
|
||||||
{
|
{
|
||||||
super(word);
|
super(word);
|
||||||
} //}}}
|
}
|
||||||
|
|
||||||
public void eval(FactorReader reader)
|
public void eval(FactorReader reader)
|
||||||
throws Exception
|
throws Exception
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
/* :folding=explicit:collapseFolds=1: */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Copyright (C) 2004 Slava Pestov.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||||
|
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* DEVELOPERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package factor.parser;
|
||||||
|
|
||||||
|
import factor.*;
|
||||||
|
|
||||||
|
public class EndMethod extends FactorParsingDefinition
|
||||||
|
{
|
||||||
|
public FactorWord start;
|
||||||
|
|
||||||
|
public EndMethod(FactorWord start, FactorWord end)
|
||||||
|
{
|
||||||
|
super(end);
|
||||||
|
this.start = start;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void eval(FactorReader reader)
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
FactorReader.ParseState state = reader.popState(start,word);
|
||||||
|
FactorWord w = state.defining;
|
||||||
|
/* Only ever null with restartable scanner;
|
||||||
|
error already logged, so give up */
|
||||||
|
if(w == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
w.def = new FactorMethodDefinition(null,w,state.first);
|
||||||
|
reader.append(w.def);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
/* :folding=explicit:collapseFolds=1: */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Copyright (C) 2004 Slava Pestov.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||||
|
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* DEVELOPERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package factor.parser;
|
||||||
|
|
||||||
|
import factor.*;
|
||||||
|
|
||||||
|
public class Generic extends FactorParsingDefinition
|
||||||
|
{
|
||||||
|
public Generic(FactorWord word)
|
||||||
|
{
|
||||||
|
super(word);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void eval(FactorReader reader)
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
FactorWord w = reader.nextWord(true);
|
||||||
|
w.def = new FactorGenericDefinition(w);
|
||||||
|
reader.append(w.def);
|
||||||
|
}
|
||||||
|
}
|
|
@ -35,15 +35,11 @@ public class Ine extends FactorParsingDefinition
|
||||||
{
|
{
|
||||||
public FactorWord start;
|
public FactorWord start;
|
||||||
|
|
||||||
//{{{ Ine constructor
|
|
||||||
/**
|
|
||||||
* A new definition.
|
|
||||||
*/
|
|
||||||
public Ine(FactorWord start, FactorWord end)
|
public Ine(FactorWord start, FactorWord end)
|
||||||
{
|
{
|
||||||
super(end);
|
super(end);
|
||||||
this.start = start;
|
this.start = start;
|
||||||
} //}}}
|
}
|
||||||
|
|
||||||
public void eval(FactorReader reader)
|
public void eval(FactorReader reader)
|
||||||
throws Exception
|
throws Exception
|
||||||
|
|
|
@ -33,14 +33,10 @@ import factor.*;
|
||||||
|
|
||||||
public class Symbol extends FactorParsingDefinition
|
public class Symbol extends FactorParsingDefinition
|
||||||
{
|
{
|
||||||
//{{{ Symbol constructor
|
|
||||||
/**
|
|
||||||
* A new definition.
|
|
||||||
*/
|
|
||||||
public Symbol(FactorWord word)
|
public Symbol(FactorWord word)
|
||||||
{
|
{
|
||||||
super(word);
|
super(word);
|
||||||
} //}}}
|
}
|
||||||
|
|
||||||
public void eval(FactorReader reader)
|
public void eval(FactorReader reader)
|
||||||
throws Exception
|
throws Exception
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
/* :folding=explicit:collapseFolds=1: */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Copyright (C) 2004 Slava Pestov.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||||
|
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* DEVELOPERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package factor.parser;
|
||||||
|
|
||||||
|
import factor.*;
|
||||||
|
|
||||||
|
public class Traits extends FactorParsingDefinition
|
||||||
|
{
|
||||||
|
public Traits(FactorWord word)
|
||||||
|
{
|
||||||
|
super(word);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void eval(FactorReader reader)
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
FactorWord w = reader.nextWord(true);
|
||||||
|
w.def = new FactorTraitsDefinition(w);
|
||||||
|
reader.append(w.def);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue