diff --git a/src/snc/Makefile b/src/snc/Makefile
index 7be0eebffeb8380c4e7a8205d40116b2779ad11d..5e42dfebf7f2d4e88393d787cb0f020bbe312fe2 100644
--- a/src/snc/Makefile
+++ b/src/snc/Makefile
@@ -33,8 +33,8 @@ snc_LIBS += $(EPICS_BASE_IOC_LIBS)
 snc_SRCS += lexer.c         # generated by re2c
 snc_SRCS += snl.c           # generated by lemon
 
-snc_SRCS += snc_main.c      # main program
-snc_SRCS += parse.c         # parse routines
+snc_SRCS += main.c          # main program
+snc_SRCS += expr.c          # generate expressions
 snc_SRCS += var_types.c     # declarations
 snc_SRCS += analysis.c      # analysis routines
 snc_SRCS += gen_code.c      # code generation
diff --git a/src/snc/analysis.c b/src/snc/analysis.c
index c9536824a10e498d49b666fe150aa980b1efa672..f31dee5b4de3badb8474edb46317130013be1bdf 100644
--- a/src/snc/analysis.c
+++ b/src/snc/analysis.c
@@ -16,8 +16,8 @@
 
 #include "types.h"
 #include "sym_table.h"
-#include "snc_main.h"
-#include "parse.h"
+#include "main.h"
+#include "expr.h"
 #include "analysis.h"
 
 static const int impossible = 0;
diff --git a/src/snc/parse.c b/src/snc/expr.c
similarity index 98%
rename from src/snc/parse.c
rename to src/snc/expr.c
index 5197aeaddfcf6e0a6c433c7fb574b668c84c353e..31ef7d03020bb41bb34939762eb4de1d291e911a 100644
--- a/src/snc/parse.c
+++ b/src/snc/expr.c
@@ -20,8 +20,8 @@
 #define expr_type_GLOBAL
 #include "types.h"
 #undef expr_type_GLOBAL
-#include "parse.h"
-#include "snc_main.h"
+#include "expr.h"
+#include "main.h"
 
 /* Expr is the generic syntax tree node */
 Expr *expr(
diff --git a/src/snc/parse.h b/src/snc/expr.h
similarity index 100%
rename from src/snc/parse.h
rename to src/snc/expr.h
diff --git a/src/snc/gen_code.c b/src/snc/gen_code.c
index 5db7cc1d06b4c31e2f4a4c10bf587ad245644fbc..986d7ac2eb6d8228018790f9a18919948ff48eeb 100644
--- a/src/snc/gen_code.c
+++ b/src/snc/gen_code.c
@@ -17,7 +17,7 @@
 #include	"analysis.h"
 #include	"gen_ss_code.h"
 #include	"gen_tables.h"
-#include	"snc_main.h"
+#include	"main.h"
 #include	"gen_code.h"
 
 static void gen_preamble(char *prog_name);
diff --git a/src/snc/gen_ss_code.c b/src/snc/gen_ss_code.c
index 53938c77f0bdf9350679365ac4bde7a60e51745d..f381526541c67f3545865e19def48e9cf45378ca 100644
--- a/src/snc/gen_ss_code.c
+++ b/src/snc/gen_ss_code.c
@@ -13,10 +13,10 @@
 #include	<string.h>
 #include	<assert.h>
 
-#include	"parse.h"
+#include	"expr.h"
 #include	"analysis.h"
 #include	"gen_code.h"
-#include	"snc_main.h"
+#include	"main.h"
 #include	"sym_table.h"
 #include	"gen_ss_code.h"
 
diff --git a/src/snc/gen_tables.c b/src/snc/gen_tables.c
index b4a7064a6fcaf110b67c456950d49fe629bd46f6..898f96ac84a6cb95de70ea3d4479f136c7322b55 100644
--- a/src/snc/gen_tables.c
+++ b/src/snc/gen_tables.c
@@ -16,10 +16,10 @@
 
 #include	"seqCom.h"
 #include	"analysis.h"
-#include	"snc_main.h"
+#include	"main.h"
 #include	"sym_table.h"
 #include	"gen_code.h"
-#include	"parse.h"
+#include	"expr.h"
 #include	"gen_tables.h"
 
 typedef struct event_mask_args {
diff --git a/src/snc/snc_main.c b/src/snc/main.c
similarity index 99%
rename from src/snc/snc_main.c
rename to src/snc/main.c
index a1160807284709081b1cd0ddc0da72c7ece26c95..cbf0a2da7825bc9644a42bd066e29c9fb1ab34d9 100644
--- a/src/snc/snc_main.c
+++ b/src/snc/main.c
@@ -15,10 +15,10 @@
 #include	<stdarg.h>
 
 #include	"types.h"
-#include	"lexer.h"
+#include	"parser.h"
 #include	"analysis.h"
 #include	"gen_code.h"
-#include	"snc_main.h"
+#include	"main.h"
 
 #include <seqVersion.h>
 
diff --git a/src/snc/snc_main.h b/src/snc/main.h
similarity index 100%
rename from src/snc/snc_main.h
rename to src/snc/main.h
diff --git a/src/snc/lexer.h b/src/snc/parser.h
similarity index 89%
rename from src/snc/lexer.h
rename to src/snc/parser.h
index 92487bcc4f418b40ebaaea11e9ca3df22ccdfd59..90e224ce7a641d26e8a6df14e4aa908761398377 100644
--- a/src/snc/lexer.h
+++ b/src/snc/parser.h
@@ -4,10 +4,9 @@
 		(see file Copyright.HZB included in this distribution)
 ***************************************************************************
 		Interface to lemon generated parser
-                TODO: should rename this file
 ***************************************************************************/
-#ifndef INCLlexerh
-#define INCLlexerh
+#ifndef INCLparserh
+#define INCLparserh
 
 #include "types.h"
 
@@ -29,4 +28,4 @@ void snlParserFree(
 
 void snlParserTrace(FILE *TraceFILE, char *zTracePrompt);
 
-#endif	/*INCLlexerh*/
+#endif	/*INCLparserh*/
diff --git a/src/snc/snl.lem b/src/snc/snl.lem
index 198470741acf270f7d2b23630e4214fe63b37073..c204e24126a8ff973450128ac969484f9db39da0 100644
--- a/src/snc/snl.lem
+++ b/src/snc/snl.lem
@@ -10,9 +10,9 @@
 #include <string.h>
 #include <assert.h>
 
-#include "parse.h"
-#include "snc_main.h"
-#include "lexer.h"
+#include "expr.h"
+#include "main.h"
+#include "parser.h"
 }
 
 %extra_argument { Expr **presult }
diff --git a/src/snc/snl.re b/src/snc/snl.re
index a0639b3b8a6a7fd31c0895502b33586c9f39340d..9a3bd64886bdfb49cd5859acfb14c04ee9f1d91c 100644
--- a/src/snc/snl.re
+++ b/src/snc/snl.re
@@ -12,8 +12,8 @@
 #include <stdarg.h>
 
 #include "snl.h"
-#include "snc_main.h"
-#include "lexer.h"
+#include "main.h"
+#include "parser.h"
 
 #define	EOI		0
 
diff --git a/src/snc/var_types.c b/src/snc/var_types.c
index a92a4ecae34793b00f1658f9fa96bf5f4e3d0081..940969e4f69ec66dc2e7dc29b996fde8e85e6a02 100644
--- a/src/snc/var_types.c
+++ b/src/snc/var_types.c
@@ -7,8 +7,8 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-#include "snc_main.h"
-#include "parse.h"
+#include "main.h"
+#include "expr.h"
 
 /* #define DEBUG */