/** * Verifica tipos (float, string e int) */ private int VerifyTypes(string readLine) { var character = readLine[Position]; /* int e float */ if (character >= '1' && character <= '9') { var startPosition = Position; var type = "INTEGER"; while (Position + 1 < readLine.Length) { Position++; var nextCharacter = readLine[Position]; if (nextCharacter >= '0' && nextCharacter <= '9') { Lexeme += nextCharacter.ToString(); } else if (nextCharacter.Equals('.')) //se encontrou . então é float { if (type.Equals("FLOAT")) { break; } else { Lexeme += nextCharacter.ToString(); type = "FLOAT"; } } else { Position--; break; } } var newToken = new TokensFound("TOKEN." + type, Lexeme, startPosition, Line); TokensFound.Add(newToken); } /* string */ else if (character.Equals('"') || character.Equals('\'')) { var startPosition = Position; while (Position + 1 < readLine.Length) { Position++; var nextCharacter = readLine[Position]; Lexeme += nextCharacter.ToString(); if (nextCharacter.Equals(character)) { break; } } if (Lexeme.LastIndexOf(character).Equals(0)) //string nao foi fechado, retorna erro { return(0); } var newToken = new TokensFound("TOKEN.STRING", Lexeme, startPosition, Line); TokensFound.Add(newToken); return(1); } return(2); }