Parser -> Remove simple commentary & add new operator (simple case)
This commit is contained in:
parent
b64a47faa9
commit
8ba4f91740
1 changed files with 57 additions and 18 deletions
|
@ -6,6 +6,7 @@ import java.io.File;
|
|||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -27,25 +28,46 @@ public class JavaParser extends Parser<JavaElement> {
|
|||
time = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception{
|
||||
File file = new File("C:\\Users\\jeffc\\eclipse-workspace\\peer-at-code-parseur\\src\\be\\jeffcheasey88\\peeratcode\\parser\\java\\JavaParser.java");
|
||||
BufferedReader reader = new BufferedReader(new FileReader(file));
|
||||
|
||||
time = System.currentTimeMillis();
|
||||
|
||||
Parser<JavaElement> parser = new JavaParser();
|
||||
JavaElement jFile = new JavaElement();
|
||||
parser.parse(reader, jFile);
|
||||
|
||||
System.out.println((System.currentTimeMillis()-time)+"ms");
|
||||
|
||||
System.out.println(TokenValidator.MAX_VALIDATE);
|
||||
|
||||
parser.build(new BufferedWriter(new FileWriter(new File("/home/ParserV2.txt"))));
|
||||
}
|
||||
|
||||
public JavaParser(){
|
||||
Tokenizer tokenizer = new Tokenizer();
|
||||
Tokenizer tokenizer = new Tokenizer(){
|
||||
|
||||
private List<Token> tokens = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public List<Token> getTokens(){
|
||||
return this.tokens;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void parse(BufferedReader reader) throws Exception{
|
||||
int lineNumber = 0;
|
||||
String line;
|
||||
while((line = reader.readLine()) != null){
|
||||
lineNumber++;
|
||||
|
||||
for(int i = 0; i < line.length(); i++){
|
||||
char c = line.charAt(i);
|
||||
Token token;
|
||||
if(Character.isAlphabetic(c) || Character.isDigit(c)){
|
||||
String value = "";
|
||||
int j = i;
|
||||
for(; j < line.length(); j++){
|
||||
c = line.charAt(j);
|
||||
if(Character.isAlphabetic(c) || Character.isDigit(c)) value+=c;
|
||||
else break;
|
||||
}
|
||||
token = new Token(lineNumber, i+1, value, TokenType.NAME);
|
||||
i = j-1;
|
||||
}else if(Character.isWhitespace(c)) continue;
|
||||
else{
|
||||
if(c == '/' && line.charAt(i+1) == '/') break;
|
||||
token = new Token(lineNumber, i+1, ""+c, TokenType.DELIMITER);
|
||||
}
|
||||
this.tokens.add(token);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//SUMMARY
|
||||
//- Modifier
|
||||
|
@ -102,6 +124,7 @@ public class JavaParser extends Parser<JavaElement> {
|
|||
|
||||
//VALUE
|
||||
StateTree<JavaElement> value = new StateTree<>();
|
||||
value.then((validator) -> validator.validate((token) -> token.getValue().equals("new"))).then(value);
|
||||
StateTree<JavaElement> value_name = value.then((validator) -> validator.validate(
|
||||
(token) -> token.getType().equals(TokenType.NAME),
|
||||
(bag, token) -> {
|
||||
|
@ -378,4 +401,20 @@ public class JavaParser extends Parser<JavaElement> {
|
|||
return 0;
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception{
|
||||
File file = new File("C:\\Users\\jeffc\\eclipse-workspace\\peer-at-code-parseur\\src\\be\\jeffcheasey88\\peeratcode\\parser\\java\\JavaParser.java");
|
||||
BufferedReader reader = new BufferedReader(new FileReader(file));
|
||||
|
||||
time = System.currentTimeMillis();
|
||||
|
||||
Parser<JavaElement> parser = new JavaParser();
|
||||
JavaElement jFile = new JavaElement();
|
||||
parser.parse(reader, jFile);
|
||||
|
||||
System.out.println((System.currentTimeMillis()-time)+"ms");
|
||||
|
||||
System.out.println(TokenValidator.MAX_VALIDATE);
|
||||
|
||||
parser.build(new BufferedWriter(new FileWriter(new File("/home/ParserV2.txt"))));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue