-const char *lex_entire_line (void);
-const char *lex_rest_of_line (int *end_dot);
-void lex_discard_line (void);
-void lex_set_prog (char *p);
+const char *lex_entire_line (const struct lexer *);
+const struct string *lex_entire_line_ds (const struct lexer *);
+const char *lex_rest_of_line (const struct lexer *);
+bool lex_end_dot (const struct lexer *);
+void lex_preprocess_line (struct string *, enum syntax_mode,
+ bool *line_starts_command,
+ bool *line_ends_command);
+void lex_discard_line (struct lexer *);
+void lex_discard_rest_of_command (struct lexer *);