-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtoken.h
60 lines (43 loc) · 2.05 KB
/
token.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
/* Identifier : semua character a..z atau A..Z atau '_' */
/* Digit : semua angka mulai dari 0..9 dan '.' */
/* Number : semua kombinasi dari digit /* Identifier : semua character a..z atau A..Z atau '_' */
/* Digit : semua angka mulai dari 0..9 dan '.' */
/* Number : semua kombinasi dari digit digit yang tersedia atau ditambah dengan symbol + atau - */
/* Symbol : ^ * / + - */
/* Apabila token berisi sebuah number maka tok.tkn = 'b' */
/* Apabila token berisi sebuah identifier maka tok.tkn = 'i' */
/* Apabila token berisi sebuah stop maka tok.tkn = 'x' */
/*Spek lainnya akan ditulis lebih lanjut di waktu yang lain, semoga yang ini cukup jelas */
#ifndef token_H
#define token_H
#include "TokenType.h"
#include "boolean.h"
#include "stacktkn.h"
#include <math.h>
boolean isNumber(Token tok);
/* Mengembalikan 'true' apabila tok.tkn == "b" */
boolean isSymbol(Token tok, char s);
/* Mengembalikan 'true' apabila tok.tkn == s */
boolean isIdentifier(Token tok);
/* Mengembalikan 'true' apabila tok.tkn == "identifier" */
boolean isStop(Token tok);
/* Mengembalikan 'true' apabila tok.tkn == "x" */
Token number(char text[100], int pos);
/* Mengembalikan Token dengan nilai tok.pos = pos, dan tok.tkn = "number" */
Token symbol(char text, int pos);
/* Mengembalikan Token dengan nilai tok.pos = pos dan tok.tkn = "symbol" */
Token identifier(char text[100], int pos);
/* Mengembalikan Token dengan nilai tok.pos = pos dan tok.tkn = "identifier" */
Token stop(int pos);
/* Mengembalikan Token dengan nilai tok.pos = pos dan tok.tkn = "x" */
boolean isId(char ch);
/* Mengembalikan 'true' jika ch adalah sebuah Identifier, lihat definisi Identifier diatas */
boolean isId1(char ch);
/* Mengembalikan 'true' jika ch adalah sebuah Identifier, lihat definisi Identifier diatas */
boolean isDigit(char ch);
/* Mengembalikan 'true' jika ch adalah sebuah Digit, lihat definisi Digit diatas */
TokProcess nextToken(char s[100], int pos);
/* Mengembalikan dan membaca token selanjutnya */
Stack tokenize(char s[100]);
/* Mengembalikan sebuah StackOfToken dari hasil pembacaan token */
#endif