From f1dfb1eb04a705521238dba64e09bb9ecdea794f Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Tue, 29 Aug 2017 00:05:39 +0200 Subject: Starting to get an idea of how it's going to work. --- instance-calculator/src/QuickParser.java | 58 ++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 instance-calculator/src/QuickParser.java (limited to 'instance-calculator/src/QuickParser.java') diff --git a/instance-calculator/src/QuickParser.java b/instance-calculator/src/QuickParser.java new file mode 100644 index 0000000..47cea27 --- /dev/null +++ b/instance-calculator/src/QuickParser.java @@ -0,0 +1,58 @@ +/* FIXME: Finer imports */ +import java.io.*; +import java.util.regex.*; +import java.util.*; + +public class QuickParser +{ + private static final Pattern instr_pattern; + private final BufferedReader buffered_reader; + + static + { + instr_pattern = Pattern.compile("\\((?[a-z_0-9 \"]+)\\)"); + } + public QuickParser (final String filename) + throws FileNotFoundException + { + buffered_reader = new BufferedReader(new FileReader(filename)); + } + + public void finalize () + throws IOException + { + buffered_reader.close(); + } + + public String[] parse_line () + throws IOException + { + final List result; + final Matcher matcher; + String line; + + do + { + line = buffered_reader.readLine(); + + if (line == null) + { + return new String[0]; + } + + line = line.replaceAll("\\s+"," "); + } + while (line.length() < 3 || line.startsWith(";")); + + matcher = instr_pattern.matcher(line); + + if (!matcher.find()) + { + System.err.println("[E] Invalid instruction \"" + line + "\""); + + return null; + } + + return matcher.group(1).split(" |\t"); + } +} -- cgit v1.2.3-70-g09d2 From e90c20f7c17b73c6ae8ff1d653278144c713a0e6 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Sat, 2 Sep 2017 14:48:32 +0200 Subject: Finer imports. --- instance-calculator/src/Main.java | 8 +++++--- instance-calculator/src/ModelFile.java | 3 ++- instance-calculator/src/QuickParser.java | 12 ++++++++---- instance-calculator/src/VHDLArchitecture.java | 7 ++++++- instance-calculator/src/VHDLComponent.java | 5 ++++- instance-calculator/src/VHDLEntity.java | 6 ++++-- instance-calculator/src/VHDLProcess.java | 7 +++++-- instance-calculator/src/VHDLWaveform.java | 6 ++++-- 8 files changed, 38 insertions(+), 16 deletions(-) (limited to 'instance-calculator/src/QuickParser.java') diff --git a/instance-calculator/src/Main.java b/instance-calculator/src/Main.java index 6fc950f..b66a63b 100644 --- a/instance-calculator/src/Main.java +++ b/instance-calculator/src/Main.java @@ -1,7 +1,9 @@ -/* FIXME: Finer imports */ -import java.util.*; +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Deque; -import java.io.*; +import java.io.FileWriter; public class Main { diff --git a/instance-calculator/src/ModelFile.java b/instance-calculator/src/ModelFile.java index 1f9297e..be84674 100644 --- a/instance-calculator/src/ModelFile.java +++ b/instance-calculator/src/ModelFile.java @@ -1,4 +1,5 @@ -import java.io.*; +import java.io.IOException; +import java.io.FileNotFoundException; public class ModelFile { diff --git a/instance-calculator/src/QuickParser.java b/instance-calculator/src/QuickParser.java index 47cea27..383373e 100644 --- a/instance-calculator/src/QuickParser.java +++ b/instance-calculator/src/QuickParser.java @@ -1,7 +1,11 @@ -/* FIXME: Finer imports */ -import java.io.*; -import java.util.regex.*; -import java.util.*; +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.io.FileNotFoundException; + +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class QuickParser { diff --git a/instance-calculator/src/VHDLArchitecture.java b/instance-calculator/src/VHDLArchitecture.java index 407a09f..a3aa7ac 100644 --- a/instance-calculator/src/VHDLArchitecture.java +++ b/instance-calculator/src/VHDLArchitecture.java @@ -1,4 +1,9 @@ -import java.util.*; +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Deque; +import java.util.Map; +import java.util.HashMap; public class VHDLArchitecture { diff --git a/instance-calculator/src/VHDLComponent.java b/instance-calculator/src/VHDLComponent.java index 958a2e4..76b1dc9 100644 --- a/instance-calculator/src/VHDLComponent.java +++ b/instance-calculator/src/VHDLComponent.java @@ -1,4 +1,7 @@ -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Map; +import java.util.HashMap; public class VHDLComponent { diff --git a/instance-calculator/src/VHDLEntity.java b/instance-calculator/src/VHDLEntity.java index 2765229..d2a8e07 100644 --- a/instance-calculator/src/VHDLEntity.java +++ b/instance-calculator/src/VHDLEntity.java @@ -1,5 +1,7 @@ -import java.util.*; -import java.io.BufferedWriter; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Map; +import java.util.HashMap; public class VHDLEntity { diff --git a/instance-calculator/src/VHDLProcess.java b/instance-calculator/src/VHDLProcess.java index ff5d32c..a4f150e 100644 --- a/instance-calculator/src/VHDLProcess.java +++ b/instance-calculator/src/VHDLProcess.java @@ -1,5 +1,8 @@ -import java.util.*; -import java.io.BufferedWriter; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Map; +import java.util.HashMap; +import java.util.Set; public class VHDLProcess { diff --git a/instance-calculator/src/VHDLWaveform.java b/instance-calculator/src/VHDLWaveform.java index 89cf945..feb1e51 100644 --- a/instance-calculator/src/VHDLWaveform.java +++ b/instance-calculator/src/VHDLWaveform.java @@ -1,5 +1,7 @@ -import java.util.*; -import java.io.BufferedWriter; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Map; +import java.util.HashMap; public class VHDLWaveform { -- cgit v1.2.3-70-g09d2