Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
proview
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Esteban Blanc
proview
Commits
ebcccb75
Commit
ebcccb75
authored
Oct 18, 2010
by
Claes Sjofors
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Script, bugfix in double right parenthesis and multiple execution of single line command
parent
c9fedbbf
Changes
2
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
308 additions
and
197 deletions
+308
-197
src/lib/co/src/co_ccm.c
src/lib/co/src/co_ccm.c
+144
-184
src/lib/co/src/co_ccm.h
src/lib/co/src/co_ccm.h
+164
-13
No files found.
src/lib/co/src/co_ccm.c
View file @
ebcccb75
This diff is collapsed.
Click to expand it.
src/lib/co/src/co_ccm.h
View file @
ebcccb75
...
...
@@ -32,6 +32,7 @@ extern "C" {
#define CCM_DECL_UNKNOWN 4
#define K_STRING_SIZE 400
#define K_LINE_SIZE 400
typedef
long
int
ccm_tInt
;
typedef
float
ccm_tFloat
;
...
...
@@ -40,24 +41,159 @@ typedef char ccm_tString[K_STRING_SIZE];
#define ccm_cIntFormat "%ld"
typedef
struct
s_arg_
{
char
value_name
[
80
];
int
value_decl
;
ccm_tInt
value_int
;
ccm_tFloat
value_float
;
ccm_tString
value_string
;
int
value_type
;
int
var_decl
;
char
var_name
[
32
];
long
int
value_returned
;
struct
s_arg_
*
next
;
char
value_name
[
80
];
int
value_decl
;
ccm_tInt
value_int
;
ccm_tFloat
value_float
;
ccm_tString
value_string
;
int
value_type
;
int
var_decl
;
char
var_name
[
32
];
long
int
value_returned
;
struct
s_arg_
*
next
;
}
ccm_sArg
;
typedef
int
(
*
ccm_tFunc
)
(
void
*
,
ccm_sArg
*
,
int
,
int
*
,
ccm_tFloat
*
,
ccm_tInt
*
,
char
*
);
typedef
struct
ccm_sLine_
{
char
line
[
K_LINE_SIZE
];
int
row
;
int
type
;
struct
ccm_sLine_
*
next
;
struct
ccm_sLine_
*
prev
;
}
ccm_sLine
;
typedef
struct
s_intvar_
{
char
name
[
32
];
ccm_tInt
*
value
;
int
elements
;
int
array
;
struct
s_intvar_
*
next
;
}
ccm_sIntvar
;
typedef
struct
s_floatvar_
{
char
name
[
32
];
ccm_tFloat
*
value
;
int
elements
;
int
array
;
struct
s_floatvar_
*
next
;
}
ccm_sFloatvar
;
typedef
struct
s_stringvar_
{
char
name
[
32
];
char
*
value
;
int
elements
;
int
array
;
struct
s_stringvar_
*
next
;
}
ccm_sStringvar
;
typedef
struct
ccm_sOperand_
{
int
type
;
char
name
[
100
];
int
value_decl
;
ccm_tInt
value_int
;
ccm_tFloat
value_float
;
ccm_tString
value_string
;
int
result_decl
;
ccm_tInt
result_int
;
ccm_tFloat
result_float
;
ccm_tString
result_string
;
int
result_done
;
int
o_operator
;
int
local_type
;
int
local_operator
;
int
prio
;
int
parlevel
;
int
done
;
int
orig_type
;
ccm_tFunc
func
;
struct
ccm_sOperand_
*
next
;
struct
ccm_sOperand_
*
prev
;
}
ccm_sOperand
;
typedef
struct
ccm_sFunc_
{
char
name
[
32
];
int
decl
;
ccm_sLine
*
start_line
;
ccm_sLine
*
end_line
;
struct
ccm_sFunc_
*
next
;
}
ccm_sFunc
;
typedef
struct
{
ccm_sLine
*
main_start_line
;
ccm_sLine
*
main_end_line
;
int
verify
;
int
current_row
;
int
error_row
;
char
error_line
[
160
];
int
break_before
;
int
(
*
externcmd_func
)
(
char
*
,
void
*
);
int
(
*
deffilename_func
)
(
char
*
,
char
*
,
void
*
);
int
(
*
errormessage_func
)
(
char
*
,
int
,
void
*
);
ccm_sFunc
*
func_list
;
ccm_sIntvar
*
gblint_list
;
ccm_sFloatvar
*
gblfloat_list
;
ccm_sStringvar
*
gblstring_list
;
ccm_sLine
*
line_list
;
void
*
main_funcctx
;
int
extfunc_return_mode
;
char
extfunc_line
[
256
];
char
last_fgets
[
1024
];
ccm_sArg
*
main_arg_list
;
int
main_arg_count
;
void
*
client_data
;
}
*
ccm_tFileCtx
;
typedef
struct
{
char
line
[
256
];
ccm_tFileCtx
filectx
;
int
pos
;
int
delim_pos
;
int
state
;
int
level
;
int
num_decl
;
int
num_neg
;
char
msg
[
80
];
int
last_type
;
ccm_sOperand
*
curr_operand
;
ccm_sOperand
*
list
;
}
*
ccm_tRowCtx
;
typedef
struct
{
char
msg
[
80
];
ccm_tFileCtx
filectx
;
ccm_sIntvar
*
locint_list
;
ccm_sFloatvar
*
locfloat_list
;
ccm_sStringvar
*
locstring_list
;
ccm_sOperand
*
list
;
ccm_sLine
*
current_line
;
int
is_main
;
int
for_init
;
ccm_sArg
*
arg_list
;
int
arg_count
;
}
*
ccm_tFuncCtx
;
typedef
struct
{
char
name
[
32
];
int
(
*
sysfunc
)
(
void
*
,
ccm_sArg
*
,
int
,
int
*
,
ccm_tFloat
*
,
ccm_tInt
*
,
char
*
);
}
ccm_sSysFunc
;
typedef
struct
{
ccm_tFuncCtx
funcctx
;
int
result_decl
;
ccm_tFloat
result_float
;
ccm_tInt
result_int
;
char
result_string
;
}
*
ccm_tSingleLineCtx
;
int
ccm_register_function
(
const
char
*
name
,
int
(
*
sysfunc
)
(
void
*
,
ccm_sArg
*
,
int
,
int
*
,
ccm_tFloat
*
,
ccm_tInt
*
,
char
*
)
const
char
*
name
,
int
(
*
sysfunc
)
(
void
*
,
ccm_sArg
*
,
int
,
int
*
,
ccm_tFloat
*
,
ccm_tInt
*
,
char
*
)
);
int
ccm_file_exec
(
...
...
@@ -112,6 +248,21 @@ int ccm_ref_external_var(
void
**
valuep
);
int
ccm_singleline_init
(
ccm_tSingleLineCtx
*
ctx
,
char
*
line
,
int
(
*
errormessage_func
)
(
char
*
,
int
,
void
*
)
);
int
ccm_singleline_exec
(
ccm_tSingleLineCtx
ctx
);
void
ccm_singleline_free
(
ccm_tSingleLineCtx
ctx
);
#ifdef __cplusplus
}
#endif
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment