Java源码示例:org.python.pydev.parser.jython.FastCharStream
示例1
@Override
public SortedMap<Integer, FullToken> fullTokenListWithPos(final char[] code) {
final FastCharStream stream = new FastCharStream(code);
final ITokenManager mng = getPythonTokenizer(stream);
final SortedMap<Integer, FullToken> tokens = Maps.newTreeMap();
Token nextToken = mng.getNextToken();
while (nextToken.kind != 0) {
if (shouldAdd(nextToken)) {
// TODO: Bad Heurisitc...
tokens.put(
nextToken.getBeginLine() * 500
+ nextToken.getBeginCol(),
new FullToken(nextToken.image, Integer
.toString(nextToken.kind)));
}
nextToken = mng.getNextToken();
}
return tokens;
}
示例2
@Override
public List<FullToken> getTokenListFromCode(final char[] code) {
final FastCharStream stream = new FastCharStream(code);
final ITokenManager mng = getPythonTokenizer(stream);
final List<FullToken> tokens = Lists.newArrayList();
Token nextToken = mng.getNextToken();
while (nextToken.kind != 0) {
if (shouldAdd(nextToken)) {
tokens.add(new FullToken(nextToken.image, Integer
.toString(nextToken.kind)));
}
nextToken = mng.getNextToken();
}
return tokens;
}
示例3
@Override
public List<String> tokenListFromCode(final char[] code) {
final FastCharStream stream = new FastCharStream(code);
final ITokenManager mng = getPythonTokenizer(stream);
final List<String> tokens = Lists.newArrayList();
Token nextToken = mng.getNextToken();
while (nextToken.kind != 0) {
if (shouldAdd(nextToken)) {
tokens.add(nextToken.image);
}
nextToken = mng.getNextToken();
}
return tokens;
}
示例4
@Override
public SortedMap<Integer, String> tokenListWithPos(final char[] code) {
final FastCharStream stream = new FastCharStream(code);
final ITokenManager mng = getPythonTokenizer(stream);
final SortedMap<Integer, String> tokens = Maps.newTreeMap();
Token nextToken = mng.getNextToken();
while (nextToken.kind != 0) {
if (shouldAdd(nextToken)) {
// TODO: Bad Heurisitc...
tokens.put(
nextToken.getBeginLine() * 500
+ nextToken.getBeginCol(), nextToken.image);
}
nextToken = mng.getNextToken();
}
return tokens;
}
示例5
@Override
public SortedMap<Integer, FullToken> fullTokenListWithPos(final char[] code) {
final FastCharStream stream = new FastCharStream(code);
final ITokenManager mng = getPythonTokenizer(stream);
final SortedMap<Integer, FullToken> tokens = Maps.newTreeMap();
Token nextToken = mng.getNextToken();
while (nextToken.kind != 0) {
if (shouldAdd(nextToken)) {
// TODO: Bad Heurisitc...
tokens.put(
nextToken.getBeginLine() * 500
+ nextToken.getBeginCol(),
new FullToken(nextToken.image, Integer
.toString(nextToken.kind)));
}
nextToken = mng.getNextToken();
}
return tokens;
}
示例6
@Override
public List<FullToken> getTokenListFromCode(final char[] code) {
final FastCharStream stream = new FastCharStream(code);
final ITokenManager mng = getPythonTokenizer(stream);
final List<FullToken> tokens = Lists.newArrayList();
Token nextToken = mng.getNextToken();
while (nextToken.kind != 0) {
if (shouldAdd(nextToken)) {
tokens.add(new FullToken(nextToken.image, Integer
.toString(nextToken.kind)));
}
nextToken = mng.getNextToken();
}
return tokens;
}
示例7
@Override
public List<String> tokenListFromCode(final char[] code) {
final FastCharStream stream = new FastCharStream(code);
final ITokenManager mng = getPythonTokenizer(stream);
final List<String> tokens = Lists.newArrayList();
Token nextToken = mng.getNextToken();
while (nextToken.kind != 0) {
if (shouldAdd(nextToken)) {
tokens.add(nextToken.image);
}
nextToken = mng.getNextToken();
}
return tokens;
}
示例8
@Override
public SortedMap<Integer, String> tokenListWithPos(final char[] code) {
final FastCharStream stream = new FastCharStream(code);
final ITokenManager mng = getPythonTokenizer(stream);
final SortedMap<Integer, String> tokens = Maps.newTreeMap();
Token nextToken = mng.getNextToken();
while (nextToken.kind != 0) {
if (shouldAdd(nextToken)) {
// TODO: Bad Heurisitc...
tokens.put(
nextToken.getBeginLine() * 500
+ nextToken.getBeginCol(), nextToken.image);
}
nextToken = mng.getNextToken();
}
return tokens;
}
示例9
@Override
public SortedMap<Integer, FullToken> fullTokenListWithPos(final char[] code) {
final FastCharStream stream = new FastCharStream(code);
final ITokenManager mng = getPythonTokenizer(stream);
final SortedMap<Integer, FullToken> tokens = Maps.newTreeMap();
Token nextToken = mng.getNextToken();
while (nextToken.kind != 0) {
if (shouldAdd(nextToken)) {
// TODO: Bad Heurisitc...
tokens.put(
nextToken.getBeginLine() * 500
+ nextToken.getBeginCol(),
new FullToken(nextToken.image, Integer
.toString(nextToken.kind)));
}
nextToken = mng.getNextToken();
}
return tokens;
}
示例10
@Override
public List<FullToken> getTokenListFromCode(final char[] code) {
final FastCharStream stream = new FastCharStream(code);
final ITokenManager mng = getPythonTokenizer(stream);
final List<FullToken> tokens = Lists.newArrayList();
Token nextToken = mng.getNextToken();
while (nextToken.kind != 0) {
if (shouldAdd(nextToken)) {
tokens.add(new FullToken(nextToken.image, Integer
.toString(nextToken.kind)));
}
nextToken = mng.getNextToken();
}
return tokens;
}
示例11
@Override
public List<String> tokenListFromCode(final char[] code) {
final FastCharStream stream = new FastCharStream(code);
final ITokenManager mng = getPythonTokenizer(stream);
final List<String> tokens = Lists.newArrayList();
Token nextToken = mng.getNextToken();
while (nextToken.kind != 0) {
if (shouldAdd(nextToken)) {
tokens.add(nextToken.image);
}
nextToken = mng.getNextToken();
}
return tokens;
}
示例12
@Override
public SortedMap<Integer, String> tokenListWithPos(final char[] code) {
final FastCharStream stream = new FastCharStream(code);
final ITokenManager mng = getPythonTokenizer(stream);
final SortedMap<Integer, String> tokens = Maps.newTreeMap();
Token nextToken = mng.getNextToken();
while (nextToken.kind != 0) {
if (shouldAdd(nextToken)) {
// TODO: Bad Heurisitc...
tokens.put(
nextToken.getBeginLine() * 500
+ nextToken.getBeginCol(), nextToken.image);
}
nextToken = mng.getNextToken();
}
return tokens;
}
示例13
public static FStringsGrammar createGrammar(String s) {
char[] c = s.toCharArray();
for (int i = 0, z = 0; i < c.length; i++) {
if (c[i] == '\\' && i + 2 < c.length && c[i + 1] == 'N' && c[i + 2] == '{') {
c[i + 2] = '_';
i += 2;
z = i + 1;
for (; z < c.length; z++) {
if (c[z] == '}') {
c[z] = '_';
break;
}
}
}
}
FastCharStream in = new FastCharStream(c);
FStringsGrammar fStringsGrammar = new FStringsGrammar(in);
return fStringsGrammar;
}
示例14
@Override
public FullToken getTokenFromString(final String token) {
final FastCharStream stream = new FastCharStream(token.toCharArray());
final ITokenManager mng = getPythonTokenizer(stream);
final Token pyToken = mng.getNextToken();
return new FullToken(pyToken.image, Integer.toString(pyToken.kind));
}
示例15
@Override
public FullToken getTokenFromString(final String token) {
final FastCharStream stream = new FastCharStream(token.toCharArray());
final ITokenManager mng = getPythonTokenizer(stream);
final Token pyToken = mng.getNextToken();
return new FullToken(pyToken.image, Integer.toString(pyToken.kind));
}
示例16
@Override
public FullToken getTokenFromString(final String token) {
final FastCharStream stream = new FastCharStream(token.toCharArray());
final ITokenManager mng = getPythonTokenizer(stream);
final Token pyToken = mng.getNextToken();
return new FullToken(pyToken.image, Integer.toString(pyToken.kind));
}
示例17
/** Constructor with user supplied FastCharStream. */
public FStringsGrammar(FastCharStream stream) {
token_source = new FStringsGrammarTokenManager(stream);
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
}
示例18
/**
* Actually creates the grammar.
* @param generateTree whether we should generate the AST or not.
*/
public static IGrammar createGrammar(boolean generateTree, int grammarVersion, char[] charArray) {
IGrammar grammar;
FastCharStream in = new FastCharStream(charArray);
switch (grammarVersion) {
case IPythonNature.GRAMMAR_PYTHON_VERSION_2_5:
grammar = new PythonGrammar25(generateTree, in);
break;
case IPythonNature.GRAMMAR_PYTHON_VERSION_2_6:
grammar = new PythonGrammar26(generateTree, in);
break;
case IPythonNature.GRAMMAR_PYTHON_VERSION_2_7:
grammar = new PythonGrammar27(generateTree, in);
break;
case IPythonNature.GRAMMAR_PYTHON_VERSION_3_5:
grammar = new PythonGrammar30(generateTree, in);
break;
case IPythonNature.GRAMMAR_PYTHON_VERSION_3_6:
case IPythonNature.GRAMMAR_PYTHON_VERSION_3_7:
grammar = new PythonGrammar36(generateTree, in);
break;
case IPythonNature.GRAMMAR_PYTHON_VERSION_3_8:
grammar = new PythonGrammar38(generateTree, in);
break;
//case CYTHON: not treated here (only in reparseDocument).
default:
throw new RuntimeException("The grammar specified for parsing is not valid: " + grammarVersion);
}
if (ENABLE_TRACING) {
//grammar has to be generated with debugging info for this to make a difference
grammar.enable_tracing();
}
return grammar;
}
示例19
/**
* Searches for a new line in the input stream. If found, it'll stop right after it, otherwise, the stream will be
* backed up the number of chars that've been read.
*/
protected static boolean searchNewLine(ITokenManager tokenManager, boolean breakOnFirstNotWhitespace) {
boolean foundNewLine = false;
FastCharStream inputStream = tokenManager.getInputStream();
int currentPos = inputStream.getCurrentPos();
try {
while (true) {
try {
char c = inputStream.readChar();
if (c == '\r' || c == '\n') {
if (c == '\r') {
c = inputStream.readChar();
if (c != '\n') {
inputStream.backup(1);
}
}
foundNewLine = true;
break;
}
if (breakOnFirstNotWhitespace && !Character.isWhitespace(c)) {
break;
}
} catch (IOException e) {
break;
}
}
} finally {
if (!foundNewLine) {
inputStream.restorePos(currentPos);
}
}
return foundNewLine;
}
示例20
@Override
public final FastCharStream getInputStream() {
if (this.inputStream == null) {
this.inputStream = (FastCharStream) Reflection.getAttrObj(this, "input_stream", true);
}
return inputStream;
}
示例21
public void testEvalInput() throws ParseException {
String s = "" +
"call(20, 20), 20\n" +
"";
FastCharStream in = new FastCharStream(s.toCharArray());
PythonGrammar36 grammar = new PythonGrammar36(true, in);
Expr eval_input = grammar.eval_input();
assertEquals(
"Expr[value=Tuple[elts=[Call[func=Name[id=call, ctx=Load, reserved=false], args=[Num[n=20, type=Int, num=20], Num[n=20, type=Int, num=20]], keywords=[], starargs=null, kwargs=null], Num[n=20, type=Int, num=20]], ctx=Load, endsWithComma=false]]",
eval_input.toString());
}
示例22
@Override
public ITokenManager getPythonTokenizer(FastCharStream stream) {
final ITokenManager mng = new PythonGrammar27TokenManager(stream);
return mng;
}
示例23
/**
* @param stream
* @return
*/
@Override
public ITokenManager getPythonTokenizer(final FastCharStream stream) {
final ITokenManager mng = new PythonGrammar30TokenManager(stream);
return mng;
}
示例24
@Override
public ITokenManager getPythonTokenizer(FastCharStream stream) {
final ITokenManager mng = new PythonGrammar27TokenManager(stream);
return mng;
}
示例25
/**
* @param stream
* @return
*/
@Override
public ITokenManager getPythonTokenizer(final FastCharStream stream) {
final ITokenManager mng = new PythonGrammar30TokenManager(stream);
return mng;
}
示例26
@Override
public ITokenManager getPythonTokenizer(FastCharStream stream) {
final ITokenManager mng = new PythonGrammar27TokenManager(stream);
return mng;
}
示例27
/**
* @param stream
* @return
*/
@Override
public ITokenManager getPythonTokenizer(final FastCharStream stream) {
final ITokenManager mng = new PythonGrammar30TokenManager(stream);
return mng;
}
示例28
/** Constructor. */
public PythonGrammar36TokenManager(FastCharStream stream){
input_stream = stream;
}
示例29
/** Constructor. */
public PythonGrammar36TokenManager(FastCharStream stream, int lexState){
this(stream);
SwitchTo(lexState);
}
示例30
/** Constructor. */
public PythonGrammar26TokenManager(FastCharStream stream) {
input_stream = stream;
}