forked from lykhonis/FJava
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTranslator.java
More file actions
37 lines (29 loc) · 888 Bytes
/
Copy pathTranslator.java
File metadata and controls
37 lines (29 loc) · 888 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package com.fjava.translator;
public class Translator {
final Tokenizer tokenizer;
public Translator(String fjava) {
tokenizer = new JavaTokenizer(fjava);
}
public String translate() {
final StringBuilder stringBuilder = new StringBuilder();
Token token = tokenizer.firstToken();
if (token != null && token.type == TokenType.PACKAGE) {
do {
stringBuilder.append(token.image).append(token.type.postfix);
if (token.type == TokenType.SEMICOLON) {
token = tokenizer.nextToken();
break;
}
token = tokenizer.nextToken();
} while (token != null);
}
stringBuilder.append("import com.fjava.library.*;");
if (token != null) {
final TranslatorFactory factory = new TranslatorFactory(tokenizer);
do {
stringBuilder.append(factory.translate());
} while (tokenizer.nextToken() != null);
}
return stringBuilder.toString();
}
}