C :: Simple Parser / How To Deal With Slashes

Feb 13, 2013

I've knocked up a rough C parser for the purpose of colourizing code into XHTML/CSS, which makes me feel fancy. However, it doesn't quite handle comments properly. I can't quite work out how to deal with the slashes. Plus I'm sure there are other places that it slips up that don't feature in my simple tests, so here you go:-

Code:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FLAG_OUTPUT1
#define FLAG_EVEN2
#define NUMKEYWORDS32
}

[code]....

View 6 Replies


ADVERTISEMENT

C :: Simple File Parser

Oct 5, 2013

I am writing a simple file parser for use in another project (for config file). The trickiest thing seems to be skipping unwanted characters (comments, spaces). It works partly, but after the second line of an inputed file processes only the first three characters.

Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TEXT_FILE "data.txt"
[code]....

NOTE: Currently I am just trying to process and remove unwanted data, the actual processing of extracted data should be much simpler.

View 6 Replies View Related

C :: Writing A Simple File / Text Parser To Read A Config File

Feb 6, 2014

I am writing a simple file/text parser to read a config file for some code I am working on. It's dead simple and not particularly smart but it should get the job done. The code reads a config file:

Code:

readlength=2500000
start=0
finish=25000000
cutoff=20000
samplingfreq=250000
poles=10
filterpadding=500
}

[code]....

Here is where it gets wierd. You'll notice that there is an unused variable (filepath) in the config struct. This variable is not referenced or used anywhere in the code, ever. Yet if I comment out the declaration of char filepath[1024], the code segfaults partway through the read_config() function.

My best guess is that there is a buffer overflow elsewhere and it just so happens that the memory allocated for filepath happened to be there to catch it up until now, but I can't work out where it might be happening. With the declaration commented out, the read_config() function gets as far as reading the "padding" variable before it crashes. Yet when the declaration is there, then all the variabled are read correctly and everything seems to work.

View 10 Replies View Related

C/C++ :: How To Deal With Overflow

May 24, 2014

I was just wondering how to deal with overflow. My code works for exponential when i put small numbers in like 2 and 3. So it would do 2^3 which would be 8. But if i try something like 2^44 then I just get 0.

View 2 Replies View Related

C :: How To Deal With Conflicts In Header Files

Nov 6, 2013

I have some header files with generic functions. And in one of them, I define TRUE and FALSE. Recently I started using another header file and it defined TRUE and FALSE as well. That caused GCC to throw an error, and not compile. In my case I can put #IFNDEF around the values so that if it is already defined they don't get defined again, but is there a better way to handle duplicate names? I assume the case would be the same for duplicated functions, how does that get handled?

View 6 Replies View Related

C/C++ :: Convert The Functions To Deal With Integers Instead Of Chars

Mar 29, 2014

current functions are:

char *createEnvironment(int width, int height, int numWoodChips);
void printEvrionment(char *environment, int width, int height);

need to be:

int* createEnvironment(int width, int height, int numWoodChips);
void printEvrionment(int* environment, int width, int height);

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

[Code]....

View 1 Replies View Related

C/C++ :: Deal 2 Hands Of Cards - Print Deck After Dealing

Apr 2, 2014

My assignment is to create a program to print a deck of 52 cards, shuffle it, deal 2 hands of 5 cards, then print the deck after dealing the 2 hands with the cards that were dealt removed. this is my code so far...

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define DECK_SIZE 52
void init_deck( int deck[] , int size ) ;
void shuffle_deck( int deck[] , int size ) ;

[Code] ....

I am having trouble dealing 2 random hands and how to print the deck with the cards removed.

View 3 Replies View Related

C/C++ :: Recursive Descent Parser?

Mar 22, 2014

I am implementing a recursive descent parser that recognizes strings in the language below.

The grammar:
A -> I = E | E
E -> T + E | T - E | T
T -> F * T | F / T | F
F -> P ^ F | P
P -> I | L | UI | UL | (A)
U -> + | - | !
I -> C | CI
C -> a | b | ... | y | z
L -> D | DL
D -> 0 | 1 | ... | 8 | 9

My input file has the following two strings:
a=a+b-c*d
a=a**b++c

The desired output:

String read from file: a=a+b-c*d
The string "a=a+b-c*d" is in the language.
String read from file: a=a**b++c
The string "a=a**b++c" is not in the language.

[Code].....

When I test the code without reading the text file and just write a string in the source code, it appears to parse fine. I believe my main problem is in the int main function and how i am reading the text file and outputting it. I was able to write the same program fine in Java.

View 3 Replies View Related

C++ :: Expression Parser Implementation?

May 5, 2014

How can we implement an expression parser in C++.

View 3 Replies View Related

C++ :: Running A SLR Parser Program?

Apr 27, 2012

I need to run a program that makes a SLR Parser Table.

Here is the code :

Code to find first and follow:

saved as SLR.h
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream.h>
#define epsilon '^'

since I didn't know how to type epsilon symbol temporarily I am using ^

char prod[20][20],T[20],NT[20],c[10][10],foll[10][10],fir[10][10];
int tt,tnt,tp,a;
int follow[20][20],first[20][20];
void first_of(char);
int count(int j);
void rhs(int j);

[code]....

View 3 Replies View Related

C++ :: Parser Does Not Name A Type Error

Oct 22, 2014

I am trying to write a program that reads in an XML file, parses it and prints out information about each tag. I am getting the following errors when trying to build the program:

Parser.cpp:24:1: error: 'Parser' does not name a type
Parser::getXMLData() {
^
Parser.cpp:120:1: error: 'Parser' does not name a type
Parser:rocessXMLData(

[Code] ....

Here is my code for the 5 files.

[ATTACH]main.cpp
[/ATTACH][ATTACH]Parser.h
[/ATTACH][ATTACH]Parser.cpp
[/ATTACH][ATTACH]Element.h
[/ATTACH][ATTACH]Element.cpp[/ATTACH]

View 5 Replies View Related

C++ :: Deal With A Failed Input Stream And Type Checking Input?

Jun 17, 2014

deal with a failed input stream and type checking input?

I use:

cout << "
Enter a menu option: ";
while(!(cin >> menuGameMode))
{
cin.clear();
while (cin.get() != '
')
continue;
cout << "Enter a menu option: ";
}

Is this the "Best" way to do it?

EDIT: We're assuming input is expecting an int.

View 9 Replies View Related

C :: Text Parser - String Separation

Jan 4, 2015

I would like to make a sort of text parser, in which one enters a string, and it is broken by the whitespaces into chunks, and those chunks compared to different "dictionaries" where the words are assigned a value. For example if the operator enters "take lamp" it would separate "take" and "lamp" and then produce preassigned values for each of these words.

View 3 Replies View Related

C++ :: Getting Segmentation Fault In Parser Code

Dec 23, 2014

For some reason when i put cout<<endl i'm getting segmentation faults in my Parser code. It's really weird some inputs of strings using cout is already faulting. However sometimes printf doesn't fault, but sometimes it will, it seems really unstable.

The court can basically be anywhere in the Parse(string) function, i have a cout at line 254 which faults.

Here is the code:

#include "Parser.h"
#include <stdio.h>
#include <iostream>
using namespace std;
Parser::Parser() {

[Code] ....

View 3 Replies View Related

C++ :: CSV Parser - Infile Using Variable Filename?

Jan 18, 2013

So. I have a CSV Parser that I built. It works very well. The way it currently works is that I have the parser in a header file "CSV_Parser". So my .cpp code would look like this:

#include <iostream>
#include <eigen3/Eigen/Dense>
#include "CSV_Parser.h"
using namespace std;
using Eigen;

[Code] ....

This all works great. I am running Eclipse in Linux (Xubuntu to be precise). In the header file the .csv is opened as follows:

ifstream infile;
infile.open("/home/karrotman/Desktop/Matrix.csv");

What I would like is for the user to be able to change the file that the parser is opening through the main .cpp file. In other words, is there a way to create some variable, say "FileName" and do the following:

CSV firstMat;
string MatrixA = "/home/karrotman/Desktop/Matrix1.csv";
firstMat.extract(MatrixA);
CSV secondMat;
string MatrixB = "/home/karrotman/Desktop/Matrix2.csv";
secondMat.extract(MatrixB);

And then the .h would now say:

void extract(string FileName)
...
ifstream infile;
infile.open(FileName);

Obviously this does not work. Ultimately the goal is for me to open 4 .csvs at one time so I can do numerical operations on them.

View 2 Replies View Related

C/C++ :: How To Do Error Handling In Predictive Parser

May 9, 2014

#include<iostream>
using namespace std;
void E();
void T();
void F();
void match(char m);

[Code] ....

I have written this code for predictive parser. It is working for valid input but it is not working for invalid input when i give invalid input it says its valid. How to do error handling in predictive parser.

View 3 Replies View Related

C++ :: Libjson Non-recursive Parser Function

Oct 8, 2013

how to write a non-recursive JSON parser function using libjson in C++. libjson is quite useful librray. It's source code of libjson comes with an example C++ parser but it uses recursion to parse JSON arrays and child nodes. I am looking for parser function based on libjson that does not use recursion to parse JSON arrays and child nodes.

View 1 Replies View Related

C++ :: SIP Parser And Header File Including (using Sofia-sip)

Nov 6, 2012

I am currently developing a small quick'n dirty SIP (Session Initiation Protocol) parser. Its task is to read a file (or command-line argument) with a SIP requst and parse it using the sofia-sip library. It should exit either with "1" on parsing failure or "0" on parsing success.

I have taken the code snipplet from here: [URL] .... resulting in this source code:

Code:
#include <iostream>
#include <stdio.h>
#include <sofia-sip/msg.h>
#include <sofia-sip/msg_parser.h>
#include <sofia-sip/msg_mclass.h>
int main() {
char *msg_data = "...";

[Code] ....

When I try to compile the code using

Code:
g++ -o parser -I/usr/include/sofia-sip-1.12 parser.cpp

I get the following failure:

Code:
parser.cpp:10:45: error: "sip_default_mclass" was not declared in this scope ....

View 4 Replies View Related

Visual C++ :: Writing A Lexical Analyzer / Parser

Oct 6, 2012

I'm trying to learn more about how Lexical Analyzers/Parsers work. I haven't coded any classes yet, because i'm not really sure how the entire process from a Lexer to working code goes.

My goal is to write a simple made up programming language and translate that to another language, like Javascript. The first thing i have to do is give the code to a Lexical Analyzer.

The lexer will split the source into tokens and assign a label to it. So suppose i have the following code:

Code:
def myVar = 10;

The lexer will split that into token like this:

Code:
def -> keyword
myVar -> Identifier
= -> Operator
10 -> Number

That's basically as far as i understand what a lexer does. How can i translate the tokens to a language like Javascript? From what i understand i need to write a Parser class. But i couldn't find any info on what that class exactly does. So what is exactly the next step i have to take?

View 2 Replies View Related

C++ :: Evaluating Arithmetic Expressions Using Recursive Descent Parser?

Feb 25, 2013

I have the following code to calculate arithmetic expressions :

#include <iostream>
using namespace std;
using namespace std;
const char * expressionToParse = "6.5-2.5*10/5+2*5";
char peek(){
return *expressionToParse;

[code]....

The problem is that it does not work properly with decimal numbers for example it evaluates 6-2*10/5+2*5 = 12 which is correct but for 6.5-2.5*10/5+2*5 it returns 6 instead of 11.5 .

View 3 Replies View Related

C++ :: Program That Handles Configuration Files - Config Parser?

Apr 9, 2013

I wrote a small program that handles configuration files. I was wondering if this code is considered "good?" I am also wondering if there are ways to optimize it.

class configFile {
std::vector<std::string> variables;
std::vector<std::string> values;
public:
/* declare the constructor function */
configFile(std::string loc) {

[Code] ....

View 3 Replies View Related

C++ :: Simple AI That Follows Player

Apr 10, 2014

I'm having some problems with implementing an AI. It should be just a simple AI that follows player. Here is the code that I got so far:

(float)DirectionX = Circle->GetX() - AI->GetX();
(float)DirectionY = Circle->GetY() - AI->GetY();

(float)Hyp = sqrt(DirectionX * DirectionX + DirectionY * DirectionY);

DirectionX /= Hyp;
DirectionY /= Hyp;

x += DirectionX * 3;
y += DirectionY * 3;

This is what I got so far. It creates a vector in a direction I want to move, then just normalizes the vector. Simple as that. But I'm having 2 problems..

AI moves towards player only when Im at like the end of screen and the AI is on the other side, I must keep a certain distance for it to be able to move towards me. Basically, its not constantly moving towards the player. I also tried it with trig, using atan2 for angle and sin / cos for speed. Also didn't work, same result.

The other problem is when I want to add i.e 5 more AIs. For each new AI it creates, it makes a new update.. So, to kinda clear it up. If I'm in middle of the screen and an AI is spawned above me, it will move towards me. But when after that one, 2nd AI spawns beneath me, both 1st and 2nd AI move up. Basically, previous AIs take the update from last one that is created. For updating I'm using lists, objects and iters.

View 3 Replies View Related

C++ :: How To Play Simple MP3 Through Mic

Jul 21, 2014

How do I play a simple mp3 through my mic. I plan on using this to just play annoying sounds through skype and games(on windows 7 btw).

View 6 Replies View Related

C++ :: How To Make A Simple Program EXE

Feb 12, 2014

I would like to know how can I make a simple program .exe so that I don't have to open it through code blocks every time.

View 2 Replies View Related

C++ :: Simple Calculation Going To 0 Every Time

Aug 8, 2013

I tried to write a simple program to calculate monthly yield, APR, and principle in various directions. Anyway, here's some code to get the APR from the principle and monthly yield. When I run it though, it spits 0 at me every time! What the problem is; the other functions work just fine and the code line for the APR calculation is just what it ought to be - I see neither a math nor tech problem here.

Here is the offending function:

Code:
void calculateAPR() {
int principle, monthlyYield, apr;
cout<<"
Please input the principle:";
cin>>principle;
cin.ignore();

[code]....

View 4 Replies View Related

C :: Simple Increment Operation

Jan 27, 2013

Code:

int i=5,j;
j=++i + ++i + ++i;
printf("%d",j); //22
i=5;
j=i++ + i++ + i++;
printf("%d",j); //19 Shall not it give 21 and 18 respectively?????

View 4 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved