forked from phoedos/pmd
Add correct tokenizers for vm, pom, wsdl and xsl
This commit is contained in:
@@ -4,8 +4,11 @@
|
||||
|
||||
package net.sourceforge.pmd.lang.vm;
|
||||
|
||||
import net.sourceforge.pmd.cpd.Tokenizer;
|
||||
import net.sourceforge.pmd.lang.LanguagePropertyBundle;
|
||||
import net.sourceforge.pmd.lang.LanguageRegistry;
|
||||
import net.sourceforge.pmd.lang.impl.SimpleLanguageModuleBase;
|
||||
import net.sourceforge.pmd.lang.vm.cpd.VmTokenizer;
|
||||
|
||||
/**
|
||||
* Created by christoferdutz on 20.09.14.
|
||||
@@ -28,4 +31,8 @@ public class VmLanguageModule extends SimpleLanguageModuleBase {
|
||||
return (VmLanguageModule) LanguageRegistry.PMD.getLanguageById(ID);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Tokenizer createCpdTokenizer(LanguagePropertyBundle bundle) {
|
||||
return new VmTokenizer();
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
|
||||
*/
|
||||
|
||||
package net.sourceforge.pmd.lang.vm.cpd;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import net.sourceforge.pmd.cpd.impl.JavaCCTokenizer;
|
||||
import net.sourceforge.pmd.lang.TokenManager;
|
||||
import net.sourceforge.pmd.lang.ast.impl.javacc.CharStream;
|
||||
import net.sourceforge.pmd.lang.ast.impl.javacc.JavaccToken;
|
||||
import net.sourceforge.pmd.lang.document.TextDocument;
|
||||
import net.sourceforge.pmd.lang.vm.ast.VmTokenKinds;
|
||||
|
||||
public class VmTokenizer extends JavaCCTokenizer {
|
||||
@Override
|
||||
protected TokenManager<JavaccToken> makeLexerImpl(TextDocument doc) throws IOException {
|
||||
return VmTokenKinds.newTokenManager(CharStream.create(doc));
|
||||
}
|
||||
}
|
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
|
||||
*/
|
||||
|
||||
package net.sourceforge.pmd.lang.vm.cpd;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import net.sourceforge.pmd.cpd.test.CpdTextComparisonTest;
|
||||
import net.sourceforge.pmd.lang.vm.VmLanguageModule;
|
||||
|
||||
class VmTokenizerTest extends CpdTextComparisonTest {
|
||||
VmTokenizerTest() {
|
||||
super(VmLanguageModule.getInstance(), ".vm");
|
||||
}
|
||||
|
||||
@Test
|
||||
void sampleTest() {
|
||||
doTest("sample_vm");
|
||||
}
|
||||
}
|
54
pmd-vm/src/test/resources/net/sourceforge/pmd/lang/vm/cpd/testdata/sample_vm.txt
vendored
Normal file
54
pmd-vm/src/test/resources/net/sourceforge/pmd/lang/vm/cpd/testdata/sample_vm.txt
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
[Image] or [Truncated image[ Bcol Ecol
|
||||
L1
|
||||
[#if] 1 4
|
||||
[(] 4 5
|
||||
[ ] 5 6
|
||||
[$XHTML] 6 12
|
||||
[ ] 12 13
|
||||
[)\n] 13 15
|
||||
L2
|
||||
[ #set(] 1 10
|
||||
[ ] 10 11
|
||||
[$br] 11 14
|
||||
[ ] 14 15
|
||||
[=] 15 16
|
||||
[ ] 16 17
|
||||
["<br />"] 17 25
|
||||
[ ] 25 26
|
||||
[)\n] 26 28
|
||||
L3
|
||||
[ ] 1 5
|
||||
[#if] 5 8
|
||||
[ ] 8 9
|
||||
[(] 9 10
|
||||
[$someValue] 10 20
|
||||
[)\n] 20 22
|
||||
L4
|
||||
[ ] 1 9
|
||||
[#if] 9 12
|
||||
[ ] 12 13
|
||||
[(] 13 14
|
||||
[$otherValue] 14 25
|
||||
[)\n] 25 27
|
||||
L5
|
||||
[ do stuff\n ] 1 9
|
||||
L6
|
||||
[#end\n] 9 14
|
||||
L7
|
||||
[ ] 1 5
|
||||
[#end\n] 5 10
|
||||
L8
|
||||
[#else\n] 1 7
|
||||
L9
|
||||
[ #set(] 1 10
|
||||
[ ] 10 11
|
||||
[$br] 11 14
|
||||
[ ] 14 15
|
||||
[=] 15 16
|
||||
[ ] 16 17
|
||||
["<br>"] 17 23
|
||||
[ ] 23 24
|
||||
[)\n] 24 26
|
||||
L10
|
||||
[#end\n] 1 6
|
||||
EOF
|
10
pmd-vm/src/test/resources/net/sourceforge/pmd/lang/vm/cpd/testdata/sample_vm.vm
vendored
Normal file
10
pmd-vm/src/test/resources/net/sourceforge/pmd/lang/vm/cpd/testdata/sample_vm.vm
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
#if( $XHTML )
|
||||
#set( $br = "<br />" )
|
||||
#if ($someValue)
|
||||
#if ($otherValue)
|
||||
do stuff
|
||||
#end
|
||||
#end
|
||||
#else
|
||||
#set( $br = "<br>" )
|
||||
#end
|
Reference in New Issue
Block a user