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
|
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include "7ed.h"
#include "input.h"
#include "i_validation.h"
#include <stdint.h>
int call_L_plus_continue(char *multiple) {
fprintf(stdout, "+ or - CONTINUE %s\n", multiple);
return 0;
}
uint64_t call_L_plus_minus_only(uint64_t focus, char p_or_m) {
switch (p_or_m) {
case '+':
return focus+1;
break;
case '-':
return focus-1;
break;
}
return _NA;
}
uint64_t call_L(char *multiple, uint64_t focus) {
int imm = _IMM_NUMBER;
if (multiple[1] == '\n') {
imm = _NA;
fprintf(stdout, "L only\n");
}
if (multiple[1] == '+' || multiple[1] == '-') {
imm = _NA;
if (multiple[2] == '\n') { // This is where - and + only inputs happen and get processed
focus = call_L_plus_minus_only(focus, multiple[1]);
return focus;
}
call_L_plus_continue(multiple);
}
if (imm == _IMM_NUMBER) {
fprintf(stdout, "immediate\n");
}
return focus;
}
int call_N(char *multiple) {
fprintf(stdout, "%s\n", multiple);
return 0;
}
int call_X(char *multiple) {
fprintf(stdout, "%s\n", multiple);
return 0;
}
int call_D(char *multiple) {
fprintf(stdout, "%s\n", multiple);
return 0;
}
|