Skip to content

Commit

Permalink
Merge pull request 'develop' (#19) from develop into master
Browse files Browse the repository at this point in the history
  • Loading branch information
cromerc committed Mar 1, 2023
2 parents 6a922e7 + 5db2343 commit 44262df
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 8 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
builddir
*.kb
*.obk
!examples/*.obk
2 changes: 2 additions & 0 deletions examples/multi-fact.obk
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# this is a comment
fact("chris cromer" and "martin" and "Isabella" can "program" and "speak english");
19 changes: 19 additions & 0 deletions examples/obelisk.obk
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// an incomplete rule, this one stays false
rule("chris" is "happy" if "chris" plays "playstation");

// a rule that gets inserted as true right away
fact("this" is "madness");
rule("this" is "sparta" if "this" is "madness");

// a rule that is inserted as false then updated at a later stage
rule("bruce" is "batman" if "the waynes" are "dead");
fact("the waynes" are "dead");

// an action that will be false because the fact doesn't exist, should return ignore
action(if "tom" is "dangerous" then "avoid" else "ignore");

// an action that will be true, should return die
action(if "this" is "sparta" then "die" else "live");

fact("what" is "love");
rule("baby" dont "hurt me" if "what" is "love");
2 changes: 1 addition & 1 deletion meson.build
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
project('obelisk',
'c',
'cpp',
version : '1.0.0',
version : '1.0.1',
license : 'BSD-3-Clause',
default_options : [
'warning_level=3',
Expand Down
4 changes: 2 additions & 2 deletions src/lexer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,10 @@ int obelisk::Lexer::getToken()

if (getIdentifier() == "extern")
{
return kTokenExtern;
return Token::kTokenExtern;
}

return kTokenIdentifier;
return Token::kTokenIdentifier;
}

if (isdigit(lastChar))
Expand Down
16 changes: 11 additions & 5 deletions src/lexer.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,23 +80,27 @@ namespace obelisk
* @brief A fact which is a relationship between 2 entities.
*
*/
kTokenFact = -2,
kTokenFact = -2,

/**
* @brief A rule which is a relationship between a new fact a
* existing fact.
*
*/
kTokenRule = -3,
kTokenRule = -3,

/**
* @brief An action to take if a fact is true.
*
*/
kTokenAction = -4,

/**
* @brief A definition of a new function.
*
*/
kTokenDef = -5,
kTokenDef = -5,

/**
* @brief An external function that will be linked to.
*
Expand All @@ -108,16 +112,18 @@ namespace obelisk
*
*/
kTokenIdentifier = -7,

/**
* @brief A double floating point value.
*
*/
kTokenNumber = -8,
kTokenNumber = -8,

/**
* @brief A string.
*
*/
kTokenString = -9
kTokenString = -9
};

/**
Expand Down

0 comments on commit 44262df

Please sign in to comment.