@@ -41,7 +41,6 @@ bool GCodeParser::volumetric_enabled;
4141 TempUnit GCodeParser::input_temp_units = TEMPUNIT_C;
4242#endif
4343
44-
4544char *GCodeParser::command_ptr,
4645 *GCodeParser::string_arg,
4746 *GCodeParser::value_ptr;
@@ -127,7 +126,6 @@ void GCodeParser::reset() {
127126//
128127// #endif
129128
130-
131129// Enable Math Functions and assigning values to variables in GCode
132130// #if ENABLED(GCODE_MATH_STRINGS)
133131//
@@ -170,7 +168,6 @@ void GCodeParser::reset() {
170168//
171169// #endif
172170
173-
174171/* *
175172 * Populate the command line state (command_letter, codenum, subcode, and string_arg)
176173 * by parsing a single line of GCode. 58 bytes of SRAM are used to speed up seen/value.
@@ -238,7 +235,9 @@ void GCodeParser::parse(char *p) {
238235 * With Motion Modes enabled any axis letter can come first.
239236 */
240237 switch (letter) {
241- case ' G' : case ' M' : case ' T' : case ' L' : TERN_ (MARLIN_DEV_MODE, case ' D' :) {
238+ TERN_ (MARLIN_DEV_MODE, case ' D' :)
239+ TERN_ (VARIABLE_SUPPORT, case ' L' :)
240+ case ' G' : case ' M' : case ' T' : {
242241 // Skip spaces to get the numeric part
243242 while (*p == ' ' ) p++;
244243
@@ -341,13 +340,13 @@ void GCodeParser::parse(char *p) {
341340 default : break ;
342341 }
343342
344- // Only use string_arg for these L variables
345- if (letter == ' L ' ) switch (codenum) {
346- TERN_ (VARIABLE_SUPPORT, case 100 ... 115 :)
347- var_arg = input_var (p);
348- return ;
349- default : break ;
350- }
343+ # if ENABLED(VARIABLE_SUPPORT)
344+ // Only use string_arg for these L variables
345+ if (letter == ' L ' ) switch (codenum) {
346+ case 100 ... 115 : var_arg = input_var (p); return ;
347+ default : break ;
348+ }
349+ # endif
351350
352351 #if ENABLED(DEBUG_GCODE_PARSER)
353352 const bool debug = codenum == 800 ;
@@ -407,25 +406,28 @@ void GCodeParser::parse(char *p) {
407406
408407 while (*p == ' ' ) p++; // Skip spaces between parameters & values
409408
409+ bool has_val = false ;
410+
410411 #if ENABLED(GCODE_QUOTED_STRINGS)
411- const bool is_str = (*p == ' "' ), has_val = is_str || valid_float (p);
412+ const bool is_str = (*p == ' "' );
413+ has_val = is_str || valid_float (p);
412414 char * const valptr = has_val ? is_str ? unescape_string (p) : p : nullptr ;
413415 #else
414- const bool has_val = valid_float (p);
415- #if ENABLED(FASTER_GCODE_PARSER)
416- char * const valptr = has_val ? p : nullptr ;
417- #endif
416+ has_val = valid_float (p);
417+ #if ENABLED(FASTER_GCODE_PARSER)
418+ char * const valptr = has_val ? p : nullptr ;
419+ #endif
418420 #endif
419421
420-
421422 #if ENABLED(VARIABLE_SUPPORT)
422- const bool is_var = (*p == ' L' ), has_val = is_int || valid_float (p + 1 );
423- char * const varptr = has_val ? is_var ? input_var (p) : p+1 : nullptr ;
423+ const bool is_var = (*p == ' L' );
424+ has_val = is_int || valid_float (p + 1 );
425+ char * const varptr = has_val ? is_var ? input_var (p) : p + 1 : nullptr ;
424426 #else
425- const bool has_val = valid_float (p);
426- #if ENABLED(FASTER_GCODE_PARSER)
427- char * const varptr = has_val ? p : nullptr ;
428- #endif
427+ has_val = valid_float (p);
428+ #if ENABLED(FASTER_GCODE_PARSER)
429+ char * const varptr = has_val ? p : nullptr ;
430+ #endif
429431 #endif
430432
431433 #if ENABLED(DEBUG_GCODE_PARSER)
0 commit comments