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

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

  1. package org.ooc.frontend.parser;
  2. import org.ooc.frontend.model.tokens.Token;
  3. import org.ooc.frontend.model.tokens.TokenReader;
  4. import org.ooc.frontend.model.tokens.Token.TokenType;
  5. import org.ubi.CompilationFailedError;
  6. import org.ubi.SourceReader;
  7. public class UnmangledParser {
  8. public static String parse(SourceReader sReader, TokenReader reader) throws CompilationFailedError {
  9. String unmangledName = null;
  10. if(reader.peek().type == TokenType.UNMANGLED_KW) {
  11. reader.skip();
  12. if(reader.peek().type == TokenType.OPEN_PAREN) {
  13. reader.skip();
  14. Token nameToken = reader.read();
  15. unmangledName = nameToken.get(sReader);
  16. if(reader.read().type != TokenType.CLOS_PAREN) {
  17. throw new CompilationFailedError(null,
  18. "Expected closing parenthesis after unmangled specification, but got "+reader.peek());
  19. }
  20. } else {
  21. unmangledName = "";
  22. }
  23. }
  24. return unmangledName;
  25. }
  26. }