/src/org/ooc/frontend/parser/AccessParser.java

http://github.com/nddrylliog/ooc · Java · 33 lines · 26 code · 7 blank · 0 comment · 4 complexity · 32fccd55d5511cf23b6c0917c1a71352 MD5 · raw file

  1. package org.ooc.frontend.parser;
  2. import org.ooc.frontend.model.Module;
  3. import org.ooc.frontend.model.Type;
  4. import org.ooc.frontend.model.TypeAccess;
  5. import org.ooc.frontend.model.VariableAccess;
  6. import org.ooc.frontend.model.tokens.Token;
  7. import org.ooc.frontend.model.tokens.TokenReader;
  8. import org.ubi.SourceReader;
  9. public class AccessParser {
  10. public static VariableAccess parse(Module module, SourceReader sReader, TokenReader reader) {
  11. int mark = reader.mark();
  12. Token token = reader.peek();
  13. if(token.isNameToken()) {
  14. Type type = TypeParser.parse(module, sReader, reader);
  15. if(type != null && type.getTypeParams().size() > 0) {
  16. return new TypeAccess(type, token);
  17. }
  18. reader.reset(mark);
  19. reader.skip();
  20. String name = token.get(sReader);
  21. return new VariableAccess(name, token);
  22. }
  23. reader.reset(mark);
  24. return null;
  25. }
  26. }