A ser entregue no dia 30/mar (Nova data!)

EXPRESSÕES HORÁRIAS SIMPLES
Este primeiro trabalho tem o propósito de introduzir os alunos
nas dificuldades relacionadas às análises léxica e
sintática de um programa quando não se está usando
uma ferramenta de apoio.
Escreva um programa para ler uma linha contendo uma expressão horária e imprimir seu resultado. São válidas as seguintes observações com respeito às expressões horárias:
Seu programa deverá ser capaz de reconhecer e encontrar o valor
das expressões sintaticamente corretas, mas também de
reconhecer e indicar possíveis erros, apontando exatamente
para o local da entrada causador da falha.
EXEMPLO
10:59 +5:02;
Valor = 16:01
18:15 - (10:12 + 10:03);
Valor = -2:00
10::15 + 2:02;
^ minuto esperado
7:42 15:16;
^ operador esperado
(5:02 + 6:07)
^ ; esperado
O trabalho pode ser feito individualmente ou em duplas (DE DOIS ALUNOS!).
O trabalho deverá ser feito na linguagem python. Esta
é uma ótima oportunidade de você aprender uma das ferramentas que mais crescem
ultimamente. Aqui estão alguns links de ajuda:
Outras possibilidades de Linguagens de Programa¸ão (escolha apenas uma):
+, ABC, Ada, Alan, ALF, Algol, Alloy, Amiga, E, AMPL, APL, AWK, B, BASIC, BCPL, BETA, Bliss, Blue, Business, Rules!, C, C++, Cecil, Centum, Charity, CHILL, CLAIRE, Clean, COBOL, COMAL, Corn, cT, D, DCL, Dylan, E, Eiffel, elastiC, Elf, Erlang, Euphoria, Felix, ferite, Forth, Fortran, Fortress, Fril, GNU, E, Guile, , Haskell, Hugo, ICI, Icon, Inform, J, Java, Joy, K, LabVIEW, Lava, LIFE, Limbo, Lingo, LISP, LOGO, Lua, Matlab, MC#, MCPL, Mercury, Miranda, ML, Modula-2, Modula-3, Nemerle, NeoBook, NESL, NetRexx, Oberon-2, Objective-C, Obliq, Occam, Octave, Oz, Pascal, Perl, Phantom, (Phi), PHP, Pike, (LPC), PiXCL, PL/B, PL/I, Pliant, Postscript, Prolog, Q, R, REBOL, Rexx, RPG, RPL/2, Ruby, S, Sather, Scheme, Self, SETL, Simula, Sisal, Smalltalk, SNOBOL, SR, TADS, Tcl, Theta, TOM, Turing, Visual, Basic, WinBatch (WIL), Yorick ou ZPL
