-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvalidation.h
86 lines (63 loc) · 2.45 KB
/
validation.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/*!
\file validation.h
\brief Protótipo das funções que validam o .class.
Este arquivo contém os protótipos das funções que validam o arquivo .class
passado como parâmetro de acordo com o .class gerado através do comando
<javac {arquivo.java} -source 1.2 -target 1.2>
\author Alisson Carvalho 12/0072521
\author Ana Carolina Lopes 11/0107578
\author Géssica Neves Sodré da Silva 11/0146115
\author Ivan Sena 10/0088031
\author Laís Mendes Gonçalves 11/0033647
*/
/**
* \defgroup validation Validação
*
* Módulo responsável validação do formato .class.
*
* @{
*/
#ifndef VALIDATION_H
#define VALIDATION_H
#include "types.h"
#include "macros.h"
#include "recuperar_constant_pool.h"
#include "string.h"
/*!
\brief Valida o número mágico.
\param magic Valor do magic number.
\return Falso, no caso de magic number inválido. True, no caso de magic number válido.
*/
bool validar_magic(u4 magic);
/*!
\brief Verifica se nome do arquivo é igual ao nome do atributo sourcefile
\param constant_pool ponteiro para a constant_pool
\param attributes_count quantidade de atributos
\param attributes ponteiro para os atributos
\param nome_arquivo nome do arquivo
\return Falso, no caso nomes sejam diferentes
*/
bool validar_nome(cp_info *constant_pool, u2 attributes_count, attribute_info *attributes, char *nome_arquivo);
/*!
\brief Valida as versões minor e major.
Valida as versões minor e major. Para k ≥ 2, JDK release 1.k suporta formatos
de arquivos class entre 45.0 e 44+k.0, incluindo as extremidades.
\param minor Minor version number.
\param u2 major Major version number.
\return Falso, no caso de versão inválida. True, no caso de versão válida.
*/
bool validar_version(u2 minor, u2 major);
/*!
\brief Verifica se a tag lida é válida.
\param tag Tag a ser verificada.
\return Falso, caso tag seja inválida, ou true, caso seja válida.
*/
bool validar_tag(u2 tag);
/*!
\brief Verifica se as access flags lidas são válida.
\param flags Tag a ser verificada.
\return Falso, caso alguma access flag seja inválida, ou true, caso todas sejam válidas.
*/
bool validar_access_flag(u2 flags);
#endif /* VALIDATION_H */
/** @} */ // fim da definição de validation