summaryrefslogtreecommitdiff
path: root/apps/interpreters
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-11-02 12:58:30 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-11-02 12:58:30 -0600
commit569f248de1028bf07237437b71415360094de3a3 (patch)
tree9a385e82e8c7f69f9c9d9b41371802c03d7df533 /apps/interpreters
parentcb6a2d29d01be343d3cad9bea08c90f260861849 (diff)
downloadnuttx-569f248de1028bf07237437b71415360094de3a3.tar.gz
nuttx-569f248de1028bf07237437b71415360094de3a3.tar.bz2
nuttx-569f248de1028bf07237437b71415360094de3a3.zip
BAS: Another file is closer to the coding style
Diffstat (limited to 'apps/interpreters')
-rw-r--r--apps/interpreters/bas/auto.c4
-rw-r--r--apps/interpreters/bas/bas.c4
-rw-r--r--apps/interpreters/bas/config.h3
-rw-r--r--apps/interpreters/bas/fs.c4
-rw-r--r--apps/interpreters/bas/global.c4
-rw-r--r--apps/interpreters/bas/main.c4
-rw-r--r--apps/interpreters/bas/statement.c5
-rw-r--r--apps/interpreters/bas/str.c497
-rw-r--r--apps/interpreters/bas/token.c5
-rw-r--r--apps/interpreters/bas/value.c4
-rw-r--r--apps/interpreters/bas/var.c4
11 files changed, 346 insertions, 192 deletions
diff --git a/apps/interpreters/bas/auto.c b/apps/interpreters/bas/auto.c
index 7f0a70eb6..2de1dd16b 100644
--- a/apps/interpreters/bas/auto.c
+++ b/apps/interpreters/bas/auto.c
@@ -81,10 +81,6 @@
#include "auto.h"
-#ifdef USE_DMALLOC
-# include "dmalloc.h"
-#endif
-
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
diff --git a/apps/interpreters/bas/bas.c b/apps/interpreters/bas/bas.c
index e43f918dc..84f3516f2 100644
--- a/apps/interpreters/bas/bas.c
+++ b/apps/interpreters/bas/bas.c
@@ -36,10 +36,6 @@
#include "value.h"
#include "var.h"
-#ifdef USE_DMALLOC
-# include "dmalloc.h"
-#endif
-
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
diff --git a/apps/interpreters/bas/config.h b/apps/interpreters/bas/config.h
index d0f11b3eb..7912f4d67 100644
--- a/apps/interpreters/bas/config.h
+++ b/apps/interpreters/bas/config.h
@@ -26,9 +26,6 @@
/* What does tputs return? */
/* #undef TPUTS_RETURNS_VOID */
-/* Define as 1 if you use dmalloc. */
-/* #undef USE_DMALLOC */
-
/* Define as 1 if you want LR0 parser. */
/* #undef USE_LR0 */
diff --git a/apps/interpreters/bas/fs.c b/apps/interpreters/bas/fs.c
index 1800cfddc..56bee2dae 100644
--- a/apps/interpreters/bas/fs.c
+++ b/apps/interpreters/bas/fs.c
@@ -93,10 +93,6 @@
#include "fs.h"
-#ifdef USE_DMALLOC
-# include "dmalloc.h"
-#endif
-
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
diff --git a/apps/interpreters/bas/global.c b/apps/interpreters/bas/global.c
index ef8cc0c64..cb6ead7a7 100644
--- a/apps/interpreters/bas/global.c
+++ b/apps/interpreters/bas/global.c
@@ -28,10 +28,6 @@
#include "global.h"
#include "var.h"
-#ifdef USE_DMALLOC
-#include "dmalloc.h"
-#endif
-
#include <nuttx/clock.h>
#ifndef M_PI
diff --git a/apps/interpreters/bas/main.c b/apps/interpreters/bas/main.c
index 64f423624..7a0f95ee4 100644
--- a/apps/interpreters/bas/main.c
+++ b/apps/interpreters/bas/main.c
@@ -80,10 +80,6 @@
#include <string.h>
#include <stdlib.h>
-#ifdef USE_DMALLOC
-# include "dmalloc.h"
-#endif
-
#include "bas.h"
/****************************************************************************
diff --git a/apps/interpreters/bas/statement.c b/apps/interpreters/bas/statement.c
index bef45c081..3f413c74d 100644
--- a/apps/interpreters/bas/statement.c
+++ b/apps/interpreters/bas/statement.c
@@ -10,11 +10,6 @@
#include "statement.h"
-#ifdef USE_DMALLOC
-#include "dmalloc.h"
-#endif
-
-
struct Value *stmt_CALL(struct Value *value)
{
++pc.token;
diff --git a/apps/interpreters/bas/str.c b/apps/interpreters/bas/str.c
index 1491d80d8..0bd07558d 100644
--- a/apps/interpreters/bas/str.c
+++ b/apps/interpreters/bas/str.c
@@ -1,5 +1,66 @@
-/* Dyanamic strings. */
-/* #includes */ /*{{{C}}}*//*{{{*/
+/****************************************************************************
+ * apps/examples/interpreters/bas/value.c
+ * Dynamic strings.
+ *
+ * Copyright (c) 1999-2014 Michael Haardt
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Adapted to NuttX and re-released under a 3-clause BSD license:
+ *
+ * Copyright (C) 2014 Gregory Nutt. All rights reserved.
+ * Authors: Alan Carvalho de Assis <Alan Carvalho de Assis>
+ * Gregory Nutt <gnutt@nuttx.org>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name NuttX nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
#include "config.h"
#include <assert.h>
@@ -12,250 +73,384 @@
#include "str.h"
-#ifdef USE_DMALLOC
-#include "dmalloc.h"
-#endif
-/*}}}*/
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
-int cistrcmp(const char *s, const char *r) /*{{{*/
+int cistrcmp(const char *s, const char *r)
{
- assert(s!=(char*)0);
- assert(r!=(char*)0);
- while (*s && tolower(*s)==tolower(*r)) { ++s; ++r; };
- return ((tolower(*s)-tolower(*r)));
+ assert(s != (char *)0);
+ assert(r != (char *)0);
+ while (*s && tolower(*s) == tolower(*r))
+ {
+ ++s;
+ ++r;
+ }
+
+ return ((tolower(*s) - tolower(*r)));
}
-/*}}}*/
-struct String *String_new(struct String *this) /*{{{*/
+struct String *String_new(struct String *this)
{
- assert(this!=(struct String*)0);
- this->length=0;
- this->character=(char*)0;
- this->field=(struct StringField*)0;
+ assert(this != (struct String *)0);
+ this->length = 0;
+ this->character = (char *)0;
+ this->field = (struct StringField *)0;
return this;
}
-/*}}}*/
-void String_destroy(struct String *this) /*{{{*/
+
+void String_destroy(struct String *this)
{
- assert(this!=(struct String*)0);
- if (this->field) String_leaveField(this);
- if (this->length) free(this->character);
+ assert(this != (struct String *)0);
+ if (this->field)
+ {
+ String_leaveField(this);
+ }
+
+ if (this->length)
+ {
+ free(this->character);
+ }
}
-/*}}}*/
-int String_joinField(struct String *this, struct StringField *field, char *character, size_t length) /*{{{*/
+
+int String_joinField(struct String *this, struct StringField *field,
+ char *character, size_t length)
{
struct String **n;
- assert(this!=(struct String*)0);
- if (this->field) String_leaveField(this);
- this->field=field;
- if ((n=(struct String**)realloc(field->refStrings,sizeof(struct String*)*(field->refCount+1)))==(struct String**)0) return -1;
- field->refStrings=n;
- field->refStrings[field->refCount]=this;
+ assert(this != (struct String *)0);
+ if (this->field)
+ {
+ String_leaveField(this);
+ }
+
+ this->field = field;
+ if ((n =
+ (struct String **)realloc(field->refStrings,
+ sizeof(struct String *) * (field->refCount +
+ 1))) ==
+ (struct String **)0)
+ {
+ return -1;
+ }
+
+ field->refStrings = n;
+ field->refStrings[field->refCount] = this;
++field->refCount;
- if (this->length) free(this->character);
- this->character=character;
- this->length=length;
+ if (this->length)
+ {
+ free(this->character);
+ }
+
+ this->character = character;
+ this->length = length;
return 0;
}
-/*}}}*/
-void String_leaveField(struct String *this) /*{{{*/
+
+void String_leaveField(struct String *this)
{
struct StringField *field;
int i;
struct String **ref;
- assert(this!=(struct String*)0);
- field=this->field;
- assert(field!=(struct StringField*)0);
- for (i=0,ref=field->refStrings; i<field->refCount; ++i,++ref)
- {
- if (*ref==this)
+ assert(this != (struct String *)0);
+ field = this->field;
+ assert(field != (struct StringField *)0);
+ for (i = 0, ref = field->refStrings; i < field->refCount; ++i, ++ref)
{
- int further=--field->refCount-i;
+ if (*ref == this)
+ {
+ int further = --field->refCount - i;
+
+ if (further)
+ {
+ memmove(ref, ref + 1, further * sizeof(struct String **));
+ }
- if (further) memmove(ref,ref+1,further*sizeof(struct String**));
- this->character=(char*)0;
- this->length=0;
- this->field=(struct StringField*)0;
- return;
+ this->character = (char *)0;
+ this->length = 0;
+ this->field = (struct StringField *)0;
+ return;
+ }
}
- }
+
assert(0);
}
-/*}}}*/
-struct String *String_clone(struct String *this, const struct String *original) /*{{{*/
+
+struct String *String_clone(struct String *this, const struct String *original)
{
- assert(this!=(struct String*)0);
+ assert(this != (struct String *)0);
String_new(this);
- String_appendString(this,original);
+ String_appendString(this, original);
return this;
}
-/*}}}*/
-int String_size(struct String *this, size_t length) /*{{{*/
+
+int String_size(struct String *this, size_t length)
{
char *n;
- assert(this!=(struct String*)0);
- if (this->field) String_leaveField(this);
+ assert(this != (struct String *)0);
+ if (this->field)
+ {
+ String_leaveField(this);
+ }
+
if (length)
- {
- if (length>this->length)
{
- if ((n=realloc(this->character,length+1))==(char*)0) return -1;
- this->character=n;
+ if (length > this->length)
+ {
+ if ((n = realloc(this->character, length + 1)) == (char *)0)
+ {
+ return -1;
+ }
+
+ this->character = n;
+ }
+
+ this->character[length] = '\0';
}
- this->character[length]='\0';
- }
else
- {
- if (this->length) free(this->character);
- this->character=(char*)0;
- }
- this->length=length;
+ {
+ if (this->length)
+ {
+ free(this->character);
+ }
+
+ this->character = (char *)0;
+ }
+
+ this->length = length;
return 0;
}
-/*}}}*/
-int String_appendString(struct String *this, const struct String *app) /*{{{*/
+
+int String_appendString(struct String *this, const struct String *app)
{
- size_t oldlength=this->length;
+ size_t oldlength = this->length;
+
+ if (this->field)
+ {
+ String_leaveField(this);
+ }
+
+ if (app->length == 0)
+ {
+ return 0;
+ }
- if (this->field) String_leaveField(this);
- if (app->length==0) return 0;
- if (String_size(this,this->length+app->length)==-1) return -1;
- memcpy(this->character+oldlength,app->character,app->length);
+ if (String_size(this, this->length + app->length) == -1)
+ {
+ return -1;
+ }
+
+ memcpy(this->character + oldlength, app->character, app->length);
return 0;
}
-/*}}}*/
-int String_appendChar(struct String *this, char ch) /*{{{*/
+
+int String_appendChar(struct String *this, char ch)
{
- size_t oldlength=this->length;
+ size_t oldlength = this->length;
- if (this->field) String_leaveField(this);
- if (String_size(this,this->length+1)==-1) return -1;
- this->character[oldlength]=ch;
+ if (this->field)
+ {
+ String_leaveField(this);
+ }
+ if (String_size(this, this->length + 1) == -1)
+ {
+ return -1;
+ }
+
+ this->character[oldlength] = ch;
return 0;
}
-/*}}}*/
-int String_appendChars(struct String *this, const char *ch) /*{{{*/
+
+int String_appendChars(struct String *this, const char *ch)
{
- size_t oldlength=this->length;
- size_t chlen=strlen(ch);
+ size_t oldlength = this->length;
+ size_t chlen = strlen(ch);
+
+ if (this->field)
+ {
+ String_leaveField(this);
+ }
- if (this->field) String_leaveField(this);
- if (String_size(this,this->length+chlen)==-1) return -1;
- memcpy(this->character+oldlength,ch,chlen);
+ if (String_size(this, this->length + chlen) == -1)
+ {
+ return -1;
+ }
+
+ memcpy(this->character + oldlength, ch, chlen);
return 0;
}
-/*}}}*/
-int String_appendPrintf(struct String *this, const char *fmt, ...) /*{{{*/
+
+int String_appendPrintf(struct String *this, const char *fmt, ...)
{
char buf[1024];
- size_t l,j;
+ size_t l, j;
va_list ap;
- if (this->field) String_leaveField(this);
+ if (this->field)
+ {
+ String_leaveField(this);
+ }
+
va_start(ap, fmt);
- l=vsprintf(buf,fmt,ap);
+ l = vsprintf(buf, fmt, ap);
va_end(ap);
- j=this->length;
- if (String_size(this,j+l)==-1) return -1;
- memcpy(this->character+j,buf,l);
+ j = this->length;
+ if (String_size(this, j + l) == -1)
+ {
+ return -1;
+ }
+
+ memcpy(this->character + j, buf, l);
return 0;
}
-/*}}}*/
-int String_insertChar(struct String *this, size_t where, char ch) /*{{{*/
+
+int String_insertChar(struct String *this, size_t where, char ch)
{
- size_t oldlength=this->length;
+ size_t oldlength = this->length;
+
+ if (this->field)
+ {
+ String_leaveField(this);
+ }
- if (this->field) String_leaveField(this);
- assert(where<oldlength);
- if (String_size(this,this->length+1)==-1) return -1;
- memmove(this->character+where+1,this->character+where,oldlength-where);
- this->character[where]=ch;
+ assert(where < oldlength);
+ if (String_size(this, this->length + 1) == -1)
+ {
+ return -1;
+ }
+
+ memmove(this->character + where + 1, this->character + where,
+ oldlength - where);
+ this->character[where] = ch;
return 0;
}
-/*}}}*/
-int String_delete(struct String *this, size_t where, size_t len) /*{{{*/
+
+int String_delete(struct String *this, size_t where, size_t len)
{
- size_t oldlength=this->length;
+ size_t oldlength = this->length;
+
+ if (this->field)
+ {
+ String_leaveField(this);
+ }
- if (this->field) String_leaveField(this);
- assert(where<oldlength);
- assert(len>0);
- if ((where+len)<oldlength) memmove(this->character+where,this->character+where+len,oldlength-where-len);
- this->character[this->length-=len]='\0';
+ assert(where < oldlength);
+ assert(len > 0);
+ if ((where + len) < oldlength)
+ {
+ memmove(this->character + where, this->character + where + len,
+ oldlength - where - len);
+ }
+
+ this->character[this->length -= len] = '\0';
return 0;
}
-/*}}}*/
-void String_ucase(struct String *this) /*{{{*/
+
+void String_ucase(struct String *this)
{
size_t i;
- for (i=0; i<this->length; ++i) this->character[i]=toupper(this->character[i]);
+ for (i = 0; i < this->length; ++i)
+ {
+ this->character[i] = toupper(this->character[i]);
+ }
}
-/*}}}*/
-void String_lcase(struct String *this) /*{{{*/
+
+void String_lcase(struct String *this)
{
size_t i;
- for (i=0; i<this->length; ++i) this->character[i]=tolower(this->character[i]);
+ for (i = 0; i < this->length; ++i)
+ {
+ this->character[i] = tolower(this->character[i]);
+ }
}
-/*}}}*/
-int String_cmp(const struct String *this, const struct String *s) /*{{{*/
+
+int String_cmp(const struct String *this, const struct String *s)
{
size_t pos;
int res;
- const char *thisch,*sch;
+ const char *thisch, *sch;
+
+ for (pos = 0, thisch = this->character, sch = s->character;
+ pos < this->length && pos < s->length; ++pos, ++thisch, ++sch)
+ {
+ if ((res = (*thisch - *sch)))
+ {
+ return res;
+ }
+ }
- for (pos=0,thisch=this->character,sch=s->character; pos<this->length && pos<s->length; ++pos,++thisch,++sch)
- {
- if ((res=(*thisch-*sch))) return res;
- }
- return (this->length-s->length);
+ return (this->length - s->length);
}
-/*}}}*/
-void String_lset(struct String *this, const struct String *s) /*{{{*/
+
+void String_lset(struct String *this, const struct String *s)
{
size_t copy;
- copy=(this->length<s->length ? this->length : s->length);
- if (copy) memcpy(this->character,s->character,copy);
- if (copy<this->length) memset(this->character+copy,' ',this->length-copy);
+ copy = (this->length < s->length ? this->length : s->length);
+ if (copy)
+ {
+ memcpy(this->character, s->character, copy);
+ }
+
+ if (copy < this->length)
+ {
+ memset(this->character + copy, ' ', this->length - copy);
+ }
}
-/*}}}*/
-void String_rset(struct String *this, const struct String *s) /*{{{*/
+
+void String_rset(struct String *this, const struct String *s)
{
size_t copy;
- copy=(this->length<s->length ? this->length : s->length);
- if (copy) memcpy(this->character+this->length-copy,s->character,copy);
- if (copy<this->length) memset(this->character,' ',this->length-copy);
+ copy = (this->length < s->length ? this->length : s->length);
+ if (copy)
+ {
+ memcpy(this->character + this->length - copy, s->character, copy);
+ }
+
+ if (copy < this->length)
+ {
+ memset(this->character, ' ', this->length - copy);
+ }
}
-/*}}}*/
-void String_set(struct String *this, size_t pos, const struct String *s, size_t length) /*{{{*/
+
+void String_set(struct String *this, size_t pos, const struct String *s,
+ size_t length)
{
- if (this->length>=pos)
- {
- if (this->length<(pos+length)) length=this->length-pos;
- if (length) memcpy(this->character+pos,s->character,length);
- }
+ if (this->length >= pos)
+ {
+ if (this->length < (pos + length))
+ {
+ length = this->length - pos;
+ }
+
+ if (length)
+ {
+ memcpy(this->character + pos, s->character, length);
+ }
+ }
}
-/*}}}*/
-struct StringField *StringField_new(struct StringField *this) /*{{{*/
+struct StringField *StringField_new(struct StringField *this)
{
- this->refStrings=(struct String**)0;
- this->refCount=0;
+ this->refStrings = (struct String **)0;
+ this->refCount = 0;
return this;
}
-/*}}}*/
-void StringField_destroy(struct StringField *this) /*{{{*/
+
+void StringField_destroy(struct StringField *this)
{
int i;
- for (i=this->refCount; i>0; ) String_leaveField(this->refStrings[--i]);
- this->refCount=-1;
+ for (i = this->refCount; i > 0;)
+ {
+ String_leaveField(this->refStrings[--i]);
+ }
+
+ this->refCount = -1;
free(this->refStrings);
}
-/*}}}*/
diff --git a/apps/interpreters/bas/token.c b/apps/interpreters/bas/token.c
index 4ccdb7084..881c60ed3 100644
--- a/apps/interpreters/bas/token.c
+++ b/apps/interpreters/bas/token.c
@@ -1402,11 +1402,6 @@ char *yytext;
#include "token.h"
#include "statement.h"
-#ifdef DMALLOC
-#include "dmalloc.h"
-#endif
-/*}}}*/
-
static int matchdata;
static int backslash_colon;
static int uppercase;
diff --git a/apps/interpreters/bas/value.c b/apps/interpreters/bas/value.c
index 2198d2fa5..a1d9c05fa 100644
--- a/apps/interpreters/bas/value.c
+++ b/apps/interpreters/bas/value.c
@@ -100,10 +100,6 @@ extern long int lrint(double x);
#include "error.h"
#include "value.h"
-#ifdef USE_DMALLOC
-# include "dmalloc.h"
-#endif
-
/****************************************************************************
* Private Data
****************************************************************************/
diff --git a/apps/interpreters/bas/var.c b/apps/interpreters/bas/var.c
index cfb1680f6..3b9c49df9 100644
--- a/apps/interpreters/bas/var.c
+++ b/apps/interpreters/bas/var.c
@@ -22,10 +22,6 @@
#include "error.h"
#include "var.h"
-#ifdef USE_DMALLOC
-# include "dmalloc.h"
-#endif
-
/****************************************************************************
* Public Functions
****************************************************************************/