mirror of https://github.com/vitalif/openscad
Clifford Wolf:
Added commandline_commands support git-svn-id: http://svn.clifford.at/openscad/trunk@132 b57f626f-c46c-0410-a088-ec61d464b74cstl_dim
parent
ac26c9d683
commit
8394d6002b
|
@ -411,7 +411,7 @@ void MainWindow::compile(bool procevents)
|
|||
root_ctx.set_variable("$vpr", vpr);
|
||||
|
||||
last_compiled_doc = editor->toPlainText();
|
||||
root_module = parse(last_compiled_doc.toAscii().data(), false);
|
||||
root_module = parse((last_compiled_doc + commandline_commands).toAscii().data(), false);
|
||||
|
||||
delete highlighter;
|
||||
highlighter = new Highlighter(editor->document());
|
||||
|
|
11
openscad.cc
11
openscad.cc
|
@ -30,11 +30,13 @@
|
|||
|
||||
static void help(const char *progname)
|
||||
{
|
||||
fprintf(stderr, "Usage: %s [ -m make_command ] [ filename ]\n", progname);
|
||||
fprintf(stderr, " %s { -s stl_file | -o off_file } [ -d deps_file ] [ -m make_command ] filename\n", progname);
|
||||
fprintf(stderr, "Usage: %s [ { -s stl_file | -o off_file } [ -d deps_file ] ]\\\n"
|
||||
"%*s[ -m make_command ] [ -D var=val [..] ] filename\n",
|
||||
progname, strlen(progname)+8, "");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
QString commandline_commands;
|
||||
const char *make_command = NULL;
|
||||
QSet<QString> dependencies;
|
||||
|
||||
|
@ -80,7 +82,7 @@ int main(int argc, char **argv)
|
|||
|
||||
int opt;
|
||||
|
||||
while ((opt = getopt(argc, argv, "s:o:d:m:")) != -1)
|
||||
while ((opt = getopt(argc, argv, "s:o:d:m:D:")) != -1)
|
||||
{
|
||||
switch (opt)
|
||||
{
|
||||
|
@ -104,6 +106,9 @@ int main(int argc, char **argv)
|
|||
help(argv[0]);
|
||||
make_command = optarg;
|
||||
break;
|
||||
case 'D':
|
||||
commandline_commands += QString(optarg) + QString(";\n");
|
||||
break;
|
||||
default:
|
||||
help(argv[0]);
|
||||
}
|
||||
|
|
|
@ -828,6 +828,7 @@ public slots:
|
|||
extern AbstractModule *parse(const char *text, int debug);
|
||||
extern int get_fragments_from_r(double r, double fn, double fs, double fa);
|
||||
|
||||
extern QString commandline_commands;
|
||||
extern int parser_error_pos;
|
||||
extern QPointer<MainWindow> current_win;
|
||||
|
||||
|
|
10
parser.y
10
parser.y
|
@ -112,9 +112,19 @@ statement:
|
|||
}
|
||||
} |
|
||||
TOK_ID '=' expr ';' {
|
||||
bool add_new_assignment = true;
|
||||
for (int i = 0; i < module->assignments_var.size(); i++) {
|
||||
if (module->assignments_var[i] != QString($1))
|
||||
continue;
|
||||
delete module->assignments_expr[i];
|
||||
module->assignments_expr[i] = $3;
|
||||
add_new_assignment = false;
|
||||
}
|
||||
if (add_new_assignment) {
|
||||
module->assignments_var.append($1);
|
||||
module->assignments_expr.append($3);
|
||||
free($1);
|
||||
}
|
||||
} |
|
||||
TOK_MODULE TOK_ID '(' arguments_decl optional_commas ')' {
|
||||
Module *p = module;
|
||||
|
|
Loading…
Reference in New Issue