--- clips-6.24.orig/Xclips +++ clips-6.24/Xclips @@ -0,0 +1,29 @@ +! Xaw3d Defaults +!------------------ + +Xclips*background: gray80 +Xclips*Form.background: gray80 +Xclips*TransientShell*Dialog.background: gray85 +Xclips*Menubutton.background: gray80 +Xclip*ScrollbarBackground: gray85 +Xclip*Scrollbar*background: gray80 +Xclip*Scrollbar*width: 15 +Xclip*Scrollbar*height: 15 +Xclip*Scrollbar*shadowWidth: 2 +Xclip*Scrollbar*cursorName: top_left_arrow +Xclip*Scrollbar*pushThumb: false +Xclip*ShapeStyle: Rectangle +Xclip*beNiceToColormap: false +Xclip*shadowWidth: 2 +Xclip*SmeBSB*shadowWidth: 2 +Xclip*highlightThickness: 2 +Xclip*topShadowContrast: 20 +Xclip*bottomShadowContrast: 55 +Xclips*Text*background: gray90 + +Xclip*brightBorder: gray94 +Xclip*darkBorder: gray40 +Xclip*hilightColor: gray72 + +Xclips*borderWidth: 1 +Xclips*lineWidth: 1 --- clips-6.24.orig/clips.hlp +++ clips-6.24/clips.hlp @@ -330,10 +330,10 @@ SUPPORT_INFORMATION CLIPS executables, documentation, and source code are available for -download from http://www.ghg.net/clips/download/. +download from http://sourceforge.net/project/showfiles.php?group_id=215471&package_id=260062 Questions regarding CLIPS can be sent via electronic mail to -clipsYYYY@ghg.net where YYYY is the current year (for example, 2004). +clipsYYYY@swbell.net where YYYY is the current year (for example, 2004). Include the words 'CLIPS USER' in the subject line. An electronic conferencing facility, sponsored by Distributed Computing @@ -366,7 +366,7 @@ list), send email to clips-owner@discomsys.com. A CLIPS World Wide Web page can be accessed using the URL -http://www.ghg.net/clips/CLIPS.html. +http://clipsrules.sourceforge.net/ Usenet users can also find information and post questions about CLIPS to the comp.ai.shells news group. --- clips-6.24.orig/examples/patdata1 +++ clips-6.24/examples/patdata1 @@ -0,0 +1,39 @@ +; Basic cases for testing patients +; case 1 +(assert (patient1 + (sex female) (name p1) (age 55) (h-chd no) (smoking no) + (dm no) (chd no) (et yes) (pm yes) (hdl 70) (chol 180))) +; case 2 +; test for box j input chol 220 at prompt +(assert (patient1 + (sex male) (name p2) (age 35) (h-chd no) (smoking no) + (dm no) (htn yes) (chd no) (hdl 70) (chol -1))) +; case 3 +(assert (patient1 + (sex female) (name p3) (age 55) (h-chd no) (smoking no) + (dm no) (htn yes) (chd no) (et yes) (pm yes) (hdl 30) + (ldl 100) (chol 136))) +; case 4 +(assert (patient1 + (sex female) (name p4) (age 65) (h-chd no) (smoking no) + (dm no) (htn yes) (chd no) (hdl 30) (ldl 140) (chol 236))) + +; case 5 +; test for box t input ldl of 170 +(assert (patient1 + (sex male) (name p5) (age 55) (h-chd no) (smoking no) + (dm no) (htn no) (chd no) (hdl 40) (ldl -1) (chol 246))) +; case 6 +(assert (patient1 + (sex female) (name p6) (age 50) (h-chd no) (smoking no) + (dm no) (htn no) (chd no) (hdl 30) (ldl 140) (chol 199))) +; case 7 +(assert (patient1 + (sex female) (name p7) (age 55) (h-chd no) (smoking no) + (dm no) (htn yes) (chd yes) (hdl 30) (ldl 65) (chol 165))) +; case 8 +(assert (patient1 + (sex female) (name p8) (age 55) (h-chd no) (smoking no) + (dm no) (htn yes) (chd yes) (hdl 30) (ldl 165) (chol 236))) + + --- clips-6.24.orig/examples/loadall +++ clips-6.24/examples/loadall @@ -0,0 +1,6 @@ +; Load add NCEP rules and run all test patients +(load date.clp) +(load project.clp) +(batch patdata1) +(batch patdata2) +(run) --- clips-6.24.orig/examples/rpc.clp +++ clips-6.24/examples/rpc.clp @@ -0,0 +1,181 @@ + +;;;====================================================== +;;; Rock, Paper, & Scissors Game +;;; +;;; Plays a children's game in which +;;; Rock smashes scissors, +;;; Scissors cut paper, and +;;; Paper covers rock. +;;; Demonstrates a use for the random +;;; conflict resolution strategy. +;;; +;;; CLIPS Version 6.0 Example +;;; +;;; To execute, merely load, reset and run. +;;;====================================================== + +;;;**************** +;;;* DEFFUNCTIONS * +;;;**************** + +(deffunction yes-or-no-p (?question) + (bind ?x bogus) + (while (and (neq ?x yes) (neq ?x y) (neq ?x no) (neq ?x n)) + (format t "%s(Yes or No) " ?question) + (bind ?x (lowcase (sym-cat (read))))) + (if (or (eq ?x yes) (eq ?x y)) then TRUE else FALSE)) + +;;;************* +;;;* TEMPLATES * +;;;************* + +(deftemplate win-totals + (slot human (type INTEGER) (default 0)) + (slot computer (type INTEGER) (default 0)) + (slot ties (type INTEGER) (default 0))) + +(deftemplate results + (slot winner (type SYMBOL) (allowed-symbols rock paper scissors)) + (slot loser (type SYMBOL) (allowed-symbols rock paper scissors)) + (slot why (type STRING))) + +;;;***************** +;;;* INITIAL STATE * +;;;***************** + +(deffacts information + (results (winner rock) (loser scissors) (why "Rock smashes scissors")) + (results (winner scissors) (loser paper) (why "Scissors cut paper")) + (results (winner paper) (loser rock) (why "Paper covers rock")) + (valid-answer rock r rock) + (valid-answer paper p paper) + (valid-answer scissors s scissors)) + +;;;**************** +;;;* STARTUP RULE * +;;;**************** + +(defrule startup + => + (printout t "Lets play a game!" crlf crlf) + (printout t "You choose rock, paper, or scissors," crlf) + (printout t "and I'll do the same." crlf crlf) + (printout t "Rock smashes scissors!" crlf) + (printout t "Paper covers rock!" crlf) + (printout t "Scissors cut paper!" crlf crlf) + (set-strategy random) + (assert (win-totals)) + (assert (get-human-move))) + +;;;******************** +;;;* HUMAN MOVE RULES * +;;;******************** + +(defrule get-human-move + (get-human-move) + => + (printout t "Rock (R), Paper (P), or Scissors (S) ? ") + (assert (human-choice (read)))) + +(defrule good-human-move + ?f1 <- (human-choice ?choice) + (valid-answer ?answer $? =(lowcase ?choice) $?) + ?f2 <- (get-human-move) + => + (retract ?f1 ?f2) + (assert (human-choice ?answer)) + (assert (get-computer-move))) + +(defrule bad-human-move + ?f1 <- (human-choice ?choice) + (not (valid-answer ?answer $? =(lowcase ?choice) $?)) + ?f2 <- (get-human-move) + => + (retract ?f1 ?f2) + (assert (get-human-move))) + +;;;*********************** +;;;* COMPUTER MOVE RULES * +;;;*********************** + +(defrule computer-picks-rock + ?f1 <- (get-computer-move) + => + (printout t "Computer chooses rock" crlf) + (retract ?f1) + (assert (computer-choice rock)) + (assert (determine-results))) + +(defrule computer-picks-paper + ?f1 <- (get-computer-move) + => + (printout t "Computer chooses paper" crlf) + (retract ?f1) + (assert (computer-choice paper)) + (assert (determine-results))) + +(defrule computer-picks-scissors + ?f1 <- (get-computer-move) + => + (printout t "Computer chooses scissors" crlf) + (retract ?f1) + (assert (computer-choice scissors)) + (assert (determine-results))) + +(defrule computer-wins + ?f1 <- (determine-results) + ?f2 <- (computer-choice ?cc) + ?f3 <- (human-choice ?hc) + ?w <- (win-totals (computer ?cw)) + (results (winner ?cc) (loser ?hc) (why ?explanation)) + => + (retract ?f1 ?f2 ?f3) + (modify ?w (computer (+ ?cw 1))) + (format t "%s%n" ?explanation) + (printout t "Computer wins!" t) + (assert (determine-play-again))) + +;;;*************************** +;;;* WIN DETERMINATION RULES * +;;;*************************** + +(defrule human-wins + ?f1 <- (determine-results) + ?f2 <- (computer-choice ?cc) + ?f3 <- (human-choice ?hc) + ?w <- (win-totals (human ?hw)) + (results (winner ?hc) (loser ?cc) (why ?explanation)) + => + (retract ?f1 ?f2 ?f3) + (modify ?w (human (+ ?hw 1))) + (format t "%s%n" ?explanation) + (printout t "You win!" t) + (assert (determine-play-again))) + +(defrule tie + ?f1 <- (determine-results) + ?f2 <- (computer-choice ?cc) + ?f3 <- (human-choice ?cc) + ?w <- (win-totals (ties ?nt)) + => + (retract ?f1 ?f2 ?f3) + (modify ?w (ties (+ ?nt 1))) + (printout t "We tie." t) + (assert (determine-play-again))) + +;;;******************* +;;;* PLAY AGAIN RULE * +;;;******************* + +(defrule play-again + ?f1 <- (determine-play-again) + (win-totals (computer ?ct) (human ?ht) (ties ?tt)) + => + (retract ?f1) + (assert (get-human-move)) + (if (not (yes-or-no-p "Play again? ")) + then + (printout t crlf "You won " ?ht " game(s)." t) + (printout t "Computer won " ?ct " game(s)." t) + (printout t "We tied " ?ct " game(s)." t t) + (halt))) \ No newline at end of file --- clips-6.24.orig/examples/dilemma1.clp +++ clips-6.24/examples/dilemma1.clp @@ -0,0 +1,197 @@ + +;;;====================================================== +;;; Farmer's Dilemma Problem +;;; +;;; Another classic AI problem (cannibals and the +;;; missionary) in agricultural terms. The point is +;;; to get the farmer, the fox the cabbage and the +;;; goat across a stream. +;;; But the boat only holds 2 items. If left +;;; alone with the goat, the fox will eat it. If +;;; left alone with the cabbage, the goat will eat +;;; it. +;;; This example uses rules and fact pattern +;;; matching to solve the problem. +;;; +;;; CLIPS Version 6.0 Example +;;; +;;; To execute, merely load, reset and run. +;;;====================================================== + +(defmodule MAIN + (export deftemplate status)) + +;;;************* +;;;* TEMPLATES * +;;;************* + +;;; The status facts hold the state +;;; information of the search tree. + +(deftemplate MAIN::status + (slot search-depth (type INTEGER) (range 1 ?VARIABLE)) + (slot parent (type FACT-ADDRESS SYMBOL) (allowed-symbols no-parent)) + (slot farmer-location + (type SYMBOL) (allowed-symbols shore-1 shore-2)) + (slot fox-location + (type SYMBOL) (allowed-symbols shore-1 shore-2)) + (slot goat-location + (type SYMBOL) (allowed-symbols shore-1 shore-2)) + (slot cabbage-location + (type SYMBOL) (allowed-symbols shore-1 shore-2)) + (slot last-move + (type SYMBOL) (allowed-symbols no-move alone fox goat cabbage))) + +;;;***************** +;;;* INITIAL STATE * +;;;***************** + +(deffacts MAIN::initial-positions + (status (search-depth 1) + (parent no-parent) + (farmer-location shore-1) + (fox-location shore-1) + (goat-location shore-1) + (cabbage-location shore-1) + (last-move no-move))) + +(deffacts MAIN::opposites + (opposite-of shore-1 shore-2) + (opposite-of shore-2 shore-1)) + +;;;*********************** +;;;* GENERATE PATH RULES * +;;;*********************** + +(defrule MAIN::move-alone + ?node <- (status (search-depth ?num) + (farmer-location ?fs)) + (opposite-of ?fs ?ns) + => + (duplicate ?node (search-depth =(+ 1 ?num)) + (parent ?node) + (farmer-location ?ns) + (last-move alone))) + +(defrule MAIN::move-with-fox + ?node <- (status (search-depth ?num) + (farmer-location ?fs) + (fox-location ?fs)) + (opposite-of ?fs ?ns) + => + (duplicate ?node (search-depth =(+ 1 ?num)) + (parent ?node) + (farmer-location ?ns) + (fox-location ?ns) + (last-move fox))) + +(defrule MAIN::move-with-goat + ?node <- (status (search-depth ?num) + (farmer-location ?fs) + (goat-location ?fs)) + (opposite-of ?fs ?ns) + => + (duplicate ?node (search-depth =(+ 1 ?num)) + (parent ?node) + (farmer-location ?ns) + (goat-location ?ns) + (last-move goat))) + +(defrule MAIN::move-with-cabbage + ?node <- (status (search-depth ?num) + (farmer-location ?fs) + (cabbage-location ?fs)) + (opposite-of ?fs ?ns) + => + (duplicate ?node (search-depth =(+ 1 ?num)) + (parent ?node) + (farmer-location ?ns) + (cabbage-location ?ns) + (last-move cabbage))) + +;;;****************************** +;;;* CONSTRAINT VIOLATION RULES * +;;;****************************** + +(defmodule CONSTRAINTS + (import MAIN deftemplate status)) + +(defrule CONSTRAINTS::fox-eats-goat + (declare (auto-focus TRUE)) + ?node <- (status (farmer-location ?s1) + (fox-location ?s2&~?s1) + (goat-location ?s2)) + => + (retract ?node)) + +(defrule CONSTRAINTS::goat-eats-cabbage + (declare (auto-focus TRUE)) + ?node <- (status (farmer-location ?s1) + (goat-location ?s2&~?s1) + (cabbage-location ?s2)) + => + (retract ?node)) + +(defrule CONSTRAINTS::circular-path + (declare (auto-focus TRUE)) + (status (search-depth ?sd1) + (farmer-location ?fs) + (fox-location ?xs) + (goat-location ?gs) + (cabbage-location ?cs)) + ?node <- (status (search-depth ?sd2&:(< ?sd1 ?sd2)) + (farmer-location ?fs) + (fox-location ?xs) + (goat-location ?gs) + (cabbage-location ?cs)) + => + (retract ?node)) + +;;;********************************* +;;;* FIND AND PRINT SOLUTION RULES * +;;;********************************* + +(defmodule SOLUTION + (import MAIN deftemplate status)) + +(deftemplate SOLUTION::moves + (slot id (type FACT-ADDRESS SYMBOL) (allowed-symbols no-parent)) + (multislot moves-list + (type SYMBOL) (allowed-symbols no-move alone fox goat cabbage))) + +(defrule SOLUTION::recognize-solution + (declare (auto-focus TRUE)) + ?node <- (status (parent ?parent) + (farmer-location shore-2) + (fox-location shore-2) + (goat-location shore-2) + (cabbage-location shore-2) + (last-move ?move)) + => + (retract ?node) + (assert (moves (id ?parent) (moves-list ?move)))) + +(defrule SOLUTION::further-solution + ?node <- (status (parent ?parent) + (last-move ?move)) + ?mv <- (moves (id ?node) (moves-list $?rest)) + => + (modify ?mv (id ?parent) (moves-list ?move ?rest))) + +(defrule SOLUTION::print-solution + ?mv <- (moves (id no-parent) (moves-list no-move $?m)) + => + (retract ?mv) + (printout t t "Solution found: " t t) + (bind ?length (length ?m)) + (bind ?i 1) + (bind ?shore shore-2) + (while (<= ?i ?length) + (bind ?thing (nth ?i ?m)) + (if (eq ?thing alone) + then (printout t "Farmer moves alone to " ?shore "." t) + else (printout t "Farmer moves with " ?thing " to " ?shore "." t)) + (if (eq ?shore shore-1) + then (bind ?shore shore-2) + else (bind ?shore shore-1)) + (bind ?i (+ 1 ?i)))) --- clips-6.24.orig/examples/mab.clp +++ clips-6.24/examples/mab.clp @@ -0,0 +1,368 @@ + +;;;====================================================== +;;; Monkees and Bananas Sample Problem +;;; +;;; This is an extended version of a +;;; rather common AI planning problem. +;;; The point is for the monkee to find +;;; and eat some bananas. +;;; +;;; CLIPS Version 6.0 Example +;;; +;;; To execute, merely load, reset and run. +;;;====================================================== + +;;;************* +;;;* TEMPLATES * +;;;************* + +(deftemplate monkey + (slot location + (type SYMBOL) + (default green-couch)) + (slot on-top-of + (type SYMBOL) + (default floor)) + (slot holding + (type SYMBOL) + (default nothing))) + +(deftemplate thing + (slot name + (type SYMBOL) + (default ?NONE)) + (slot location + (type SYMBOL) + (default ?NONE)) + (slot on-top-of + (type SYMBOL) + (default floor)) + (slot weight + (type SYMBOL) + (allowed-symbols light heavy) + (default light))) + +(deftemplate chest + (slot name + (type SYMBOL) + (default ?NONE)) + (slot contents + (type SYMBOL) + (default ?NONE)) + (slot unlocked-by + (type SYMBOL) + (default ?NONE))) + +(deftemplate goal-is-to + (slot action + (type SYMBOL) + (allowed-symbols hold unlock eat move on walk-to) + (default ?NONE)) + (multislot arguments + (type SYMBOL) + (default ?NONE))) + +;;;************************* +;;;* CHEST UNLOCKING RULES * +;;;************************* + +(defrule hold-chest-to-put-on-floor "" + (goal-is-to (action unlock) (arguments ?chest)) + (thing (name ?chest) (on-top-of ~floor) (weight light)) + (monkey (holding ~?chest)) + (not (goal-is-to (action hold) (arguments ?chest))) + => + (assert (goal-is-to (action hold) (arguments ?chest)))) + +(defrule put-chest-on-floor "" + (goal-is-to (action unlock) (arguments ?chest)) + ?monkey <- (monkey (location ?place) (on-top-of ?on) (holding ?chest)) + ?thing <- (thing (name ?chest)) + => + (printout t "Monkey throws the " ?chest " off the " + ?on " onto the floor." crlf) + (modify ?monkey (holding blank)) + (modify ?thing (location ?place) (on-top-of floor))) + +(defrule get-key-to-unlock "" + (goal-is-to (action unlock) (arguments ?obj)) + (thing (name ?obj) (on-top-of floor)) + (chest (name ?obj) (unlocked-by ?key)) + (monkey (holding ~?key)) + (not (goal-is-to (action hold) (arguments ?key))) + => + (assert (goal-is-to (action hold) (arguments ?key)))) + +(defrule move-to-chest-with-key "" + (goal-is-to (action unlock) (arguments ?chest)) + (monkey (location ?mplace) (holding ?key)) + (thing (name ?chest) (location ?cplace&~?mplace) (on-top-of floor)) + (chest (name ?chest) (unlocked-by ?key)) + (not (goal-is-to (action walk-to) (arguments ?cplace))) + => + (assert (goal-is-to (action walk-to) (arguments ?cplace)))) + +(defrule unlock-chest-with-key "" + ?goal <- (goal-is-to (action unlock) (arguments ?name)) + ?chest <- (chest (name ?name) (contents ?contents) (unlocked-by ?key)) + (thing (name ?name) (location ?place) (on-top-of ?on)) + (monkey (location ?place) (on-top-of ?on) (holding ?key)) + => + (printout t "Monkey opens the " ?name " with the " ?key + " revealing the " ?contents "." crlf) + (modify ?chest (contents nothing)) + (assert (thing (name ?contents) (location ?place) (on-top-of ?name))) + (retract ?goal)) + +;;;********************* +;;;* HOLD OBJECT RULES * +;;;********************* + +(defrule unlock-chest-to-hold-object "" + (goal-is-to (action hold) (arguments ?obj)) + (chest (name ?chest) (contents ?obj)) + (not (goal-is-to (action unlock) (arguments ?chest))) + => + (assert (goal-is-to (action unlock) (arguments ?chest)))) + +(defrule use-ladder-to-hold "" + (goal-is-to (action hold) (arguments ?obj)) + (thing (name ?obj) (location ?place) (on-top-of ceiling) (weight light)) + (not (thing (name ladder) (location ?place))) + (not (goal-is-to (action move) (arguments ladder ?place))) + => + (assert (goal-is-to (action move) (arguments ladder ?place)))) + +(defrule climb-ladder-to-hold "" + (goal-is-to (action hold) (arguments ?obj)) + (thing (name ?obj) (location ?place) (on-top-of ceiling) (weight light)) + (thing (name ladder) (location ?place) (on-top-of floor)) + (monkey (on-top-of ~ladder)) + (not (goal-is-to (action on) (arguments ladder))) + => + (assert (goal-is-to (action on) (arguments ladder)))) + +(defrule grab-object-from-ladder "" + ?goal <- (goal-is-to (action hold) (arguments ?name)) + ?thing <- (thing (name ?name) (location ?place) + (on-top-of ceiling) (weight light)) + (thing (name ladder) (location ?place)) + ?monkey <- (monkey (location ?place) (on-top-of ladder) (holding blank)) + => + (printout t "Monkey grabs the " ?name "." crlf) + (modify ?thing (location held) (on-top-of held)) + (modify ?monkey (holding ?name)) + (retract ?goal)) + +(defrule climb-to-hold "" + (goal-is-to (action hold) (arguments ?obj)) + (thing (name ?obj) (location ?place) (on-top-of ?on&~ceiling) (weight light)) + (monkey (location ?place) (on-top-of ~?on)) + (not (goal-is-to (action on) (arguments ?on))) + => + (assert (goal-is-to (action on) (arguments ?on)))) + +(defrule walk-to-hold "" + (goal-is-to (action hold) (arguments ?obj)) + (thing (name ?obj) (location ?place) (on-top-of ~ceiling) (weight light)) + (monkey (location ~?place)) + (not (goal-is-to (action walk-to) (arguments ?place))) + => + (assert (goal-is-to (action walk-to) (arguments ?place)))) + +(defrule drop-to-hold "" + (goal-is-to (action hold) (arguments ?obj)) + (thing (name ?obj) (location ?place) (on-top-of ?on) (weight light)) + (monkey (location ?place) (on-top-of ?on) (holding ~blank)) + (not (goal-is-to (action hold) (arguments blank))) + => + (assert (goal-is-to (action hold) (arguments blank)))) + +(defrule grab-object "" + ?goal <- (goal-is-to (action hold) (arguments ?name)) + ?thing <- (thing (name ?name) (location ?place) + (on-top-of ?on) (weight light)) + ?monkey <- (monkey (location ?place) (on-top-of ?on) (holding blank)) + => + (printout t "Monkey grabs the " ?name "." crlf) + (modify ?thing (location held) (on-top-of held)) + (modify ?monkey (holding ?name)) + (retract ?goal)) + +(defrule drop-object "" + ?goal <- (goal-is-to (action hold) (arguments blank)) + ?monkey <- (monkey (location ?place) + (on-top-of ?on) + (holding ?name&~blank)) + ?thing <- (thing (name ?name)) + => + (printout t "Monkey drops the " ?name "." crlf) + (modify ?monkey (holding blank)) + (modify ?thing (location ?place) (on-top-of ?on)) + (retract ?goal)) + +;;;********************* +;;;* MOVE OBJECT RULES * +;;;********************* + +(defrule unlock-chest-to-move-object "" + (goal-is-to (action move) (arguments ?obj ?)) + (chest (name ?chest) (contents ?obj)) + (not (goal-is-to (action unlock) (arguments ?chest))) + => + (assert (goal-is-to (action unlock) (arguments ?chest)))) + +(defrule hold-object-to-move "" + (goal-is-to (action move) (arguments ?obj ?place)) + (thing (name ?obj) (location ~?place) (weight light)) + (monkey (holding ~?obj)) + (not (goal-is-to (action hold) (arguments ?obj))) + => + (assert (goal-is-to (action hold) (arguments ?obj)))) + +(defrule move-object-to-place "" + (goal-is-to (action move) (arguments ?obj ?place)) + (monkey (location ~?place) (holding ?obj)) + (not (goal-is-to (action walk-to) (arguments ?place))) + => + (assert (goal-is-to (action walk-to) (arguments ?place)))) + +(defrule drop-object-once-moved "" + ?goal <- (goal-is-to (action move) (arguments ?name ?place)) + ?monkey <- (monkey (location ?place) (holding ?obj)) + ?thing <- (thing (name ?name) (weight light)) + => + (printout t "Monkey drops the " ?name "." crlf) + (modify ?monkey (holding blank)) + (modify ?thing (location ?place) (on-top-of floor)) + (retract ?goal)) + +(defrule already-moved-object "" + ?goal <- (goal-is-to (action move) (arguments ?obj ?place)) + (thing (name ?obj) (location ?place)) + => + (retract ?goal)) + +;;;*********************** +;;;* WALK TO PLACE RULES * +;;;*********************** + +(defrule already-at-place "" + ?goal <- (goal-is-to (action walk-to) (arguments ?place)) + (monkey (location ?place)) + => + (retract ?goal)) + +(defrule get-on-floor-to-walk "" + (goal-is-to (action walk-to) (arguments ?place)) + (monkey (location ~?place) (on-top-of ~floor)) + (not (goal-is-to (action on) (arguments floor))) + => + (assert (goal-is-to (action on) (arguments floor)))) + +(defrule walk-holding-nothing "" + ?goal <- (goal-is-to (action walk-to) (arguments ?place)) + ?monkey <- (monkey (location ~?place) (on-top-of floor) (holding blank)) + => + (printout t "Monkey walks to " ?place "." crlf) + (modify ?monkey (location ?place)) + (retract ?goal)) + +(defrule walk-holding-object "" + ?goal <- (goal-is-to (action walk-to) (arguments ?place)) + ?monkey <- (monkey (location ~?place) (on-top-of floor) (holding ?obj&~blank)) + => + (printout t "Monkey walks to " ?place " holding the " ?obj "." crlf) + (modify ?monkey (location ?place)) + (retract ?goal)) + +;;;*********************** +;;;* GET ON OBJECT RULES * +;;;*********************** + +(defrule jump-onto-floor "" + ?goal <- (goal-is-to (action on) (arguments floor)) + ?monkey <- (monkey (on-top-of ?on&~floor)) + => + (printout t "Monkey jumps off the " ?on " onto the floor." crlf) + (modify ?monkey (on-top-of floor)) + (retract ?goal)) + +(defrule walk-to-place-to-climb "" + (goal-is-to (action on) (arguments ?obj)) + (thing (name ?obj) (location ?place)) + (monkey (location ~?place)) + (not (goal-is-to (action walk-to) (arguments ?place))) + => + (assert (goal-is-to (action walk-to) (arguments ?place)))) + +(defrule drop-to-climb "" + (goal-is-to (action on) (arguments ?obj)) + (thing (name ?obj) (location ?place)) + (monkey (location ?place) (holding ~blank)) + (not (goal-is-to (action hold) (arguments blank))) + => + (assert (goal-is-to (action hold) (arguments blank)))) + +(defrule climb-indirectly "" + (goal-is-to (action on) (arguments ?obj)) + (thing (name ?obj) (location ?place) (on-top-of ?on)) + (monkey (location ?place) (on-top-of ~?on&~?obj) (holding blank)) + (not (goal-is-to (action on) (arguments ?on))) + => + (assert (goal-is-to (action on) (arguments ?on)))) + +(defrule climb-directly "" + ?goal <- (goal-is-to (action on) (arguments ?obj)) + (thing (name ?obj) (location ?place) (on-top-of ?on)) + ?monkey <- (monkey (location ?place) (on-top-of ?on) (holding blank)) + => + (printout t "Monkey climbs onto the " ?obj "." crlf) + (modify ?monkey (on-top-of ?obj)) + (retract ?goal)) + +(defrule already-on-object "" + ?goal <- (goal-is-to (action on) (arguments ?obj)) + (monkey (on-top-of ?obj)) + => + (retract ?goal)) + +;;;******************** +;;;* EAT OBJECT RULES * +;;;******************** + +(defrule hold-to-eat "" + (goal-is-to (action eat) (arguments ?obj)) + (monkey (holding ~?obj)) + (not (goal-is-to (action hold) (arguments ?obj))) + => + (assert (goal-is-to (action hold) (arguments ?obj)))) + +(defrule satisfy-hunger "" + ?goal <- (goal-is-to (action eat) (arguments ?name)) + ?monkey <- (monkey (holding ?name)) + ?thing <- (thing (name ?name)) + => + (printout t "Monkey eats the " ?name "." crlf) + (modify ?monkey (holding blank)) + (retract ?goal ?thing)) + +;;;********************** +;;;* INITIAL STATE RULE * +;;;********************** + +(defrule startup "" + => + (assert (monkey (location t5-7) (on-top-of green-couch) (holding blank))) + (assert (thing (name green-couch) (location t5-7) (weight heavy))) + (assert (thing (name red-couch) (location t2-2) (weight heavy))) + (assert (thing (name big-pillow) (location t2-2) (on-top-of red-couch))) + (assert (thing (name red-chest) (location t2-2) (on-top-of big-pillow))) + (assert (chest (name red-chest) (contents ladder) (unlocked-by red-key))) + (assert (thing (name blue-chest) (location t7-7) (on-top-of ceiling))) + (assert (chest (name blue-chest) (contents bananas) (unlocked-by blue-key))) + (assert (thing (name blue-couch) (location t8-8) (weight heavy))) + (assert (thing (name green-chest) (location t8-8) (on-top-of ceiling))) + (assert (chest (name green-chest) (contents blue-key) (unlocked-by red-key))) + (assert (thing (name red-key) (location t1-3))) + (assert (goal-is-to (action eat) (arguments bananas)))) --- clips-6.24.orig/examples/patdata2 +++ clips-6.24/examples/patdata2 @@ -0,0 +1,92 @@ +;Data file for patients from the NCEP Practice book + +; patient with missing recent labs +(assert (patient1 + (sex female) (name p10) (age 55) (h-chd no) (smoking no) + (dm no) (chd no) (et yes) (pm yes) (hdl 70) (hdl-date 0) + (chol 180) (chol-date 0))) + +; case 1 +(assert (patient1 + (name p11) + (age 40) (sex male) (chol 280))) + +; case 1 with lower chol to check for hdl +(assert (patient1 + (name p11a) + (age 40) (sex male) (chol 180))) + +; case 2 +(assert (patient1 + (name p12) + (age 67) (sex female) (h-chd yes) (chd no) (smoking no) + (htn no) (dm no) + (ldl 209) (chol 275) (hdl 50) )) + + +;case 2 after short treatment +(assert (patient1 + (name p12a) + (age 67) (sex female) (h-chd yes) (chd no) (smoking no) + (htn no) (dm no) + (ldl 168) (chol 245) (hdl 47) (treatment diet) + (treatment-date 34400))) + +;case 2 after longer treatment (over 6 months) +(assert (patient1 + (name p12b) + (age 67) (sex female) (h-chd yes) (chd no) (smoking no) + (htn no) (dm no) + (ldl 168) (chol 245) (hdl 47) (treatment diet) + (treatment-date 34200))) + +; case 3 +(assert (patient1 + (name p13) + (age 67) (htn yes) (chd yes) (sex female) (h-chd yes) (dm no) + (chol 277) (hdl 44) (ldl 166))) + +; case 3 after short therapy +(assert (patient1 + (name p13a) + (age 67) (htn yes) (chd yes) (sex female) (h-chd yes) (dm no) + (chol 194) (hdl 46) (ldl 111) + (treatment diet) + (treatment-date 34400))) + +; case 4 on self diet +(assert (patient1 + (name p14) + (age 24) (htn no) (chd no) (sex male) (h-chd yes) (dm no) + (smoking no) + (chol 362) (hdl 51) (ldl 292) + (treatment diet) + (treatment-date 34200))) + + +; case 4 on initial drug regimin for 1 year +(assert (patient1 + (name p14a) + (age 24) (htn no) (chd no) (sex male) (h-chd yes) (dm no) + (smoking no) + (chol 298) (hdl 56) (ldl 215) + (treatment drug) + (treatment-date 34200))) + +; case 4 on second drug regimin with poor response but therapy less than +; 6 months +(assert (patient1 + (name p14b) + (age 24) (htn no) (chd no) (sex male) (h-chd yes) (dm no) + (smoking no) + (chol 298) (hdl 56) (ldl 215) + (treatment drug) + (treatment-date 34400))) + +; case 7 evaluation of elcerly patient +(assert (patient1 + (name p17) + (age 78) (sex male) (chd no) (htn yes) (smoking no) (dm no) + (chol 277) (hdl 50) (ldl 190))) + + --- clips-6.24.orig/examples/rx7.clp +++ clips-6.24/examples/rx7.clp @@ -0,0 +1,1145 @@ +;;################################################### +;;################################################### +;; RX7.CLP ## +;; Mazda RX-7 rotary engine troubleshooter. ## +;; ## +;;################################################### +;;################################################### +;; +;; Operating instructions: +;; 1.) Execute the CLIPS interpreter. +;; 2.) From the CLIPS prompt, type (load "rx7.clp"). +;; 3.) Type (reset) and then (run) to execute the program. +;; +;;********************************** +;; Set up initial facts for testing. +;;********************************** +;; +(deffacts init + (troubleshoot-mode engine) + (menu-level engine main)) +;; +;;**************************************************** +;; Clear the screen and present the main menu. * +;; * +;; Variables: * +;; ?ml - used for retracting the menu level. * +;; ?response - used for binding in the users input.* +;;**************************************************** +;; +(defrule main-menu + (declare (salience 500)) + (troubleshoot-mode engine) + ?ml <- (menu-level engine main) +=> + (retract ?ml) +;;** print 25 crlf's to clear screen ** + (printout t crlf crlf crlf) + (printout t + " Choose one of the problem areas listed below" crlf + " by typing a letter and pressing the return key." crlf crlf + " 1.) Difficult starting." crlf + " 2.) Poor idling." crlf + " 3.) Insufficient power." crlf + " 4.) Abnormal combustion." crlf + " 5.) Excessive oil consumption." crlf + " 6.) Engine noise." crlf + " 7.) Quit the program." crlf crlf + " Choice: " ) + (bind ?response (read)) + (assert (problem-response engine ?response)) + (printout t crlf)) +;; +;; +;;*************************************** +;; If the user enters a response of 7 * +;; from the main menu, * +;; Then print ending message and clear * +;; the fact base. * +;;*************************************** +(defrule user-quits + (troubleshoot-mode engine) + (problem-response engine 7) +=> + (printout t "You have QUIT the program." crlf) + (halt)) +;; +;;******************************* +;; If the user selects 1 * +;; Then assert that the problem * +;; is DIFFICULT STARTING. * +;; * +;; Variables: * +;; ?pr - for retracting the * +;; numeric problem * +;; response. * +;;******************************* +(defrule difficult-starting + (troubleshoot-mode engine) + ?pr <- (problem-response engine 1) +=> + (retract ?pr) + (assert (menu-level engine possible-causes-1-1)) + (assert (problem engine difficult-starting))) +;; +;;******************************* +;; If the user selects 2 * +;; Then assert that the problem * +;; is POOR IDLING. * +;; * +;; Variables: * +;; ?pr - for retracting the * +;; numeric problem * +;; response. * +;;******************************* +(defrule poor-idling + (troubleshoot-mode engine) + ?pr <- (problem-response engine 2) +=> + (retract ?pr) + (assert (menu-level engine possible-causes-1-1)) + (assert (problem engine poor-idling))) +;; +;;******************************* +;; If the user selects 3 * +;; Then assert that the problem * +;; is INSUFFICIENT POWER. * +;; * +;; Variables: * +;; ?pr - for retracting the * +;; numeric problem * +;; response. * +;;******************************* +(defrule insufficient-power + (troubleshoot-mode engine) + ?pr <- (problem-response engine 3) +=> + (retract ?pr) + (assert (menu-level engine possible-causes-1-1)) + (assert (problem engine insufficient-power))) +;; +;;******************************* +;; If the user selects 4 * +;; Then assert that the problem * +;; is ABNORMAL COMBUSTION. * +;; * +;; Variables: * +;; ?pr - for retracting the * +;; numeric problem * +;; response. * +;;******************************* +(defrule abnormal-combustion + (troubleshoot-mode engine) + ?pr <- (problem-response engine 4) +=> + (retract ?pr) + (assert (menu-level engine possible-causes-1-2)) + (assert (problem engine abnormal-combustion))) +;; +;;************************************* +;; If the user selects 5 * +;; Then assert that the problem * +;; is EXCESSIVE OIL CONSUMPTION. * +;; * +;; Variables: * +;; ?pr - for retracting the * +;; numeric problem * +;; response. * +;;************************************* +(defrule excessive-oil-consumption + (troubleshoot-mode engine) + ?pr <- (problem-response engine 5) +=> + (retract ?pr) + (assert (menu-level engine possible-causes-1-3)) + (assert (problem engine excessive-oil-consumption))) +;; +;;******************************* +;; If the user selects 6 * +;; Then assert that the problem * +;; is ENGINE NOISE. * +;; * +;; Variables: * +;; ?pr - for retracting the * +;; numeric problem * +;; response. * +;;******************************* +(defrule engine-noise + (troubleshoot-mode engine) + ?pr <- (problem-response engine 6) +=> + (retract ?pr) + (assert (menu-level engine possible-causes-1-4)) + (assert (problem engine engine-noise))) +;; +;;******************************************** +;; Clear the screen and present the possible * +;; causes for DIFFICULT STARTING, or * +;; POOR IDLING, or INSUFFICIENT POWER * +;; depending on the variable ?problem. * +;; * +;; Variables: * +;; ?problem - the problem selected by the * +;; user. * +;; ?response - used for binding in the * +;; users input. * +;;******************************************** +;; +(defrule possible-causes-1-1 + (troubleshoot-mode engine) + (menu-level engine possible-causes-1-1) + (problem engine ?problem&difficult-starting|poor-idling|insufficient-power) +=> + (printout t crlf crlf crlf) + (printout t + " You selected " ?problem " as the problem you would" crlf + " like to solve. If you change your mind and would like" crlf + " to review the main menu, press 0 now, otherwise select one" crlf + " of the possible causes of " ?problem " listed below." + crlf crlf + " 0.) Return to main menu." crlf + " 1.) Insufficient compression." crlf + " 2.) Malfunction of fuel system." crlf + " 3.) Malfunction of electrical system." crlf crlf + " Choice: " ) + (bind ?response (read)) + (assert (possible-cause ?problem ?response)) + (printout t crlf)) +;; +;;******************************************** +;; Clear the screen and present the possible * +;; causes for ABNORMAL COMBUSTION. * +;; * +;; Variables: * +;; ?response - used for binding in the * +;; users response. * +;;******************************************** +(defrule possible-causes-1-2 + (troubleshoot-mode engine) + (menu-level engine possible-causes-1-2) + (problem engine abnormal-combustion) +=> + (printout t crlf crlf crlf) + (printout t + " You selected abnormal-combustion as the problem you would" crlf + " like to solve. If you change your mind and would like" crlf + " to review the main menu, press 0 now, otherwise select one" crlf + " of the possible causes of abnormal-combustion listed below." + crlf crlf + " 0.) Return to main menu." crlf + " 1.) Malfunction in combustion chamber." crlf + " 2.) Malfunction of fuel system." crlf + " 3.) Malfunction of ignition system." crlf + " Choice: ") + (bind ?response (read)) + (assert (possible-cause abnormal-combustion ?response)) + (printout t crlf)) +;; +;;******************************************** +;; Clear the screen and present the possible * +;; causes for EXCESSIVE OIL CONSUMPTION. * +;; * +;; Variables: * +;; ?response - used for binding in the * +;; users response. * +;;******************************************** +(defrule possible-causes-1-3 + (troubleshoot-mode engine) + (menu-level engine possible-causes-1-3) + (problem engine excessive-oil-consumption) +=> + (printout t crlf crlf crlf) + (printout t + " You selected excessive-oil-consumption as the problem you" crlf + " would like to solve. If you change your mind and would like" crlf + " to review the main menu, press 0 now, otherwise select one" crlf + " of the possible causes of excessive-oil-consumption listed below." + crlf crlf + " 0.) Return to main menu." crlf + " 1.) Leakage into combustion chamber." crlf + " 2.) Leakage into coolant passages." crlf + " 3.) Leakage to outside of engine." crlf + " 4.) Malfunction of lubricating system." crlf + " Choice: ") + (bind ?response (read)) + (assert (possible-cause excessive-oil-consumption ?response)) + (printout t crlf)) +;; +;;******************************************** +;; Clear the screen and present the possible * +;; causes for ENGINE NOISE. * +;; * +;; Variables: * +;; ?response - used for binding in the * +;; users response. * +;;******************************************** +(defrule possible-causes-1-4 + (troubleshoot-mode engine) + (menu-level engine possible-causes-1-4) + (problem engine engine-noise) +=> + (printout t crlf crlf crlf) + (printout t + " You selected engine-noise as the problem you would like" crlf + " to solve. If you change your mind and would like to" crlf + " review the main menu, press 0 now, otherwise select one" crlf + " of the possible causes of engine-noise listed below." + crlf crlf + " 0.) Return to main menu." crlf + " 1.) Gas seal noise." crlf + " 2.) Knocking noise." crlf + " 3.) Hitting noise." crlf + " 4.) Other." crlf + " Choice: ") + (bind ?response (read)) + (assert (possible-cause engine-noise ?response)) + (printout t crlf)) +;; +;;************************************************* +;; This rule replaces the users numeric input for * +;; the possible cause of insufficient compression * +;; to the textual representation. This rule uses * +;; a variable for the problem field so it is not * +;; tied to any particular problem. * +;; * +;; Variables: * +;; ?ml - used for retracting the menu level. * +;; ?pc - used for retracting the possible cause * +;; fact. * +;; ?problem - the problem selected by the user. * +;;************************************************* +(defrule numeric-to-text-insufficient-compression-1-1 + (troubleshoot-mode engine) + ?ml <- (menu-level engine possible-causes-1-1) + ?pc <- (possible-cause ?problem 1) +=> + (retract ?ml) + (assert (menu-level engine possible-causes-1-1-1)) + (retract ?pc) + (assert (possible-cause ?problem insufficient-compression))) +;; +;;************************************************** +;; This rule replaces the users numeric input for * +;; the possible cause of malfunction in combustion * +;; chamber to the textual representation. This * +;; rule is for switching from the ABNORMAL * +;; COMBUSTION menu to the sub menu. * +;; * +;; Variables: * +;; ?ml - used for retracting the menu level. * +;; ?pc - used for retracting the possible cause * +;; fact. * +;; ?problem - the problem selected by the user. * +;;************************************************** +(defrule numeric-to-text-malfunction-in-combustion-chamber-1-2 + (troubleshoot-mode engine) + ?ml <- (menu-level engine possible-causes-1-2) + ?pc <- (possible-cause ?problem 1) +=> + (retract ?ml) + (assert (menu-level engine possible-causes-1-2-1)) + (retract ?pc) + (assert (possible-cause ?problem malfunction-in-combustion-chamber))) +;; +;;************************************************** +;; This rule replaces the users numeric input for * +;; the possible cause of leakage into combustion * +;; chamber to the textual representation. This * +;; rule is for switching from the EXCESSIVE OIL * +;; CONSUMPTION menu to the sub menu. * +;; * +;; Variables: * +;; ?ml - used for retracting the menu level. * +;; ?pc - used for retracting the possible cause * +;; fact. * +;; ?problem - the problem selected by the user. * +;;************************************************** +(defrule numeric-to-text-leakage-into-combustion-chamber-1-3 + (troubleshoot-mode engine) + ?ml <- (menu-level engine possible-causes-1-3) + ?pc <- (possible-cause ?problem 1) +=> + (retract ?ml) + (assert (menu-level engine possible-causes-1-3-1)) + (retract ?pc) + (assert (possible-cause ?problem leakage-into-combustion-chamber))) +;; +;;************************************************** +;; This rule replaces the users numeric input for * +;; the possible cause of leakage into coolant * +;; passages to the textual representation. This * +;; rule is for switching from the EXCESSIVE OIL * +;; CONSUMPTION menu to the sub menu. * +;; * +;; Variables: * +;; ?ml - used for retracting the menu level. * +;; ?pc - used for retracting the possible cause * +;; fact. * +;; ?problem - the problem selected by the user. * +;;************************************************** +(defrule numeric-to-text-leakage-into-coolant-passages-1-3 + (troubleshoot-mode engine) + ?ml <- (menu-level engine possible-causes-1-3) + ?pc <- (possible-cause ?problem 2) +=> + (retract ?ml) + (assert (menu-level engine possible-causes-1-3-2)) + (retract ?pc) + (assert (possible-cause ?problem leakage-into-coolant-passages))) +;; +;;************************************************** +;; This rule replaces the users numeric input for * +;; the possible cause of gas seal noise to the * +;; textual representation. This rule is for * +;; switching from the EXCESSIVE OIL CONSUMPTION * +;; menu to the sub menu. * +;; * +;; Variables: * +;; ?ml - used for retracting the menu level. * +;; ?pc - used for retracting the possible cause * +;; fact. * +;; ?problem - the problem selected by the user. * +;;************************************************** +(defrule numeric-to-text-gas-seal-noise-1-4 + (troubleshoot-mode engine) + ?ml <- (menu-level engine possible-causes-1-4) + ?pc <- (possible-cause ?problem 1) +=> + (retract ?ml) + (assert (menu-level engine possible-causes-1-4-1)) + (retract ?pc) + (assert (possible-cause ?problem gas-seal-noise))) +;; +;;************************************************** +;; This rule replaces the users numeric input for * +;; the possible cause of knocking noise to the * +;; textual representation. This rule is for * +;; switching from the EXCESSIVE OIL CONSUMPTION * +;; menu to the sub menu. * +;; * +;; Variables: * +;; ?ml - used for retracting the menu level. * +;; ?pc - used for retracting the possible cause * +;; fact. * +;; ?problem - the problem selected by the user. * +;;************************************************** +(defrule numeric-to-text-knocking-noise-1-4 + (troubleshoot-mode engine) + ?ml <- (menu-level engine possible-causes-1-4) + ?pc <- (possible-cause ?problem 2) +=> + (retract ?ml) + (assert (menu-level engine possible-causes-1-4-2)) + (retract ?pc) + (assert (possible-cause ?problem knocking-noise))) +;; +;;************************************************** +;; This rule replaces the users numeric input for * +;; the possible cause of hitting noise to the * +;; textual representation. This rule is for * +;; switching from the EXCESSIVE OIL CONSUMPTION * +;; menu to the sub menu. * +;; * +;; Variables: * +;; ?ml - used for retracting the menu level. * +;; ?pc - used for retracting the possible cause * +;; fact. * +;; ?problem - the problem selected by the user. * +;;************************************************** +(defrule numeric-to-text-hitting-noise-1-4 + (troubleshoot-mode engine) + ?ml <- (menu-level engine possible-causes-1-4) + ?pc <- (possible-cause ?problem 3) +=> + (retract ?ml) + (assert (menu-level engine possible-causes-1-4-3)) + (retract ?pc) + (assert (possible-cause ?problem hitting-noise))) +;; +;;************************************************** +;; This rule replaces the users numeric input for * +;; the possible cause of other to the textual * +;; representation. This rule is for switching * +;; from the EXCESSIVE OIL CONSUMPTION menu to the * +;; sub menu. * +;; * +;; Variables: * +;; ?ml - used for retracting the menu level. * +;; ?pc - used for retracting the possible cause * +;; fact. * +;; ?problem - the problem selected by the user. * +;;************************************************** +(defrule numeric-to-text-other-1-4 + (troubleshoot-mode engine) + ?ml <- (menu-level engine possible-causes-1-4) + ?pc <- (possible-cause ?problem 4) +=> + (retract ?ml) + (assert (menu-level engine possible-causes-1-4-4)) + (retract ?pc) + (assert (possible-cause ?problem other))) +;; +;;****************************************************** +;; If insufficient compression is a possible cause of * +;; some problem, * +;; Then present the possible causes of the problem. * +;; * +;; Variables: * +;; ?pc - used for retracting the possible cause. * +;; ?problem - the problem selected by the user. * +;; ?response - the users response to the menu prompt.* +;;****************************************************** +(defrule possible-causes-of-insufficient-compression + (troubleshoot-mode engine) + (menu-level engine possible-causes-1-1-1) + ?pc <- (possible-cause ?problem insufficient-compression) +=> + (retract ?pc) + (printout t crlf crlf crlf) + (printout t + " You selected INSUFFICIENT COMPRESSION as a possible cause" crlf + " of the problem " ?problem ". If you change your mind and" crlf + " would like to review the previous choices, press 0 now," crlf + " otherwise select one of the possible causes of INSUFFICIENT" crlf + " COMPRESSION listed below." crlf crlf + " 0.) Return to previous menu." crlf + " 1.) Deformation or abnormal wear of side housing." crlf + " 2.) Deformation of abnormal wear of rotor housing." crlf + " 3.) Wear of rotor grooves." crlf + " 4.) Deformation or poor fastening of gas seals." crlf + " 5.) Worn or weak spring." crlf crlf + " Choice: ") + (bind ?response (read)) + (assert (possible-cause ?problem ?response)) + (printout t crlf)) +;; +;;****************************************************** +;; This is the sub menu for malfunction in combustion * +;; chamber under problem of abnormal combustion. * +;; If malfunction in combustion chamber is a possible * +;; cause of some problem, * +;; Then present the possible causes of malfunction in * +;; combustion chamber. * +;; * +;; Variables: * +;; ?pc - used for retracting the possible cause. * +;; ?problem - the problem selected by the user. * +;; ?response - the users response to the menu prompt.* +;;****************************************************** +(defrule possible-causes-of-malfunction-in-combustion-chamber + (troubleshoot-mode engine) + (menu-level engine possible-causes-1-2-1) + ?pc <- (possible-cause ?problem malfunction-in-combustion-chamber) +=> + (retract ?pc) + (printout t crlf crlf crlf) + (printout t + " You selected MALFUNCTION IN COMBUSTION CHAMBER as a possible" crlf + " cause of the problem " ?problem ". If you change your mind" crlf + " and would like to review the previous choices, press 0 now," crlf + " otherwise select the possible cause of MALFUNCTION IN " crlf + " COMBUSTION CHAMBER listed below." crlf crlf + " 0.) Return to previous menu." crlf + " 1.) Carbon accumulation." crlf crlf + " Choice: ") + (bind ?response (read)) + (assert (possible-cause ?problem ?response)) + (printout t crlf)) +;; +;;****************************************************** +;; This is the sub menu for leakage into combustion * +;; chamber under problem of excessive oil consumption. * +;; If leakage into combustion chamber is a possible * +;; cause of some problem, * +;; Then present the possible causes of leakage into * +;; combustion chamber. * +;; * +;; Variables: * +;; ?pc - used for retracting the possible cause. * +;; ?problem - the problem selected by the user. * +;; ?response - the users response to the menu prompt.* +;;****************************************************** +(defrule possible-causes-of-leakage-into-combustion-chamber + (troubleshoot-mode engine) + (menu-level engine possible-causes-1-3-1) + ?pc <- (possible-cause ?problem leakage-into-combustion-chamber) +=> + (retract ?pc) + (printout t crlf crlf crlf) + (printout t + " You selected LEAKAGE INTO COMBUSTION CHAMBER as a possible" crlf + " cause of the problem " ?problem ". If you" crlf + " change your mind and would like to review the previous" crlf + " choices, press 0 now, otherwise select one of the possible" crlf + " causes of LEAKAGE INTO COMBUSTION CHAMBER listed below." crlf crlf + " 0.) Return to previous menu." crlf + " 1.) Deformation or abnormal wear of side housing." crlf + " 2.) Malfunction of rotor (blowholes)." crlf + " 3.) Scratched or burred rotor land." crlf + " 4.) Malfunction of oil seal (incorrect angle)." crlf + " Choice: ") + (bind ?response (read)) + (assert (possible-cause ?problem ?response)) + (printout t crlf)) +;; +;;******************************************************* +;; This is the sub menu for leakage into coolant * +;; passages under problem of excessive oil consumption. * +;; If leakage into coolant passages is a possible cause * +;; of some problem, * +;; Then present the possible causes of leakage into * +;; coolant passages. * +;; * +;; Variables: * +;; ?pc - used for retracting the possible cause. * +;; ?problem - the problem selected by the user. * +;; ?response - the users response to the menu prompt.* +;;******************************************************* +(defrule possible-causes-of-leakage-into-coolant-passages + (troubleshoot-mode engine) + (menu-level engine possible-causes-1-3-2) + ?pc <- (possible-cause ?problem leakage-into-coolant-passages) +=> + (retract ?pc) + (printout t crlf crlf crlf) + (printout t + " You selected LEAKAGE INTO COOLANT PASSAGES as a possible" crlf + " cause of the problem " ?problem ". If you" crlf + " change your mind and would like to review the previous" crlf + " choices, press 0 now, otherwise select one of the possible" crlf + " causes of LEAKAGE INTO COOLANT PASSAGES listed below." crlf crlf + " 0.) Return to previous menu." crlf + " 1.) Deformed rotor housing." crlf + " 2.) Malfunction of sealing rubber." crlf + " Choice: ") + (bind ?response (read)) + (assert (possible-cause ?problem ?response)) + (printout t crlf)) +;; +;;******************************************************* +;; This is the sub menu for gas seal noise under * +;; problem of excessive oil consumption. * +;; If gas seal noise is a possible cause * +;; of some problem, * +;; Then present the possible causes of gas seal noise * +;; * +;; Variables: * +;; ?pc - used for retracting the possible cause. * +;; ?problem - the problem selected by the user. * +;; ?response - the users response to the menu prompt.* +;;******************************************************* +(defrule possible-causes-of-gas-seal-noise + (troubleshoot-mode engine) + (menu-level engine possible-causes-1-4-1) + ?pc <- (possible-cause ?problem gas-seal-noise) +=> + (retract ?pc) + (printout t crlf crlf crlf) + (printout t + " You selected GAS SEAL NOISE as a possible cause of the" crlf + " problem " ?problem ". If you change your mind and" crlf + " would like to review the previous choices, press 0" crlf + " now, otherwise select one of the possible causes of" crlf + " GAS SEAL NOISE listed below." crlf crlf + " 0.) Return to previous menu." crlf + " 1.) Malfunction of gas seal." crlf + " 2.) Malfunction of housing." crlf + " 3.) Malfunction of seal spring." crlf + " 4.) Malfunction of metering oil pump." crlf + " Choice: ") + (bind ?response (read)) + (assert (possible-cause ?problem ?response)) + (printout t crlf)) +;; +;;******************************************************* +;; This is the sub menu for knocking noise under the * +;; problem of excessive oil consumption. * +;; If gas knocking noise is a possible cause * +;; of some problem, * +;; Then present the possible causes of knocking noise. * +;; * +;; Variables: * +;; ?pc - used for retracting the possible cause. * +;; ?problem - the problem selected by the user. * +;; ?response - the users response to the menu prompt.* +;;******************************************************* +(defrule possible-causes-of-knocking-noise + (troubleshoot-mode engine) + (menu-level engine possible-causes-1-4-2) + ?pc <- (possible-cause ?problem knocking-noise) +=> + (retract ?pc) + (printout t crlf crlf crlf) + (printout t + " You selected KNOCKING NOISE as a possible cause of the" crlf + " problem " ?problem ". If you change your mind and" crlf + " would like to review the previous choices, press 0" crlf + " now, otherwise select the possible cause of" crlf + " KNOCKING NOISE listed below." crlf crlf + " 0.) Return to previous menu." crlf + " 1.) Accumulation of carbon." crlf + " Choice: ") + (bind ?response (read)) + (assert (possible-cause ?problem ?response)) + (printout t crlf)) +;; +;;******************************************************* +;; This is the sub menu for hitting noise under * +;; problem of excessive oil consumption. * +;; If hitting noise is a possible cause * +;; of some problem, * +;; Then present the possible causes of hitting noise * +;; * +;; Variables: * +;; ?pc - used for retracting the possible cause. * +;; ?problem - the problem selected by the user. * +;; ?response - the users response to the menu prompt.* +;;******************************************************* +(defrule possible-causes-of-hitting-noise + (troubleshoot-mode engine) + (menu-level engine possible-causes-1-4-3) + ?pc <- (possible-cause ?problem hitting-noise) +=> + (retract ?pc) + (printout t crlf crlf crlf) + (printout t + " You selected HITTING NOISE as a possible cause of the" crlf + " problem " ?problem ". If you change your mind and" crlf + " would like to review the previous choices, press 0" crlf + " now, otherwise select one of the possible causes of" crlf + " HITTING NOISE listed below." crlf crlf + " 0.) Return to previous menu." crlf + " 1.) Malfunction of main bearing or rotor bearing." crlf + " 2.) Excessive end play." crlf + " 3.) Foreign matter in internal gear or stationary" crlf + " gear, or other malfunction." crlf + " Choice: ") + (bind ?response (read)) + (assert (possible-cause ?problem ?response)) + (printout t crlf)) +;; +;;******************************************************* +;; This is the sub menu for OTHER under * +;; problem of excessive oil consumption. * +;; If other is a possible cause * +;; of some problem, * +;; Then present the possible causes of other. * +;; * +;; Variables: * +;; ?pc - used for retracting the possible cause. * +;; ?problem - the problem selected by the user. * +;; ?response - the users response to the menu prompt.* +;;******************************************************* +(defrule possible-causes-of-other + (troubleshoot-mode engine) + (menu-level engine possible-causes-1-4-4) + ?pc <- (possible-cause ?problem other) +=> + (retract ?pc) + (printout t crlf crlf crlf) + (printout t + " You selected OTHER as a possible cause of the problem" crlf + " " ?problem ". If you change your mind and" crlf + " would like to review the previous choices, press 0" crlf + " now, otherwise select one of the possible causes of" crlf + " OTHER listed below." crlf crlf + " 0.) Return to previous menu." crlf + " 1.) Malfunction of water pump bearing." crlf + " 2.) Drive belt tension." crlf + " 3.) Malfunction of alternator bearing." crlf + " 4.) Exhaust gas leakage." crlf + " 5.) Malfunction of fuel system." crlf + " Choice: ") + (bind ?response (read)) + (assert (possible-cause ?problem ?response)) + (printout t crlf)) +;; +;;*********************************************************** +;; If the current menu level is difficult starting choices, * +;; and the user selects choice 0, * +;; Then re-display the main menu for engine troublshooting. * +;; * +;; Variables: * +;; ?ml - for retracting the menu level fact. * +;; ?pc - for retracting the possible cause fact. * +;;*********************************************************** +;; +(defrule ascend-to-main-menu-1 + ?ml <- (menu-level engine possible-causes-1-1) + ?pc <- (possible-cause ?problem 0) +=> + (retract ?ml) + (retract ?pc) + (assert (menu-level engine main))) +;; +;; +;;*********************************************************** +;; If the current menu level is possible-causes-1-1-1, * +;; and the user selects choice 0, * +;; Then re-display the previous menu. * +;; * +;; Variables: * +;; ?ml - for retracting the menu level fact. * +;; ?pc - for retracting the possible cause fact. * +;;*********************************************************** +(defrule ascend-to-previous-menu-1-1-1 + ?ml <- (menu-level engine possible-causes-1-1-1) + ?pc <- (possible-cause ?problem 0) +=> + (retract ?ml) + (retract ?pc) + (assert (menu-level engine possible-causes-1-1))) +;; +;;*********************************************************** +;; If the current menu level is possible-causes-1-2-1, * +;; and the user selects choice 0, * +;; Then re-display the previous menu. * +;; * +;; Variables: * +;; ?ml - for retracting the menu level fact. * +;; ?pc - for retracting the possible cause fact. * +;;*********************************************************** +(defrule ascend-to-previous-menu-1-2-1 + ?ml <- (menu-level engine possible-causes-1-2-1) + ?pc <- (possible-cause ?problem 0) +=> + (retract ?ml) + (retract ?pc) + (assert (menu-level engine possible-causes-1-2))) +;; +;;*********************************************************** +;; If the current menu level is possible-causes-1-3-1, * +;; and the user selects choice 0, * +;; Then re-display the previous menu. * +;; * +;; Variables: * +;; ?ml - for retracting the menu level fact. * +;; ?pc - for retracting the possible cause fact. * +;;*********************************************************** +(defrule ascend-to-previous-menu-1-3-1 + ?ml <- (menu-level engine possible-causes-1-3-1) + ?pc <- (possible-cause ?problem 0) +=> + (retract ?ml) + (retract ?pc) + (assert (menu-level engine possible-causes-1-3))) +;; +;;*********************************************************** +;; If the current menu level is possible-causes-1-3-2, * +;; and the user selects choice 0, * +;; Then re-display the previous menu. * +;; * +;; Variables: * +;; ?ml - for retracting the menu level fact. * +;; ?pc - for retracting the possible cause fact. * +;;*********************************************************** +(defrule ascend-to-previous-menu-1-3-2 + ?ml <- (menu-level engine possible-causes-1-3-2) + ?pc <- (possible-cause ?problem 0) +=> + (retract ?ml) + (retract ?pc) + (assert (menu-level engine possible-causes-1-3))) +;; +;;*********************************************************** +;; If the current menu level is possible-causes-1-4-1, * +;; and the user selects choice 0, * +;; Then re-display the previous menu. * +;; * +;; Variables: * +;; ?ml - for retracting the menu level fact. * +;; ?pc - for retracting the possible cause fact. * +;;*********************************************************** +(defrule ascend-to-previous-menu-1-4-1 + ?ml <- (menu-level engine possible-causes-1-4-1) + ?pc <- (possible-cause ?problem 0) +=> + (retract ?ml) + (retract ?pc) + (assert (menu-level engine possible-causes-1-4))) +;; +;;*********************************************************** +;; If the current menu level is possible-causes-1-4-2, * +;; and the user selects choice 0, * +;; Then re-display the previous menu. * +;; * +;; Variables: * +;; ?ml - for retracting the menu level fact. * +;; ?pc - for retracting the possible cause fact. * +;;*********************************************************** +(defrule ascend-to-previous-menu-1-4-2 + ?ml <- (menu-level engine possible-causes-1-4-2) + ?pc <- (possible-cause ?problem 0) +=> + (retract ?ml) + (retract ?pc) + (assert (menu-level engine possible-causes-1-4))) +;; +;;*********************************************************** +;; If the current menu level is possible-causes-1-4-3, * +;; and the user selects choice 0, * +;; Then re-display the previous menu. * +;; * +;; Variables: * +;; ?ml - for retracting the menu level fact. * +;; ?pc - for retracting the possible cause fact. * +;;*********************************************************** +(defrule ascend-to-previous-menu-1-4-3 + ?ml <- (menu-level engine possible-causes-1-4-3) + ?pc <- (possible-cause ?problem 0) +=> + (retract ?ml) + (retract ?pc) + (assert (menu-level engine possible-causes-1-4))) +;; +;;*********************************************************** +;; If the current menu level is possible-causes-1-4-4, * +;; and the user selects choice 0, * +;; Then re-display the previous menu. * +;; * +;; Variables: * +;; ?ml - for retracting the menu level fact. * +;; ?pc - for retracting the possible cause fact. * +;;*********************************************************** +(defrule ascend-to-previous-menu-1-4-4 + ?ml <- (menu-level engine possible-causes-1-4-4) + ?pc <- (possible-cause ?problem 0) +=> + (retract ?ml) + (retract ?pc) + (assert (menu-level engine possible-causes-1-4))) +;; +;;*********************************************************** +;; If the current menu level is possible-causes-1-2, * +;; and the user selects choice 0, * +;; Then re-display the previous menu. * +;; * +;; Variables: * +;; ?ml - for retracting the menu level fact. * +;; ?pc - for retracting the possible cause fact. * +;;*********************************************************** +(defrule ascend-to-main-menu-2 + ?ml <- (menu-level engine possible-causes-1-2) + ?pc <- (possible-cause ?problem 0) +=> + (retract ?ml) + (retract ?pc) + (assert (menu-level engine main))) +;; +;;*********************************************************** +;; If the current menu level is possible-causes-1-3, * +;; and the user selects choice 0, * +;; Then re-display the previous menu. * +;; * +;; Variables: * +;; ?ml - for retracting the menu level fact. * +;; ?pc - for retracting the possible cause fact. * +;;*********************************************************** +(defrule ascend-to-main-menu-3 + ?ml <- (menu-level engine possible-causes-1-3) + ?pc <- (possible-cause ?problem 0) +=> + (retract ?ml) + (retract ?pc) + (assert (menu-level engine main))) +;; +;;*********************************************************** +;; If the current menu level is possible-causes-1-4, * +;; and the user selects choice 0, * +;; Then re-display the previous menu. * +;; * +;; Variables: * +;; ?ml - for retracting the menu level fact. * +;; ?pc - for retracting the possible cause fact. * +;;*********************************************************** +(defrule ascend-to-main-menu-4 + ?ml <- (menu-level engine possible-causes-1-4) + ?pc <- (possible-cause ?problem 0) +=> + (retract ?ml) + (retract ?pc) + (assert (menu-level engine main))) +;; +;;*********************************************************** +;; If the current menu level is possible-causes-1-1-1, * +;; and the user selects choice 1, * +;; Then list the appropriate instructions. * +;; * +;; Variables: * +;; ?ml - for retracting the menu level fact. * +;; ?pc - for retracting the possible cause fact. * +;; ?response - for binding in the users response. * +;;*********************************************************** +(defrule instructions-1-1-1-1 + (troubleshoot-mode engine) + ?ml <- (menu-level engine possible-causes-1-1-1) + ?pc <- (possible-cause ?problem 1) +=> + (retract ?ml) + (retract ?pc) + (printout t + " Check the side housings (front, intermediate and rear" crlf + " housings) for warpage. Replace if warpage exceeds 0.04 mm." crlf + " Refer to section 1-42 in service manual for further" crlf + " instructions or illustrations." crlf crlf + " Press return to view main menu." crlf) + (bind ?response (readline)) + (assert (menu-level engine main))) +;; +;;*********************************************************** +;; If the current menu level is possible-causes-1-1-1, * +;; and the user selects choice 2, * +;; Then list the appropriate instructions. * +;; * +;; Variables: * +;; ?ml - for retracting the menu level fact. * +;; ?pc - for retracting the possible cause fact. * +;; ?response - for binding in the users response. * +;;*********************************************************** +(defrule instructions-1-1-1-2 + (troubleshoot-mode engine) + ?ml <- (menu-level engine ?causes) + ?pc <- (possible-cause ?problem 2) +=> + (retract ?ml) + (retract ?pc) + (printout t + " 1.) Check the chromium plated surface on the rotor housing for" crlf + " scoring, flaking or any other damage. Replace if necessary." crlf + " 2.) See section 1-45 in service manual for measuring rotor." crlf + " housing width." crlf crlf + " Press return to view main menu." crlf) + (bind ?response (readline)) + (assert (menu-level engine main))) +;; +;;*********************************************************** +;; If the current menu level is possible-causes-1-1-1, * +;; and the user selects choice 3, * +;; Then list the appropriate instructions. * +;; * +;; Variables: * +;; ?ml - for retracting the menu level fact. * +;; ?pc - for retracting the possible cause fact. * +;; ?response - for binding in the users response. * +;;*********************************************************** +(defrule instructions-1-1-1-3 + (troubleshoot-mode engine) + ?ml <- (menu-level engine ?causes) + ?pc <- (possible-cause ?problem 3) +=> + (retract ?ml) + (retract ?pc) + (printout t + " 1.) Carefully inspect the rotor and replace it if it is" crlf + " severely worn or damaged." crlf + " 2.) Check the internal gear for cracked, scored, worn or" crlf + " chipped teeth." crlf + " 3.) Check the clearance between the side housing and rotor." crlf + " See section 1-45 in repair manual for illustration." crlf crlf + " Press return to view main menu." crlf) + (bind ?response (readline)) + (assert (menu-level engine main))) +;; +;;*********************************************************** +;; If the current menu level is possible-causes-1-1-1, * +;; and the user selects choice 4, * +;; Then list the appropriate instructions. * +;; * +;; Variables: * +;; ?ml - for retracting the menu level fact. * +;; ?pc - for retracting the possible cause fact. * +;; ?response - for binding in the users response. * +;;*********************************************************** +(defrule instructions-1-1-1-4 + (troubleshoot-mode engine) + ?ml <- (menu-level engine ?causes) + ?pc <- (possible-cause ?problem 4) +=> + (retract ?ml) + (retract ?pc) + (printout t + " 1.) Inspect the oil seal for wear or damage." crlf + " Replace if necessary." crlf + " 2.) Check the oil seal lip width." crlf + " Lip width should not exceed 0.5 mm." crlf + " 3.) Check the oil seals for free vertical movement." crlf + " See section 1-47 in repair manual for illustration." crlf crlf + " Press return to view main menu." crlf) + (bind ?response (readline)) + (assert (menu-level engine main))) +;; +;;*********************************************************** +;; If the current menu level is possible-causes-1-1-1, * +;; and the user selects choice 5, * +;; Then list the appropriate instructions. * +;; * +;; Variables: * +;; ?ml - for retracting the menu level fact. * +;; ?pc - for retracting the possible cause fact. * +;; ?response - for binding in the users response. * +;;*********************************************************** +(defrule instructions-1-1-1-5 + (troubleshoot-mode engine) + ?ml <- (menu-level engine ?causes) + ?pc <- (possible-cause ?problem 5) +=> + (retract ?ml) + (retract ?pc) + (printout t + " Inspect the oil seal springs to see that they are properly" crlf + " seated in their respective grooves." crlf + " See section 1-47 in repair manual for illustration." crlf crlf + " Press return to view main menu." crlf) + (bind ?response (readline)) + (assert (menu-level engine main))) +;; +;;*********************************************************** +;; If the current menu level is possible-causes-1-2-1, * +;; and the user selects choice 1, * +;; Then list the appropriate instructions. * +;; * +;; Variables: * +;; ?ml - for retracting the menu level fact. * +;; ?pc - for retracting the possible cause fact. * +;; ?response - for binding in the users response. * +;;*********************************************************** +(defrule instructions-1-2-1-1 + (troubleshoot-mode engine) + ?ml <- (menu-level engine possible-causes-1-2-1) + ?pc <- (possible-cause ?problem 1) +=> + (retract ?ml) + (retract ?pc) + (printout t + " Side Housings (front, intermediate and rear housings)" crlf + " 1.) Remove the sealing agent from the housing surface" crlf + " with a cloth or a brush soaked in solvent or thinner." crlf + " 2.) Remove all carbon on the rotor chamber surface with" crlf + " extra-fine emery paper." crlf crlf + " Rotor Housing" crlf + " Note" crlf + " Before cleaning, check for traces of gas or water leakage" crlf + " along the inner margin of the rotor housings." crlf crlf + " 1.) Remove all carbon from the inner surface of the rotor" crlf + " housing by wiping with a cloth soaked in solvent or" crlf + " thinner." crlf + " 2.) Remove all deposits and rust from the cooling water" crlf + " passages on the housing." crlf + " 3.) Remove the sealing agent from the housing with a cloth" crlf + " or brush soaked in solvent or thinner." crlf crlf + " Press return to continue printing instructions." crlf) + (bind ?key (readline)) + (printout t + " Rotor" crlf + " 1.) Remove the carbon from the rotor with a carbon remover" crlf + " or emery paper." crlf crlf + " Caution" crlf + " a) Do not use emery paper on the groove of the apex seal" crlf + " or the side seal." crlf + " b) Take care not to damage the soft material coating on the" crlf + " side surfaces." crlf crlf + " 2.) Remove the carbon in each groove." crlf + " 3.) Wash the rotor with a cleaning solution." crlf crlf + " Press return to view main menu." crlf) + (bind ?response (readline)) + (assert (menu-level engine main))) --- clips-6.24.orig/examples/nematode.clp +++ clips-6.24/examples/nematode.clp @@ -0,0 +1,980 @@ +(defrule start + (declare (salience 500)) + ?init <- (initial-fact) + => + (printout t "Welcome to the expert nematode diagnosis system !" crlf + "This program can identify the following nematodes : " crlf) + (retract ?init) + (assert (print-list list)) + ) + +(defrule print-list + (declare (salience 500)) + (print-list list) + ?genus <- (genus ?name) + => + (retract ?genus) + (printout t " Genus " ?name crlf) + ) + +(defrule ready + ?print <- (print-list list) + => + (retract ?print) + (printout t "Ready to work : (yes/no) ?" crlf) + (assert (ready =(read))) + ) + +(defrule start-to-id + ?ready <- (ready yes) + => + (retract ?ready) + (assert (query)) + ) + +(defrule determine-nematode + ?query <- (query) + (not (a nematode ?nema)) + => + (retract ?query) + (printout t "Is this a nematode ?" crlf + "(yes/no/unknown)" crlf) + (assert (a nematode =(read))) + ) + +(defrule is-a-nematode-1 + ?f1 <- (a nematode yes) + => + (retract ?f1) + (assert (this-is-a-nematode)) + ) + +(defrule not-a-nema + ?f1 <- (a nematode no) + => + (retract ?f1) + (printout t "This is not a nematode. " crlf + "This program only identifies nematodes." crlf + "Find another one : (yes /no ) ?" crlf) + (assert (find-another =(read))) + + ) + + +(defrule find-another + ?f4 <- (find-another yes) +=> + (assert (query)) + (retract ?f4) + ) + + +(defrule unknown-creature + (a nematode unknown) + => + (printout t "Does it belong to any of the following shape ?" crlf crlf + " vermiform / pear_shaped / fusiform" crlf + " slender,spindle_shaped / / with annules" crlf + " unsegmented / /" crlf + " (yes / no) ?" crlf crlf) + (assert (valid-shape =(read))) +; (printout t "Is it bilaterally symmetrical :" crlf +; " (yes / no) ? " crlf) +; (assert (bilateral =(read))) + ) + +(defrule is-not-a-nema-2 + ?f1 <- (a nematode unknown) + ?shape <- (valid-shape no) +; ?bi <- (bilateral no) + => + (printout t "This is not a nematode. " crlf + "This program only identifies nematodes." crlf + "Find another one : (yes / no) ?" crlf ) + (assert (find-another =(read))) + (retract ?f1 ?shape) +; (retract ?bi) + ) + + +(defrule is-a-nema-2 + ?f1 <- (a nematode unknown) + ?shape <- (valid-shape yes) +; ?bi <- (bilateral yes) + => + (assert (this-is-a-nematode)) + (printout t "This is a nematode !" crlf) + (retract ?f1 ?shape) +; (retract ?bi) + ) + +(defrule stylet + (this-is-a-nematode) + (not (stylet ?present)) + => + (printout t "Does it have a stylet : (present /absent) ?" crlf) + (assert (stylet =(read))) + ) + +(defrule not-a-plant-parasitic-nema + ?stylet <- (stylet absent) + ?nema <- (this-is-a-nematode) + => + (printout t "This is not a plant parasitic nematode." crlf + "Look for another one that has a stylet in the mouth part." crlf + "Ready : (yes/no) ?" crlf) + (assert (ready =(read))) + (retract ?stylet ?nema) + ) + + + +(defrule plant-parasitic-nema + ?f1 <- (stylet present) + ?f2 <- (this-is-a-nematode) + (not (esophagus ?how-many-part)) + => + (retract ?f1 ?f2) + (printout t crlf) + (printout t "This is possibly a plant parasitic nematode. " crlf + "Continue to identify it ." crlf crlf) + (printout t "Look at its esophagus, is it : (two-part / three-part) ?" crlf + "two-part : anterior part slender" crlf + " posterior part glandular and muscular ." crlf crlf + "three-part : anterior slender "crlf + " median bulb present" crlf + " posterior part : glandular basal bulb. " crlf crlf + "Which one ? (two-part / three-part)" crlf) + (assert (esophagus =(read))) + ) + +(defrule check-Trichorus + (esophagus two-part) + (not (Trichodorus ?answer)) + => + (printout t "Is this stylet short and curved, body short and thick " + "(0.45-1.5 mm long) :" crlf + " (yes/no) ? " crlf) + (assert (Trichodorus =(read))) + ) + +(defrule Trichodorus + ?f3 <- (esophagus two-part) + ?f4 <- (Trichodorus yes) + => + (retract ?f3 ?f4) + (assert (nematode Trichodorus)) + (assert (id-criteria "1. esophagus two part." + "2. body-shape short and thick." + "3. stylet-shape short and curved.")) + ) + +(defrule not-Trichodorus + ?f2 <- (esophagus two-part) + ?f1 <- (Trichodorus no) + (not (Longidorus Xiphinema ?answer)) + => + (retract ?f1 ?f2) + (printout t "Is the stylet-long, straight, tapering to a long slender point " + crlf + "with long extensions, body long and slender : " crlf + " (yes / no) ? " crlf) + (assert (Longidorus Xiphinema =(read))) + ) + +(defrule Xiphinema-Logidorus + (Longidorus Xiphinema yes) + => + (printout t "Stylet extension with basal flanges and " crlf) + (printout t "Guiding ring in the middle of the stylet : (yes/no) ?" crlf) + (assert (Xiphinema =(read))) + ) + +(defrule Xiphinema-facts +?f1 <- (Xiphinema yes) + => + (retract ?f1) + (assert (stylet-extension with basal-flanges)) + (assert (guiding-ring middle)) + ) + +(defrule Longidorus-facts +?f1 <- (Xiphinema no) + => + (retract ?f1) + (assert (stylet-extension without basal-flanges)) + (assert (guiding-ring anterior)) + ) + + + +(defrule Xiphinema + ?f1 <- (Longidorus Xiphinema yes) + ?f3 <- (stylet-extension with basal-flanges) + ?f4 <- (guiding-ring middle) + => + (retract ?f1 ?f3 ?f4) + (assert (nematode Xiphinema)) + (assert (id-criteria "1. esophagus two-part." + "2. body-shape long and slender." + "3. stylet-shape long, straight, + extension long with basal flanges.")) + ) + +(defrule Longidorus + ?f1 <- (Longidorus Xiphinema yes) + ?f3 <- (stylet-extension without basal-flanges) + ?f4 <- (guiding-ring anterior) + => + (retract ?f1 ?f3 ?f4) + (assert (nematode Longidorus)) + (assert (id-criteria "1. esophagus two-part." + "2. body-shape long and slender." + "3. stylet-shape long, straight, + extension long without basal flanges.")) + ) + +(defrule unknown-feeding-habits-nema + ?f1 <- (Longidorus Xiphinema no) + => + (retract ?f1) + (assert (nematode "A large number of genera, feeding habits unknown.")) + (assert (id-criteria "1. esophagus two-part." + "2. stylet straight, usually not very long." + "3. body normal.")) + ) + +(defrule median-bulb-size + (esophagus three-part) + (not (median-bulb ?size)) + => + (printout t "What is the size of the median bulb ?" crlf crlf + " 1. as wide as the diameter of the body width. " crlf + " 2. less than 3/4 body width . " crlf ) + (assert (median-bulb =(read))) + ) + +(defrule metacorpus-small + ?bulb <- (median-bulb 2) + => + (retract ?bulb) + (assert (median-bulb small)) + ) + +(defrule metacorpus-large + ?bulb <- (median-bulb 1) + => + (retract ?bulb) + (assert (median-bulb large)) + ) + + +(defrule Aphelenchoidea + ?f1 <- (esophagus three-part) + ?f2 <- (median-bulb large) + (not (Superfamily Aphelenchoidea)) + => + (retract ?f1 ?f2) + (assert (Superfamily Aphelenchoidea)) + ) + +(defrule Tylenchoidea + ?f1 <- (esophagus three-part) + ?f2 <- (median-bulb small) + (not (Superfamily Tylenchoidea)) + => + (retract ?f1 ?f2) + (assert (Superfamily Tylenchoidea)) + ) + +(defrule Aphelenchoidea-tail-shape + (Superfamily Aphelenchoidea) + (not (tail-shape ?size)) + => + (printout t "Shape of tail : (blunt or conoid) ? " crlf) + (assert (tail-shape =(read))) + ) + +(defrule Aphelenchus + ?f1 <- (Superfamily Aphelenchoidea) + ?f2 <- (tail-shape blunt) + => + (retract ?f1 ?f2) + (assert (nematode Aphelenchus)) + (assert (id-criteria "1. esophagus three-part." + "2. metacorpus large." + "3. female tail-shape blunt.")) + ) + +(defrule Aphelenchoides + ?f1 <- (Superfamily Aphelenchoidea) + ?f2 <- (tail-shape conoid) + => + (retract ?f1 ?f2) + (assert (nematode Aphelenchoides)) + (assert (id-criteria "1. esophagus three-part." + "2. metacorpus large." + "3. tail-shape conoid, with 1 or more sharp points.")) + ) + +(defrule annulated-cuticle + ?f1 <- (Superfamily Tylenchoidea) + (not (cuticle-annulated-heavily ?any)) + => + (retract ?f1) + (printout t "Is the cuticle heavily annulated ? (yes / no) : " crlf) + (assert (cuticle-annulated-heavily =(read))) + ) + +(defrule Criconematidae + ?f2 <- (cuticle-annulated-heavily yes) + (not (Family Criconematidae)) + => + (retract ?f2) + (assert (Family Criconematidae)) + ) + +(defrule cuticle-sheath + ?f3 <- (Family Criconematidae) + (not (cuticle-sheath ?any)) + => + (retract ?f3) + (printout t "Does the body have prominent cuticle sheath ? " + " (present / absent) ? " crlf) + (assert (cuticle-sheath =(read))) + ) + +(defrule Hemicriconemoides + ?f4 <- (cuticle-sheath present) + => + (retract ?f4) + (assert (nematode Hemicriconemoides)) + (assert (id-criteria "1. esophagus three-part, metacorpus small." + "2. cuticle heavily annulated." + "3. cuticle-sheath prominent.")) + ) + +(defrule Criconema-Criconemoides + ?f5 <- (cuticle-sheath absent) + (not (annules-posterior-projections ?any)) + => + (retract ?f5) + (printout t "Does the annules have prominent posterior projections ?" crlf + " (yes / no) " crlf ) + (assert (annules-posterior-projections = (read))) + ) + +(defrule Criconema + ?f6 <- (annules-posterior-projections yes) + => + (retract ?f6) + (assert (nematode Criconema)) + (assert (id-criteria "1. esophagus three-part, metacorpus small." + "2. cuticle-sheath absent." + "3. cuticle-annules with posterior projections.")) + ) + +(defrule Criconemoides + ?f7 <- (annules-posterior-projections no) + => + (retract ?f7) + (assert (nematode Criconemoides)) + (assert (id-criteria "1. esophagus three-part, metacorpus small." + "2. cuticle-sheath absent." + "3. heavy annulations, without posterior projections.")) + ) + +(defrule enlarge-body + ?f8 <- (cuticle-annulated-heavily no) + (not (female-body-shape ?any)) + => + (retract ?f8) + (printout t "What is the female body shape :" crlf + "1. pyriform-saccate or lemon-shaped ?" crlf + "2. elongate-saccate or kidney-shape with tail ?" crlf + "3. cylindrical ?" crlf) + + (assert (female-body-shape =(read))) + ) + +(defrule female-body-shape-1 + ?f1 <- (female-body-shape 1) + => + (assert (female-body-shape pyriform-saccate-or-lemon-shape)) + (retract ?f1) + ) + +(defrule female-body-shape-2 + ?f2 <- (female-body-shape 2) + => + (assert (female-body-shape elongate-saccate-or-kidney-shape-with-tail)) + (retract ?f2) + ) + + +(defrule female-body-shape-3 + ?f3 <- (female-body-shape 3) + => + (assert (female-body-shape cylindrical)) + (retract ?f3) + ) +(defrule Heteroderidae + ?f1 <- (female-body-shape pyriform-saccate-or-lemon-shape) + (not (Family Heteroderidae)) + => + (retract ?f1) + (assert (Family Heteroderidae)) + ) + +(defrule body-hardness + (Family Heteroderidae) + (not (female-body ?any)) + => + (printout t "Is the female body hard or soft, test with a needle : " + " (hard /soft) ?" crlf) + (assert (female-body = (read))) + ) + +(defrule Heterodera + ?f1 <- (Family Heteroderidae) + ?f2 <- (female-body hard) + => + (retract ?f1 ?f2) + (assert (nematode Heterodera)) + (assert (id-criteria "1. esophagus three-part, metacorpus small." + "2. female-body lemon-shape." + "3. female-body hard-cyst.")) + ) + +(defrule Meloidodera-Meloidogyne + (Family Heteroderidae) + ?f1 <- (female-body soft) + (not (vulva-position ?any)) + => + (retract ?f1) + (printout t "Where is the position of vulva ?" crlf + "1. terminal of nearly so." crlf + "2. slightly posterior to middle of body." crlf + " 1 or 2 " crlf) + (assert (vulva-position =(read))) + ) + +(defrule vulva-position-terminal +?pos <- (vulva-position 1) +=> +(retract ?pos) +(assert (vulva-position terminal)) +) + +(defrule vulva-position-middle +?pos <- (vulva-position 2) +=> +(retract ?pos) +(assert (vulva-position middle)) +) + + +(defrule Meloidogyne + ?f1 <- (Family Heteroderidae) + ?f2 <- (vulva-position terminal) + => + (retract ?f1 ?f2) + (assert (nematode Meloidogyne)) + (assert (id-criteria "1. esophagus three-part, metacorpus small." + "2. female-body pear-shape, soft." + "3. vulva-position terminal of body.")) + ) + +(defrule Meloidodera + ?f1 <- (Family Heteroderidae) + ?f2 <- (vulva-position middle) + => + (retract ?f1 ?f2) + (assert (nematode Meloidodera)) + (assert (id-criteria "1. esophagus three-part, metacorpus small." + "2. female-body pear-shape, soft." + "3. vulva-position middle of body.")) + ) + + +(defrule esophagus-glands-intestine-1 + ?f1 <- (female-body-shape cylindrical) + (not (esophagus-glands ?any)) + => + (retract ?f1) + (printout t "Where are the esophagus glands ?" crlf + "1. enclosed in basal bulb " crlf + "2. overlapping anterior end of interior." crlf ) + (assert (esophagus-glands =(read))) + ) + +(defrule esophagus-glands-intestine-2 + ?eso <- (esophagus-glands 1) + => + (retract ?eso) + (assert (esophagus-glands enclosed-in-basal-bulb)) + ) + +(defrule esophagus-glands-intestine-3 + ?eso <- (esophagus-glands 2) + => + (retract ?eso) + (assert (esophagus-glands overlaps-intestine)) + ) + + +(defrule tail-shape-ovary + (esophagus-glands enclosed-in-basal-bulb) + (not (tail-shape ?any)) + => + (printout t "Is the female tail blunt, rounded amd has two ovaries : " + " (yes /no)" crlf) + (assert (tail-round ovary-two =(read))) + ) + +(defrule tail-ovary-2 + ?tail <- (tail-round ovary-two yes) + => + (retract ?tail) + (assert (tail-shape blunt-round yes)) + (assert (two-ovary yes)) + ) + +(defrule tail-ovary-3 + ?tail <- (tail-round ovary-two no) + => + (retract ?tail) + (assert (tail-shape blunt-round no)) + (assert (two-ovary no)) + ) + + +(defrule Tylenchorhynchus + ?f1 <- (esophagus-glands enclosed-in-basal-bulb) + ?f2 <- (tail-shape blunt-round yes) + ?f3 <- (two-ovary yes) + => + (retract ?f1 ?f2 ?f3) + (assert (nematode Tylenchorhynchus)) + (assert (id-criteria "1. esophagus 3-part, metacorpus < 3/4 body width, glands enclosed in +basal-bulb." + "2. tail-shape blunt, rounded." + "3. ovary two.")) + ) + +(defrule Ditylenchus-Paratylenchus + (esophagus-glands enclosed-in-basal-bulb) + (tail-shape blunt-round no) + (two-ovary no) + (not (stylet-long ?any)) + => + (printout t "Is the stylet long (15 micron - 36 u) : (yes / no) ?" crlf) + (assert (stylet-long =(read))) + ) + + +(defrule Ditylenchus + ?f1 <- (esophagus-glands enclosed-in-basal-bulb) + ?f2 <- (tail-shape blunt-round no) + ?f3 <- (two-ovary no) + ?f4 <- (stylet-long no) + => + (retract ?f1 ?f2 ?f3 ?f4) + (assert (nematode Ditylenchus)) + (assert (id-criteria "1. esophagus 3-part, glands enclosed in basal-bulb." + "2. tail-shape conoid with mucro." + "3. ovary one, outstretched")) + ) + + +(defrule check_Paratylenchus + (esophagus-glands enclosed-in-basal-bulb) + (tail-shape blunt-round no) + (two-ovary no) + (stylet-long yes) + (not (body-length-small ?any)) + => + (printout t "Is the size of the nematode < 0.5 mm : (yes /no) ?" crlf) + (assert (body-length-small =(read))) + ) +(defrule Paratylenchus + ?f1 <- (esophagus-glands enclosed-in-basal-bulb) + ?f2 <- (tail-shape blunt-round no) + ?f3 <- (two-ovary no) + ?f4 <- (stylet-long yes) + ?f5 <- (body-length-small yes) + => + (retract ?f1 ?f2 ?f3 ?f4 ?f5) + (assert (nematode Paratylenchus)) + (assert (id-criteria "1. esophagus three-part, metacorpus < 3/4 body width + stylet 15 - 36 micron." + "2. tail-shape tapering, round at end." + "3. ovary one, body length < 0.5 mm")) + ) + +(defrule specimen-spiral + (esophagus-glands overlaps-intestine) + (not (specimen-spiral ?any)) + => + (printout t "Is the specimen lying in a spiral : (yes /no) ?" crlf) + (assert (specimen-spiral =(read))) + ) + +(defrule Helicotylenchus + ?f1 <- (esophagus-glands overlaps-intestine) + ?f2 <- (specimen-spiral yes) + => + (retract ?f1 ?f2) + (assert (nematode Helicotylenchus)) + (assert (id-criteria "1. esophagus three-part, metacorpus < 3/4 body width." + "2. esophagus glands overlaps intestine." + "3. specimen lying in a spiral.")) + ) + +(defrule direction-overlaps + ?f1 <- (esophagus-glands overlaps-intestine) + ?f2 <- (specimen-spiral no) + (not (esophagus-glands-overlap-intestine ?any)) + => + (retract ?f1 ?f2) + (printout t "Where is the overlap ? (dorsally /ventrally) ? " crlf) + (assert (esophagus-glands-overlap-intestine =(read))) + ) + +(defrule Radopholus-Hoplolaimus + (esophagus-glands-overlap-intestine dorsally) + (not (female-head ?any)) + => + (printout t "Is the female head :" crlf + "1. low, rounded or flatted " crlf + "2. offset, caplike, divided into minute blocks by " crlf + " longitudinal and lateral striations." crlf + " 1 or 2 ?" crlf) + (assert (female-head =(read))) + ) +(defrule head-shape-1 + ?head <- (female-head 1) + => + (retract ?head) + (assert (female-head flat)) + ) + + +(defrule head-shape-2 + ?head <- (female-head 2) + => + (retract ?head) + (assert (female-head box-grid)) + ) + + +(defrule check_Radopholus-1 + (female-head flat) + (esophagus-glands-overlap-intestine dorsally) + => + (printout t "How many ovaries : 2 or 1 ?" crlf) + (assert (ovary =(read))) + ) +(defrule check_Radopholus-2 + ?f1 <- (female-head flat) + ?f2 <- (esophagus-glands-overlap-intestine dorsally) + ?f3 <- (ovary 2) + => + (retract ?f1 ?f2 ?f3) + (assert (nematode Radopholus)) + (assert (id-criteria "1. esophagus three-part, metacorpus < 3/4 body width + glands overlaps intestine dorsally." + "2. female-head low, rounded or flat." + "3. ovary two.")) + ) +(defrule not-included-1 + ?f1 <- (female-head flat) + ?f2 <- (esophagus-glands-overlap-intestine dorsally) + ?f3 <- (ovary 1) + => + (retract ?f1 ?f2 ?f3) + (assert (nematode "not included")) + (assert (id-criteria "1. esophagus three-part,glands overlaps intestine dorsally." + "2. female-head low, rounded or flat." + "3. ovary 1.")) + ) + +(defrule Tylenchulus-Rotylenchulus + (female-body-shape elongate-saccate-or-kidney-shape-with-tail) + (not (ovary ?any)) + => + (printout t "How many overies ? 1 or 2 ? " crlf) + (assert (ovary =(read))) + ) + +(defrule Tylenchulus + ?f1 <- (female-body-shape elongate-saccate-or-kidney-shape-with-tail) + ?f2 <- (ovary 1) + => + (retract ?f1 ?f2) + (assert (nematode Tylenchulus)) + (assert (id-criteria "1. esophagus three-part, metacorpus < 3/4 body width." + "2. female-body-shape kidney-shape with tail." + "3. ovary one.")) + ) + +(defrule Rotylenchulus + ?f1 <- (female-body-shape elongate-saccate-or-kidney-shape-with-tail) + ?f2 <- (ovary 2) + => + (retract ?f1 ?f2) + (assert (nematode Rotylenchulus)) + (assert (id-criteria "1. esophagus three-part, metacorpus < 3/4 body width." + "2. female-body elongate-saccate with tail." + "3. ovary two.")) + ) + +(defrule Pratylenchus_Hirshmanniella + (esophagus-glands-overlap-intestine ventrally) + (not (ovary ?any)) + => + (printout t "How many ovaries : 1 or 2 ? " crlf) + (assert (ovary =(read))) + ) + + +(defrule Pratylenchus + ?f1 <- (esophagus-glands-overlap-intestine ventrally) + ?f2 <- (ovary 1) + => + (retract ?f1 ?f2) + (assert (nematode Pratylenchus)) + (assert (id-criteria "1. esophagus glands overlap intestine ventrally." + "2. ovary 1." + "3. head-shape low and flat.")) + ) + + +(defrule Hirshmanniella + ?f1 <- (esophagus-glands-overlap-intestine ventrally) + ?f2 <- (ovary 2) + => + (retract ?f1 ?f2) + (assert (nematode Hirshmanniella)) + (assert (id-criteria "1. esophagus glands overlap intestine ventrally." + "2. ovary 2." + "3. head-shape low and flat.")) + ) + + + +(defrule check-Hoplolaiamus_1 + (esophagus-glands-overlap-intestine dorsally) + (female-head box-grid) + (not (spear-knob-with-projections ?any)) + => + (printout t "Does its spear have knobs with prominent anterior projections ?" + " (yes /no )" crlf) + (assert (spear-knob-with-projections =(read))) + ) + +(defrule not-included-2 + ?f1 <- (esophagus-glands-overlap-intestine dorsally) + ?f2 <- (female-head box-grid) + ?f3 <- (spear-knob-with-projections no) + => + (retract ?f1 ?f2 ?f3) + (assert (nematode "not included")) + (assert (id-criteria "1.esophagus 3-part." + "2. esophagus glands overlap intestine dorsally." + "3. spear knob without anterior projections.")) + ) + + +(defrule Hoplolaimus + ?f1 <- (esophagus-glands-overlap-intestine dorsally) + ?f2 <- (female-head box-grid) + ?f3 <- (spear-knob-with-projections yes) + => + (retract ?f1 ?f2 ?f3) + (assert (nematode Hoplolaimus)) + (assert (id-criteria "1. esophagus glands overlap intestine dorsally." + "2. female-head offset, caplike, divided into blocks + by striations." + "3. spear knobs with anterior projections.")) + ) + + +;;; +;;; Phase control rules +;;; + + +(defrule print-nematode + (declare (salience -20)) + ?nema <- (nematode ?genus) + => + (retract ?nema) + (assert (nema ?genus)) + (printout t "Identification : ") + (printout t "Genus " ?genus crlf crlf) + ) + + +(defrule print-characteristics + (declare (salience -30)) + ?id <- (id-criteria ?fact1 ?fact2 ?fact3) + => + (retract ?id) + (printout t "Characteristics: " ?fact1 crlf + " " ?fact2 crlf + " " ?fact3 crlf crlf + "continue id : (yes/no) ?" crlf) + (assert (find-another =(read))) + ) + + +(defrule print-db-query + ?f1 <- (find-another no) + (nema ?genus) + => + (retract ?f1) + (printout t "Print out nematode identified so far : (yes/no) ?" crlf) + (assert (print =(read))) + ) + +(defrule print-final-db-yes + (declare (salience 10)) + ?print <- (print yes) + ?nema <- (nema ?genus) + => + (retract ?nema) + (assert (nema-id ?genus)) + (printout t " Genus " ?genus crlf) + ) + +(defrule print-final-db-no + (declare (salience 10)) + ?print <- (print no) + ?nema <- (nema ?genus) + => + (retract ?nema) + (assert (nema-id ?genus)) + ) + + +(defrule query-modification + ?f1 <- (print ?any) + (nema-id ?genus) + => + (retract ?f1) + (printout t "Is there any data manipulation you want to do : " + "(add/delete/search/no) ?" crlf) + (assert (add-delete-search =(read))) + ) + +(defrule add-to-list + ?f1 <- (add-delete-search add) + => + (retract ?f1) + (printout t "Which nematode -- input genus name ? " crlf) + (bind ?nema (read)) + (assert (nema-id ?nema)) + (printout t "Genus " ?nema " is added to the list." crlf + "More to modify -- (add/delete/search/no) ? " crlf) + (assert (add-delete-search =(read))) + + ) + +(defrule delete-from-list-1 + ?f1 <- (add-delete-search delete) + => + (retract ?f1) + (printout t "Which nematode -- input genus name ? " crlf) + (assert (delete =(read))) + ) + +(defrule delete-from-list-2 + ?f1 <- (delete ?nema) + ?f2 <- (nema-id ?nematode) + (test (eq ?nema ?nematode)) + => + (retract ?f1 ?f2) + (printout t "Genus " ?nematode " is deleted from the list." crlf + "More to modify -- (add/delete/search/no) ? " crlf) + (assert (add-delete-search =(read))) + ) + +(defrule search-database + ?f1 <- (add-delete-search search) + => + (retract ?f1) + (printout t "which nematode : input genus name ?" crlf) + (assert (search =(read))) + ) + +(defrule data-found + (declare (salience 10)) + ?search <- (search ?nema) + (nema-id ?nematode) + (test (eq ?nema ?nematode)) + => + (printout t "Genus " ?nema " is in the identified list." crlf) + (retract ?search) + (printout t "More to modify -- (add/delete/search/no) ? " crlf) + (assert (add-delete-search =(read))) + ) + +(defrule data-not-found + ?search <- (search ?nema) + => + (printout t "Genus " ?nema " is not found in the identified list." crlf) + (retract ?search) + (printout t "More to modify -- (add/delete/search/no) ? " crlf) + (assert (add-delete-search =(read))) + ) + +(defrule print-list-again-query + ?f1 <- (add-delete-search no) + => + (retract ?f1) + (printout t "Print final list : (yes/no) ?" crlf) + (assert (print-again =(read))) + ) + +(defrule print-final-list + (declare (salience 10)) + (print-again yes) + ?nema <- (nema-id ?genus) + => + (retract ?nema) + (assert (nemaid ?genus)) + (printout t " Genus " ?genus crlf) + ) + +;(defrule exit-program +;(declare (salience -100)) +;($?) +; => +; (printout t "Bye !" crlf) +; ) + + +(deffacts genus-included + + (genus Aphlenchoides) + (genus Aphelenchus) + (genus Criconemoides) + (genus Criconema) + (genus Ditylenchus) + (genus Helicotylenchus) + (genus Hemicriconemoides) + (genus Heterodera) + (genus Hirschmanniella) + (genus Longidorus) + (genus Meloidogyne) + (genus Meloidodera) + (genus Paratylenchus) + (genus Pratylenchus) + (genus Radopholus) + (genus Rotylenchulus) + (genus Trichodorus) + (genus Tylenchorhynchus) + (genus Tylenchulus) + (genus Xiphinema) + ) --- clips-6.24.orig/examples/cam.clp +++ clips-6.24/examples/cam.clp @@ -0,0 +1,208 @@ + +;;;====================================================== +;;; Cannibals and Missionaries Problem +;;; +;;; Another classic AI problem. The point is +;;; to get three cannibals and three missionaries +;;; across a stream with a boat that can only +;;; hold two people. If the cannibals outnumber +;;; the missionaries on either side of the stream, +;; then the cannibals will eat the missionaries. +;;; +;;; CLIPS Version 6.01 Example +;;; +;;; To execute, merely load, reset and run. +;;;====================================================== + +(defmodule MAIN + (export deftemplate status) + (export defglobal initial-missionaries initial-cannibals)) + +;;;************* +;;;* TEMPLATES * +;;;************* + +;;; The status facts hold the state +;;; information of the search tree. + +(deftemplate MAIN::status + (slot search-depth (type INTEGER) (range 1 ?VARIABLE)) + (slot parent (type FACT-ADDRESS SYMBOL) (allowed-symbols no-parent)) + (slot shore-1-missionaries (type INTEGER) (range 0 ?VARIABLE)) + (slot shore-1-cannibals (type INTEGER) (range 0 ?VARIABLE)) + (slot shore-2-missionaries (type INTEGER) (range 0 ?VARIABLE)) + (slot shore-2-cannibals (type INTEGER) (range 0 ?VARIABLE)) + (slot boat-location (type SYMBOL) (allowed-values shore-1 shore-2)) + (slot last-move (type STRING))) + +;;;***************** +;;;* INITIAL STATE * +;;;***************** + +(defglobal MAIN ?*initial-missionaries* = 3 + ?*initial-cannibals* = 3) + +(deffacts MAIN::initial-positions + (status (search-depth 1) + (parent no-parent) + (shore-1-missionaries ?*initial-missionaries*) + (shore-2-missionaries 0) + (shore-1-cannibals ?*initial-cannibals*) + (shore-2-cannibals 0) + (boat-location shore-1) + (last-move "No move."))) + +(deffacts MAIN::boat-information + (boat-can-hold 2)) + +;;;**************************************** +;;;* FUNCTION FOR MOVE DESCRIPTION STRING * +;;;**************************************** + +(deffunction MAIN::move-string (?missionaries ?cannibals ?shore) + (switch ?missionaries + (case 0 then + (if (eq ?cannibals 1) + then (format nil "Move 1 cannibal to %s.%n" ?shore) + else (format nil "Move %d cannibals to %s.%n" ?cannibals ?shore))) + (case 1 then + (switch ?cannibals + (case 0 then + (format nil "Move 1 missionary to %s.%n" ?shore)) + (case 1 then + (format nil "Move 1 missionary and 1 cannibal to %s.%n" ?shore)) + (default then + (format nil "Move 1 missionary and %d cannibals to %s.%n" + ?cannibals ?shore)))) + (default + (switch ?cannibals + (case 0 then + (format nil "Move %d missionaries to %s.%n" ?missionaries ?shore)) + (case 1 then + (format nil "Move %d missionaries and 1 cannibal to %s.%n" + ?missionaries ?shore)) + (default then + (format nil "Move %d missionary and %d cannibals to %s.%n" + ?missionaries ?cannibals ?shore)))))) + +;;;*********************** +;;;* GENERATE PATH RULES * +;;;*********************** + +(defrule MAIN::shore-1-move + ?node <- (status (search-depth ?num) + (boat-location shore-1) + (shore-1-missionaries ?s1m) + (shore-1-cannibals ?s1c) + (shore-2-missionaries ?s2m) + (shore-2-cannibals ?s2c)) + (boat-can-hold ?limit) + => + (bind ?max-missionaries (min ?s1m ?limit)) + (loop-for-count (?missionaries 0 ?max-missionaries) + (bind ?min-cannibals (max 0 (- 1 ?missionaries))) + (bind ?max-cannibals (min ?s1c (- ?limit ?missionaries))) + (loop-for-count (?cannibals ?min-cannibals ?max-cannibals) + (duplicate ?node (search-depth =(+ 1 ?num)) + (parent ?node) + (shore-1-missionaries (- ?s1m ?missionaries)) + (shore-1-cannibals (- ?s1c ?cannibals)) + (shore-2-missionaries (+ ?s2m ?missionaries)) + (shore-2-cannibals (+ ?s2c ?cannibals)) + (boat-location shore-2) + (last-move (move-string ?missionaries ?cannibals shore-2)))))) + +(defrule MAIN::shore-2-move + ?node <- (status (search-depth ?num) + (boat-location shore-2) + (shore-1-missionaries ?s1m) + (shore-1-cannibals ?s1c) + (shore-2-missionaries ?s2m) + (shore-2-cannibals ?s2c)) + (boat-can-hold ?limit) + => + (bind ?max-missionaries (min ?s2m ?limit)) + (loop-for-count (?missionaries 0 ?max-missionaries) + (bind ?min-cannibals (max 0 (- 1 ?missionaries))) + (bind ?max-cannibals (min ?s2c (- ?limit ?missionaries))) + (loop-for-count (?cannibals ?min-cannibals ?max-cannibals) + (duplicate ?node (search-depth =(+ 1 ?num)) + (parent ?node) + (shore-1-missionaries (+ ?s1m ?missionaries)) + (shore-1-cannibals (+ ?s1c ?cannibals)) + (shore-2-missionaries (- ?s2m ?missionaries)) + (shore-2-cannibals (- ?s2c ?cannibals)) + (boat-location shore-1) + (last-move (move-string ?missionaries ?cannibals shore-1)))))) + +;;;****************************** +;;;* CONSTRAINT VIOLATION RULES * +;;;****************************** + +(defmodule CONSTRAINTS + (import MAIN deftemplate status)) + +(defrule CONSTRAINTS::cannibals-eat-missionaries + (declare (auto-focus TRUE)) + ?node <- (status (shore-1-missionaries ?s1m) + (shore-1-cannibals ?s1c) + (shore-2-missionaries ?s2m) + (shore-2-cannibals ?s2c)) + (test (or (and (> ?s2c ?s2m) (<> ?s2m 0)) + (and (> ?s1c ?s1m) (<> ?s1m 0)))) + => + (retract ?node)) + +(defrule CONSTRAINTS::circular-path + (declare (auto-focus TRUE)) + (status (search-depth ?sd1) + (boat-location ?bl) + (shore-1-missionaries ?s1m) + (shore-1-cannibals ?s1c) + (shore-2-missionaries ?s2m) + (shore-2-cannibals ?s2c)) + ?node <- (status (search-depth ?sd2&:(< ?sd1 ?sd2)) + (boat-location ?bl) + (shore-1-missionaries ?s1m) + (shore-1-cannibals ?s1c) + (shore-2-missionaries ?s2m) + (shore-2-cannibals ?s2c)) + => + (retract ?node)) + +;;;********************************* +;;;* FIND AND PRINT SOLUTION RULES * +;;;********************************* + +(defmodule SOLUTION + (import MAIN deftemplate status) + (import MAIN defglobal initial-missionaries initial-cannibals)) + +(deftemplate SOLUTION::moves + (slot id (type FACT-ADDRESS SYMBOL) (allowed-symbols no-parent)) + (multislot moves-list + (type STRING))) + +(defrule SOLUTION::recognize-solution + (declare (auto-focus TRUE)) + ?node <- (status (parent ?parent) + (shore-2-missionaries ?m&:(= ?m ?*initial-missionaries*)) + (shore-2-cannibals ?c&:(= ?c ?*initial-cannibals*)) + (last-move ?move)) + => + (retract ?node) + (assert (moves (id ?parent) (moves-list ?move)))) + +(defrule SOLUTION::further-solution + ?node <- (status (parent ?parent) + (last-move ?move)) + ?mv <- (moves (id ?node) (moves-list $?rest)) + => + (modify ?mv (id ?parent) (moves-list ?move ?rest))) + +(defrule SOLUTION::print-solution + ?mv <- (moves (id no-parent) (moves-list "No move." $?m)) + => + (retract ?mv) + (printout t t "Solution found: " t t) + (progn$ (?move ?m) (printout t ?move))) --- clips-6.24.orig/examples/dilemma2.clp +++ clips-6.24/examples/dilemma2.clp @@ -0,0 +1,197 @@ +;;;====================================================== +;;; Farmer's Dilemma Problem +;;; +;;; Another classic AI problem (cannibals and the +;;; missionary) in agricultural terms. The point is +;;; to get the farmer, the fox the cabbage and the +;;; goat across a stream. +;;; But the boat only holds 2 items. If left +;;; alone with the goat, the fox will eat it. If +;;; left alone with the cabbage, the goat will eat +;;; it. +;;; This example uses COOL classes and +;;; message-handlers to solve the problem. +;;; +;;; CLIPS Version 6.0 Example +;;; +;;; To execute, merely load and enter (solve-dilemma). +;;;====================================================== + +;;;************** +;;;* DEFCLASSES * +;;;************** + +(defclass status + (is-a USER) + (role concrete) + (slot farmer + (create-accessor write) + (default shore-1)) + (slot fox + (create-accessor write) + (default shore-1)) + (slot goat + (create-accessor write) + (default shore-1)) + (slot cabbage + (create-accessor write) + (default shore-1)) + (slot parent + (create-accessor write) + (default no-parent)) + (slot search-depth + (create-accessor write) + (default 1)) + (slot last-move + (create-accessor write) + (default no-move))) + +;;;**************** +;;;* DEFFUNCTIONS * +;;;**************** + +(deffunction contradiction + (?f ?x ?g ?c ?d) + (if (or (and (eq ?x ?g) (neq ?f ?x)) (and (eq ?g ?c) (neq ?f ?g))) + then + TRUE + else + (any-instancep ((?s status)) + (and (eq ?s:farmer ?f) + (eq ?s:fox ?x) + (eq ?s:goat ?g) + (eq ?s:cabbage ?c) + (< ?s:search-depth ?d))))) + +(deffunction opposite-shore + (?value) + (if (eq ?value shore-1) + then + shore-2 + else + shore-1)) + +(deffunction solve-dilemma () + (do-for-all-instances ((?a status)) + TRUE + (send ?a delete)) + (make-instance start of status) + (send [start] generate-moves)) + +;;;************** +;;;* DEFRULES * +;;;************** + +(defrule start-it + => + (solve-dilemma)) + +;;;*********************** +;;;* DEFMESSAGE-HANDLERS * +;;;*********************** + +(defmessage-handler status move-farmer + () + (if (not (contradiction (opposite-shore ?self:farmer) ?self:fox + ?self:goat ?self:cabbage ?self:search-depth)) + then + (bind ?x (make-instance (gensym) of status + (farmer (opposite-shore ?self:farmer)) + (fox ?self:fox) + (goat ?self:goat) + (cabbage ?self:cabbage) + (last-move farmer) + (parent ?self) + (search-depth (+ ?self:search-depth 1)))) + (if (not (send ?x solution?)) + then + (send ?x generate-moves)))) + +(defmessage-handler status move-goat + () + (if (and (eq ?self:farmer ?self:goat) (not (contradiction + (opposite-shore ?self:farmer) ?self:fox (opposite-shore ?self:goat) + ?self:cabbage ?self:search-depth))) + then + (bind ?x (make-instance (gensym) of status + (farmer (opposite-shore ?self:farmer)) + (fox ?self:fox) + (goat (opposite-shore ?self:farmer)) + (cabbage ?self:cabbage) + (last-move goat) + (parent ?self) + (search-depth (+ ?self:search-depth 1)))) + (if (not (send ?x solution?)) + then + (send ?x generate-moves)))) + +(defmessage-handler status move-fox + () + (if (and (eq ?self:farmer ?self:fox) + (not (contradiction (opposite-shore ?self:farmer) + (opposite-shore ?self:fox) + ?self:goat ?self:cabbage ?self:search-depth))) + then + (bind ?x (make-instance (gensym) of status + (farmer (opposite-shore ?self:farmer)) + (fox (opposite-shore ?self:farmer)) + (goat ?self:goat) + (cabbage ?self:cabbage) + (last-move fox) + (parent ?self) + (search-depth (+ ?self:search-depth 1)))) + (if (not (send ?x solution?)) + then + (send ?x generate-moves)))) + +(defmessage-handler status move-cabbage + () + (if (and (eq ?self:farmer ?self:cabbage) + (not (contradiction (opposite-shore ?self:farmer) + ?self:fox ?self:goat + (opposite-shore ?self:cabbage) + ?self:search-depth))) + then + (bind ?x (make-instance (gensym) of status + (farmer (opposite-shore ?self:farmer)) + (fox ?self:fox) + (goat ?self:goat) + (cabbage (opposite-shore ?self:farmer)) + (last-move cabbage) + (parent ?self) + (search-depth (+ ?self:search-depth 1)))) + (if (not (send ?x solution?)) + then + (send ?x generate-moves)))) + +(defmessage-handler status generate-moves + () + (send ?self move-farmer) + (send ?self move-fox) + (send ?self move-goat) + (send ?self move-cabbage)) + +(defmessage-handler status print-solution + () + (if (neq ?self:parent no-parent) + then + (send ?self:parent print-solution) + (bind ?move-dest (dynamic-get ?self:last-move)) + (if (eq ?self:last-move farmer) + then + (printout t "Farmer moves alone to " ?move-dest "." crlf) + else + (printout t "Farmer moves with " ?self:last-move " to " ?move-dest "." crlf)))) + +(defmessage-handler status solution? + () + (if (and (eq ?self:farmer shore-2) (eq ?self:fox shore-2) + (eq ?self:goat shore-2) (eq ?self:cabbage shore-2)) + then + (printout t crlf "Solution found:" crlf crlf) + (send ?self print-solution) + TRUE + else + FALSE)) + + --- clips-6.24.orig/examples/wordgame.clp +++ clips-6.24/examples/wordgame.clp @@ -0,0 +1,104 @@ + +;;;====================================================== +;;; Number Puzzle Problem +;;; +;;; Solves the number puzzle problem in which +;;; +;;; GERALD +;;; + DONALD +;;; ------ +;;; = ROBERT +;;; +;;; CLIPS Version 6.0 Example +;;; +;;; To execute, merely load, reset and run. +;;; This example takes alot of memory to execute. +;;;====================================================== + +(defrule startup + => + (printout t t "The problem is" t t) + (printout t " GERALD" t) + (printout t " + DONALD" t) + (printout t " ------" t) + (printout t " = ROBERT" t t) + (assert (number 0) + (number 1) + (number 2) + (number 3) + (number 4) + (number 5) + (number 6) + (number 7) + (number 8) + (number 9) + (letter G) + (letter E) + (letter R) + (letter A) + (letter L) + (letter D) + (letter O) + (letter N) + (letter B) + (letter T))) + +(defrule generate-combinations + (number ?x) + (letter ?a) + => + (assert (combination ?a ?x))) + +(defrule find-solution + (combination D ?d) + (combination T ?t&~?d) + (test (= (mod (+ ?d ?d) 10) ?t)) + (combination L ?l&~?d&~?t) + (combination R ?r&~?d&~?t&~?l) + (test (= (mod (+ ?d ?d + (* 10 ?l) (* 10 ?l)) + 100) + (+ (* 10 ?r) ?t))) + (combination A ?a&~?d&~?t&~?l&~?r) + (combination E ?e&~?d&~?t&~?l&~?r&~?a) + (test (= (mod (+ ?d ?d + (* 10 ?l) (* 10 ?l) + (* 100 ?a) (* 100 ?a)) + 1000) + (+ (* 100 ?e) (* 10 ?r) ?t))) + (combination N ?n&~?d&~?t&~?l&~?r&~?a&~?e) + (combination B ?b&~?d&~?t&~?l&~?r&~?a&~?e&~?n) + (test (= (mod (+ ?d ?d + (* 10 ?l) (* 10 ?l) + (* 100 ?a) (* 100 ?a) + (* 1000 ?r) (* 1000 ?n)) + 10000) + (+ (* 1000 ?b) (* 100 ?e) (* 10 ?r) ?t))) + (combination O ?o&~?d&~?t&~?l&~?r&~?a&~?e&~?n&~?b) + (combination G ?g&~?d&~?t&~?l&~?r&~?a&~?e&~?n&~?b&~?o) + (test (= (+ ?d ?d + (* 10 ?l) (* 10 ?l) + (* 100 ?a) (* 100 ?a) + (* 1000 ?r) (* 1000 ?n) + (* 10000 ?e) (* 10000 ?o) + (* 100000 ?g) (* 100000 ?d)) + (+ (* 100000 ?r) (* 10000 ?o) (* 1000 ?b) (* 100 ?e) (* 10 ?r) ?t))) + => + (printout t "A Solution is:" t t) + (printout t " G = " ?g t) + (printout t " E = " ?e t) + (printout t " R = " ?r t) + (printout t " A = " ?a t) + (printout t " L = " ?l t) + (printout t " D = " ?d t) + (printout t " O = " ?o t) + (printout t " N = " ?n t) + (printout t " B = " ?b t) + (printout t " T = " ?t t) + (printout t t) + (printout t " " ?g ?e ?r ?a ?l ?d t) + (printout t " + " ?d ?o ?n ?a ?l ?d t) + (printout t " " "------" t) + (printout t " = " ?r ?o ?b ?e ?r ?t t t)) + + --- clips-6.24.orig/examples/circuit3.clp +++ clips-6.24/examples/circuit3.clp @@ -0,0 +1,90 @@ +;;;====================================================== +;;; Example Circuit #3 +;;; +;;; An example circuit to be loaded for use with +;;; the "electronic.clp" example program. +;;; +;;; LEGEND +;;; ------------ +;;; S = Source +;;; P = Splitter +;;; N = NOT Gate +;;; A = AND Gate +;;; D = NAND Gate +;;; O = OR Gate +;;; X = XOR Gate +;;; L = LED +;;; +;;; +;;; /----------\ +;;; S1>--P1>-| O1>-------------\ /--N3>--L1 +;;; | /---/ X2>----P4>-| +;;; | | /---/ \-------L2 +;;; \------)----N1>---\ | +;;; | X1>--/ +;;; /--N2>-/ /-------/ +;;; S2>--P2>-| | +;;; \---------)-------\ +;;; | A1>---------\ +;;; /---------/ /----/ | +;;; S3>--P3>-| | | +;;; \------------)----\ \---\ +;;; | D1>------\ D2>---------L3 +;;; S4>-------------------/ / O2>---/ +;;; | /-----/ +;;; S5>------------------------/ | +;;; | +;;; S6>----------------------------/ +;;; +;;;====================================================== + +(definstances circuit + (S-1 of SOURCE) + (S-2 of SOURCE) + (S-3 of SOURCE) + (S-4 of SOURCE) + (S-5 of SOURCE) + (S-6 of SOURCE) + (P-1 of SPLITTER) + (P-2 of SPLITTER) + (P-3 of SPLITTER) + (P-4 of SPLITTER) + (N-1 of NOT-GATE) + (N-2 of NOT-GATE) + (N-3 of NOT-GATE) + (O-1 of OR-GATE) + (O-2 of OR-GATE) + (X-1 of XOR-GATE) + (X-2 of XOR-GATE) + (A-1 of AND-GATE) + (D-1 of NAND-GATE) + (D-2 of NAND-GATE) + (L-1 of LED) + (L-2 of LED) + (L-3 of LED)) + +(deffunction connect-circuit () + (connect [S-1] [P-1]) + (connect [S-2] [P-2]) + (connect [S-3] [P-3]) + (connect [S-4] [A-1] 2) + (connect [S-5] [D-1] 2) + (connect [S-6] [O-2] 2) + (connect [P-1] 1 [O-1] 1) + (connect [P-1] 2 [N-1]) + (connect [P-2] 1 [N-2]) + (connect [P-2] 2 [A-1] 1) + (connect [P-3] 1 [X-1] 2) + (connect [P-3] 2 [D-1] 1) + (connect [N-1] [X-1] 1) + (connect [N-2] [O-1] 2) + (connect [O-1] [X-2] 1) + (connect [X-1] [X-2] 2) + (connect [A-1] [D-2] 1) + (connect [D-1] [O-2] 1) + (connect [X-2] [P-4]) + (connect [O-2] [D-2] 2) + (connect [P-4] 1 [N-3]) + (connect [P-4] 2 [L-2]) + (connect [D-2] [L-3]) + (connect [N-3] [L-1])) --- clips-6.24.orig/examples/Readme +++ clips-6.24/examples/Readme @@ -0,0 +1,116 @@ +***************************************************************************** +* * +* WARNING and DISCLAIMER * +* * +* This implementation the National Cholesterol Education Program guidelines * +* in CLIPS is intended purely for educational purposes. It was not * +* intended for actual use in a clinical setting. Rigorous evaluation and * +* validation has NOT been done. It is released to the public with * +* absolutely no warranty whatsoever regarding either the correctness of * +* the program, or its suitability for any purpose, whatsoever. The user * +* assumes all risks and liabilities from the use of this program. * +* * +* This program is neither supported nor maintained at this time. Work on * +* the program ended in May 1994. The program has not been updated since * +* that time. * +* * +***************************************************************************** + + RUNNING THE KB + +The program requires three files to run: +1) clips (executable) +2) date.clp (date conversion functions, must be loaded before project4) +3) project.clp (the rules and definitions) + +Other files include +4) patdata1 (sample patient data) +5) patdata2 (sample patients from the NCEP workbook) +6) loadall (automatically loads and runs rules on all patients) + + +To run the program: +1) Put above file in a directory +2) start clips by typing "clips" at the prompt +3) then, at the CLIPS> (batch loadall) + to load all rules and run the test patients. + +You will get prompts for missing data elements. Please input positive integers +or -1 for "no value". + + BASIC STRUCTURE + +Individual patients are stored as patterns of the type. +(patient1 (atribute1 VALUE1) (atribute2 VALUE2) ...) + +This is used for both history attributes such as "smoking" as well as numeric +attributes such as "chol". Because CLIPS has a well developed default value +system, we elected to use defaults, rather than prompting for the handling of +missing history elements. The lab value handlers demonstrate prompting for +missing values. + +Date information is stored as an integer which represents days since 1990. +Unlike CLASSIC and PROLOG, CLIPS has not intrinsic time or date functions. +This made computation of the current date tricky. CLIPS does support system +calls, but does not allow capture of the returned information. In order to +support date, a system call was executed which stored the date in a file. +CLIPS then open and reads the file and converts the value into a single +integer. In a production implementation of this system, a c program would be +written to provide date functions within CLIPS. + +For processing of the individual patients, the (patient1 (...)) data structure +isconverted to a (patient2 (...)) template which includes a +numerically computed risk from the history atributes. + +If lab values are missing, the physcian is prompted to enter a value. If -1 +is entered the physician is prompted to order the appropriate +lab. The structure includes only latest lab value, although the multislot +capability of CLIPS allows for multiple lab values. This would make averaging +much more straight forward than in the PROLOG or CLASSIC implementation. + +Reexamination of the NCEP decision logic revealed that pre-treatment lab values +were not required for correct evaluation of treatment response. Therefore, +pre-treatment condition, rather than pre-treatment lab value is used to +evaluate the adequacy of response. + +Some parts of the guidelines call for multiple values to be reported and +averaged and for additional labs ordered if the results of the first +two labs disagree. The current logic does not caputre this. + +Treatments are stored as treatment attrubutes which include the therapy, +and the date. Only diet and drug therapy are recorded. Fine distinctions +between levels of diet and types of medication were not included. + +The logic currently only evaluates whether the latest lab is after the +start of therapy and the patient has had at least 6 months of therapy. +It does not handle the situation where the patient +has been on therapy for over 6 months, but the lab is 3 months old. + + + CONTROL OF LOGIC + +As with the earlier implementations, the most difficult task was +controlling the flow of the logic. Because the careplan considers multiple +unrelated variables, it was difficult to limit the messages to appropriate +patients. For the CLIPS implementation, we utilized a state-transition model. +An attribute (state SSS) was created. It is initialized at aa. Then as rules +(which correspond to arrows between the boxes in the NCEP article) fire, they +explicitly change the state attribute. Rules only fire for patients in +certain states. + +In addition, a (done XXX) attribute was added so that execution could be +stopped at the correct point if critical data were missing. + + + FURTHER INFORMATION + +As I noted above, this project is not currently active. As such, there is +probably no question we could answer that is not apparent from the code +itself. Nonetheless, if you have questions, you can direct them to: + + starren@cucis.columbia.edu + +Hope you fine this interesting, + +-- Justin Starren and Guochun Xie + --- clips-6.24.orig/examples/zebra.clp +++ clips-6.24/examples/zebra.clp @@ -0,0 +1,209 @@ + +;;;====================================================== +;;; Who Drinks Water? And Who owns the Zebra? +;;; +;;; Another puzzle problem in which there are five +;;; houses, each of a different color, inhabited by +;;; men of different nationalities, with different +;;; pets, drinks, and cigarettes. Given the initial +;;; set of conditions, it must be determined which +;;; attributes are assigned to each man. +;;; +;;; CLIPS Version 6.0 Example +;;; +;;; To execute, merely load, reset and run. +;;;====================================================== + +(deftemplate avh (field a) (field v) (field h)) + +(defrule find-solution + ; The Englishman lives in the red house. + + (avh (a nationality) (v englishman) (h ?n1)) + (avh (a color) (v red) (h ?c1&?n1)) + + ; The Spaniard owns the dog. + + (avh (a nationality) (v spaniard) (h ?n2&~?n1)) + (avh (a pet) (v dog) (h ?p1&?n2)) + + ; The ivory house is immediately to the left of the green house, + ; where the coffee drinker lives. + + (avh (a color) (v ivory) (h ?c2&~?c1)) + (avh (a color) (v green) (h ?c3&~?c2&~?c1&=(+ ?c2 1))) + (avh (a drink) (v coffee) (h ?d1&?c3)) + + ; The milk drinker lives in the middle house. + + (avh (a drink) (v milk) (h ?d2&~?d1&3)) + + ; The man who smokes Old Golds also keeps snails. + + (avh (a smokes) (v old-golds) (h ?s1)) + (avh (a pet) (v snails) (h ?p2&~?p1&?s1)) + + ; The Ukrainian drinks tea. + + (avh (a nationality) (v ukrainian) (h ?n3&~?n2&~?n1)) + (avh (a drink) (v tea) (h ?d3&~?d2&~?d1&?n3)) + + ; The Norwegian resides in the first house on the left. + + (avh (a nationality) (v norwegian) (h ?n4&~?n3&~?n2&~?n1&1)) + + ; Chesterfields smoker lives next door to the fox owner. + + (avh (a smokes) (v chesterfields) (h ?s2&~?s1)) + (avh (a pet) (v fox) (h ?p3&~?p2&~?p1&:(or (= ?s2 (- ?p3 1)) (= ?s2 (+ ?p3 1))))) + + ; The Lucky Strike smoker drinks orange juice. + + (avh (a smokes) (v lucky-strikes) (h ?s3&~?s2&~?s1)) + (avh (a drink) (v orange-juice) (h ?d4&~?d3&~?d2&~?d1&?s3)) + + ; The Japanese smokes Parliaments + + (avh (a nationality) (v japanese) (h ?n5&~?n4&~?n3&~?n2&~?n1)) + (avh (a smokes) (v parliaments) (h ?s4&~?s3&~?s2&~?s1&?n5)) + + ; The horse owner lives next to the Kools smoker, + ; whose house is yellow. + + (avh (a pet) (v horse) (h ?p4&~?p3&~?p2&~?p1)) + (avh (a smokes) (v kools) (h ?s5&~?s4&~?s3&~?s2&~?s1&:(or (= ?p4 (- ?s5 1)) (= ?p4 (+ ?s5 1))))) + (avh (a color) (v yellow) (h ?c4&~?c3&~?c2&~?c1&?s5)) + + ; The Norwegian lives next to the blue house. + + (avh (a color) (v blue) (h ?c5&~?c4&~?c3&~?c2&~?c1&:(or (= ?c5 (- ?n4 1)) (= ?c5 (+ ?n4 1))))) + + ; Who drinks water? And Who owns the zebra? + + (avh (a drink) (v water) (h ?d5&~?d4&~?d3&~?d2&~?d1)) + (avh (a pet) (v zebra) (h ?p5&~?p4&~?p3&~?p2&~?p1)) + + => + (assert (solution nationality englishman ?n1) + (solution color red ?c1) + (solution nationality spaniard ?n2) + (solution pet dog ?p1) + (solution color ivory ?c2) + (solution color green ?c3) + (solution drink coffee ?d1) + (solution drink milk ?d2) + (solution smokes old-golds ?s1) + (solution pet snails ?p2) + (solution nationality ukrainian ?n3) + (solution drink tea ?d3) + (solution nationality norwegian ?n4) + (solution smokes chesterfields ?s2) + (solution pet fox ?p3) + (solution smokes lucky-strikes ?s3) + (solution drink orange-juice ?d4) + (solution nationality japanese ?n5) + (solution smokes parliaments ?s4) + (solution pet horse ?p4) + (solution smokes kools ?s5) + (solution color yellow ?c4) + (solution color blue ?c5) + (solution drink water ?d5) + (solution pet zebra ?p5)) + ) + +(defrule print-solution + ?f1 <- (solution nationality ?n1 1) + ?f2 <- (solution color ?c1 1) + ?f3 <- (solution pet ?p1 1) + ?f4 <- (solution drink ?d1 1) + ?f5 <- (solution smokes ?s1 1) + ?f6 <- (solution nationality ?n2 2) + ?f7 <- (solution color ?c2 2) + ?f8 <- (solution pet ?p2 2) + ?f9 <- (solution drink ?d2 2) + ?f10 <- (solution smokes ?s2 2) + ?f11 <- (solution nationality ?n3 3) + ?f12 <- (solution color ?c3 3) + ?f13 <- (solution pet ?p3 3) + ?f14 <- (solution drink ?d3 3) + ?f15 <- (solution smokes ?s3 3) + ?f16 <- (solution nationality ?n4 4) + ?f17 <- (solution color ?c4 4) + ?f18 <- (solution pet ?p4 4) + ?f19 <- (solution drink ?d4 4) + ?f20 <- (solution smokes ?s4 4) + ?f21 <- (solution nationality ?n5 5) + ?f22 <- (solution color ?c5 5) + ?f23 <- (solution pet ?p5 5) + ?f24 <- (solution drink ?d5 5) + ?f25 <- (solution smokes ?s5 5) + => + (retract ?f1 ?f2 ?f3 ?f4 ?f5 ?f6 ?f7 ?f8 ?f9 ?f10 ?f11 ?f12 ?f13 ?f14 + ?f15 ?f16 ?f17 ?f18 ?f19 ?f20 ?f21 ?f22 ?f23 ?f24 ?f25) + (format t "HOUSE | %-11s | %-6s | %-6s | %-12s | %-13s%n" + Nationality Color Pet Drink Smokes) + (format t "--------------------------------------------------------------------%n") + (format t " 1 | %-11s | %-6s | %-6s | %-12s | %-13s%n" ?n1 ?c1 ?p1 ?d1 ?s1) + (format t " 2 | %-11s | %-6s | %-6s | %-12s | %-13s%n" ?n2 ?c2 ?p2 ?d2 ?s2) + (format t " 3 | %-11s | %-6s | %-6s | %-12s | %-13s%n" ?n3 ?c3 ?p3 ?d3 ?s3) + (format t " 4 | %-11s | %-6s | %-6s | %-12s | %-13s%n" ?n4 ?c4 ?p4 ?d4 ?s4) + (format t " 5 | %-11s | %-6s | %-6s | %-12s | %-13s%n" ?n5 ?c5 ?p5 ?d5 ?s5) + (printout t crlf crlf)) + +(defrule startup + => + (printout t + "There are five houses, each of a different color, inhabited by men of" crlf + "different nationalities, with different pets, drinks, and cigarettes." crlf + crlf + "The Englishman lives in the red house. The Spaniard owns the dog." crlf + "The ivory house is immediately to the left of the green house, where" crlf + "the coffee drinker lives. The milk drinker lives in the middle house." crlf + "The man who smokes Old Golds also keeps snails. The Ukrainian drinks" crlf + "tea. The Norwegian resides in the first house on the left. The" crlf) + (printout t + "Chesterfields smoker lives next door to the fox owner. The Lucky" crlf + "Strike smoker drinks orange juice. The Japanese smokes Parliaments." crlf + "The horse owner lives next to the Kools smoker, whose house is yellow." crlf + "The Norwegian lives next to the blue house." t + crlf + "Now, who drinks water? And who owns the zebra?" crlf crlf) + (assert (value color red) + (value color green) + (value color ivory) + (value color yellow) + (value color blue) + (value nationality englishman) + (value nationality spaniard) + (value nationality ukrainian) + (value nationality norwegian) + (value nationality japanese) + (value pet dog) + (value pet snails) + (value pet fox) + (value pet horse) + (value pet zebra) + (value drink water) + (value drink coffee) + (value drink milk) + (value drink orange-juice) + (value drink tea) + (value smokes old-golds) + (value smokes kools) + (value smokes chesterfields) + (value smokes lucky-strikes) + (value smokes parliaments)) + ) + +(defrule generate-combinations + ?f <- (value ?s ?e) + => + (retract ?f) + (assert (avh (a ?s) (v ?e) (h 1)) + (avh (a ?s) (v ?e) (h 2)) + (avh (a ?s) (v ?e) (h 3)) + (avh (a ?s) (v ?e) (h 4)) + (avh (a ?s) (v ?e) (h 5)))) + + + --- clips-6.24.orig/examples/project.clp +++ clips-6.24/examples/project.clp @@ -0,0 +1,828 @@ +;***************************************************************************** +;* * +;* WARNING and DISCLAIMER * +;* * +;* This implementation the National Cholesterol Education Program guidelines * +;* in CLIPS is intended purely for educational purposes. It was not * +;* intended for actual use in a clinical setting. Rigorous evaluation and * +;* validation has NOT been done. It is released to the public with * +;* absolutely no warranty whatsoever regarding either the correctness of * +;* the program, or its suitability for any purpose, whatsoever. The user * +;* assumes all risks and liabilities from the use of this program. * +;* * +;* This program is neither supported nor maintained at this time. Work on * +;* the program ended in May 1994. The program has not been updated since * +;* that time. * +;* * +;***************************************************************************** +; +; Brief description of the design of the program: +; The program uses various states (boxes in Fig. 1, 2, and 3 of the +; attached paper). State "aa" is the default beginning state. Most +; of the rules are dependent on the current state. +; There are rules for checking missing cholesterol, hdl, and ldl +; values. These rules DO NOT update state because they are dependent +; on the hdl, chol, and ldl values. As soon as the values are +; modified. Other rules (from state to state) will fire. + +; patient1 tempate is for orginal patient information +(deftemplate patient1 + (slot name (type SYMBOL) (default ?DERIVE)) + (slot sex (type SYMBOL) (allowed-symbols female male) (default female)) + (slot h-chd (type SYMBOL) (allowed-symbols yes no) (default no)) + (slot htn (type SYMBOL) (allowed-symbols yes no) (default no)) + (slot smoking (type SYMBOL) (allowed-symbols yes no) (default no)) + (slot dm (type SYMBOL) (allowed-symbols yes no) (default no)) + (slot chd (type SYMBOL) (allowed-symbols yes no) (default no)) + (slot et (type SYMBOL) (allowed-symbols yes no) (default no)) + (slot pm (type SYMBOL) (allowed-symbols yes no) (default no)) + (slot age (type INTEGER) (default ?DERIVE)) + (slot hdl (type INTEGER) (default -1)) + (slot hdl-date (type INTEGER) (default (get-now))) + (slot ldl (type INTEGER) (default -1)) + (slot ldl-date (type INTEGER) (default (get-now))) + (slot chol (type INTEGER) (default -1)) + (slot chol-date (type INTEGER) (default (get-now))) + (slot treatment (type SYMBOL) + (allowed-symbols none diet drug) (default none)) + (slot treatment-date (type INTEGER) (default (get-now)))) + +; patient2 tempate is for processed patient information using +; data form patient1 +(deftemplate patient2 + (slot name (type SYMBOL) (default ?DERIVE)) + (slot chd (type SYMBOL) (allowed-symbols yes no) (default no)) + (slot hdl (type INTEGER) (default -1)) + (slot hdl-date (type INTEGER) (default (get-now))) + (slot ldl (type INTEGER) (default -1)) + (slot ldl-date (type INTEGER) (default (get-now))) + (slot chol (type INTEGER) (default -1)) + (slot chol-date (type INTEGER) (default (get-now))) + (slot treatment (type SYMBOL) + (allowed-symbols none diet drug) (default none)) + (slot treatment-date (type INTEGER) (default (get-now))) + (slot risk (type INTEGER) (default ?DERIVE)) + (slot state (type SYMBOL) (default aa)) + (slot done (type SYMBOL) (allowed-symbols yes no) (default no))) + +;*********BEGINNING OF RISK FACTOR RELATED FUNCTIONS********* +; Return 1 if argument is yes, 0 otherwise +(deffunction r1 (?a) "Return 1 if ?a = yes, 0 otherwise" + (if (= 0 (str-compare ?a yes)) then (return 1) + else (return 0))) + +; function for sex and age related risk +(deffunction sex-risk (?s ?a ?pm ?et) "sex & age related risk" + (if (= 0 (str-compare ?s male)) + then (if (>= ?a 45) + then (return 1) + else (return 0)) + else (if (>= ?a 65) + then (return 1) + else (if (= 0 (str-compare ?pm yes)) + then (if (= 0 (str-compare ?et yes)) + then (return 1) + else (return 0)) + else then (return 0))))) + +; function to calculate hdl related risk +(deffunction hdl-risk (?hdl) "hdl risk" + (if (< ?hdl 35) then (return 1) + else (if (>= ?hdl 60) then (return -1) else (return 0)))) + +; function for risk factors from the following: +; smoking, hypertension, diabetes, history of chd +(deffunction other-risk (?smoke ?h-chd ?htn ?dm) + (return (+ (r1 ?smoke) (r1 ?h-chd) (r1 ?htn) (r1 ?dm)))) + +; all risk factors +(deffunction total-risk (?sex ?age ?pm ?et ?hdl ?smoke ?h-chd ?htn ?dm) + (return (+ (sex-risk ?sex ?age ?pm ?et) (hdl-risk ?hdl) + (other-risk ?smoke ?h-chd ?htn ?dm)))) +;*********END OF RISK FACTOR RELATED FUNCTIONS********* + +; create new patient template with risk factors +(defrule create-patient2 "create patient2 based on info from patient1" + (patient1 (sex ?sex) (age ?age) (pm ?pm) (et ?et) (smoking ?sm) + (h-chd ?h-chd) (htn ?htn) (dm ?dm) + (name ?name) (chd ?chd) (hdl ?hdl) (ldl ?ldl) (chol ?chol) + (hdl-date ?hdl-date) (ldl-date ?ldl-date)(chol-date ?chol-date) + (treatment ?treatment) (treatment-date ?treatment_date)) + => + (assert (patient2 (name ?name) (chd ?chd) (hdl ?hdl) (ldl ?ldl) (chol ?chol) + (hdl-date ?hdl-date) (ldl-date ?ldl-date)(chol-date ?chol-date) + (treatment ?treatment) (treatment-date ?treatment_date) + (risk (total-risk ?sex ?age ?pm ?et ?hdl ?sm ?h-chd ?htn ?dm))))) + +;**************************************************************************** +;**************START OF RULES FOR UNTREATED PATIENTS WITHOUT CHD ************ +;**************************************************************************** + + +; Every patient must have cholesterol test. Does not modify state +(defrule check-chol "Check for presence of cholesterol" + ?f1 <- (patient2 (name ?name) (chol ?chol) + (treatment ?treatment) (done ?done)) + (test (= ?chol -1)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?treatment none))) + => + (printout t crlf "Please input patient's " ?name "'s cholesterol value ") + (printout t "[-1 if no value]" crlf) + (bind ?answer (read)) + (if (and (numberp ?answer) (> ?answer 0)) then + (modify ?f1 (chol ?answer)) + else + (printout t "Please obtain cholesterol test on " ?name crlf) + (modify ?f1 (done yes)))) +;!!!no need to modify done here since default staet is aa. It goes nowhere. +; LOOK AT NEXT RULE + +; rule for checking the age of the chol value +(defrule check-chol-date "date must be within 5 years" + ?f1 <- (patient2 (name ?name) (chol-date ?chol-date) + (treatment ?treatment) (done ?done)) + (test (five-years ?chol-date)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?treatment none))) +=> + (printout t crlf) + (printout t "The last cholesterol value for " ?name + " is over 5 years old." crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| Please check cholesterol value. |" crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes))) + +; rule for box A. All patients without chd goes to box A +(defrule ruleA "getting to box A" + ?f1 <- (patient2 (chd ?chd) (done ?done) + (treatment ?treatment) (state ?state)) + (test (= 0 (str-compare ?chd no))) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state aa))) ; state + (test (= 0 (str-compare ?treatment none))) + => + (modify ?f1 (state a))) + +; rule for A->B +(defrule A2B "getting to box A" + ?f1 <- (patient2 (chol ?chol) (done ?done) (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state a))) + (test (< ?chol 200)) + => + (modify ?f1 (state b))) + +; rule for A->C +(defrule A2C "getting to box C" + ?f1 <- (patient2 (chol ?chol) (done ?done) (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state a))) + (test (<= ?chol 239)) + (test (>= ?chol 200)) + => + (modify ?f1 (state c))) + +; rule for A->D +(defrule A2D "getting to box D" + ?f1 <- (patient2 (chol ?chol) (done ?done) (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state a))) + (test (>= ?chol 240)) + => + (modify ?f1 (state d))) + +; rule to check for hdl at box B +(defrule check-hdl-at-B + ?f1 <- (patient2 (name ?name) (done ?done) (state ?state) (hdl ?hdl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state b))) + (test (= ?hdl -1)) + => + (printout t crlf) + (printout t crlf + "Please input patient " ?name "'s hdl value [-1 if no value]" crlf) + (bind ?answer (read)) + (if (and (numberp ?answer) (> ?answer 0)) then + (modify ?f1 (hdl ?answer)) + else + (printout t crlf + "-------------------------------------------------------"crlf) + (printout t "Please obtain hdl test on " ?name crlf) + (printout t + "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)))) + +; rule to check for hdl at box C +(defrule check-hdl-at-C + ?f1 <- (patient2 (name ?name) (done ?done) (state ?state) (hdl ?hdl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state c))) + (test (= ?hdl -1)) + => + (printout t crlf) + (printout t + "Please input patient " ?name "'s hdl value [-1 if no value]" crlf) + (bind ?answer (read)) + (if (and (numberp ?answer) (> ?answer 0)) then + (modify ?f1 (hdl ?answer)) + else + (printout t crlf + "-------------------------------------------------------"crlf) + (printout t "Please obtain hdl test on " ?name crlf) + (printout t + "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)))) + +; rule to check the age of the hdl value +(defrule check-hdl-date "date must be within 5 years" + ?f1 <- (patient2 (name ?name) (hdl-date ?hdl-date) + (done ?done) (state ?state)) + (test (five-years ?hdl-date)) + (test (= 0 (str-compare ?done no))) +=> + (printout t crlf + "-------------------------------------------------------"crlf) + (printout t "| The last hdl value for " ?name + " is over 5 years old." crlf) + (printout t "| Please check hdl value on " ?name crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes))) + + + +; rule for box I, see the paper +; (NAMA, Juen 16, 1993-Vol 269, No. 23, pp 3015-3023) +(defrule B2E2I "Rule for box I" + ?f1 <- (patient2 (name ?name) + (done ?done) + (state ?state) + (hdl ?hdl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state b))) + (test (>= ?hdl 35)) + => + (printout t crlf "Patient " ?name " needs the following treatement:"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 1. Repeat Total Cholesterol and HDL Cholesterol |"crlf) + (printout t "| Measurement Within 5 Years or With Physical |"crlf) + (printout t "| Education. |"crlf) + (printout t "| 2. Provide Education on Genral Population Eating |"crlf) + (printout t "| Pattern, Physical Activity, and Risk Factor |"crlf) + (printout t "| Reduction. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state i))) + +; rule going from box B->F->K +(defrule B2F2K "Rules to reach box K" + ?f1 <- (patient2 (state ?state) (done ?done) (hdl ?hdl) + (chol ?chol)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state b))) + (test (< ?hdl 35)) + => + (modify ?f1 (state k))) + +; rule going from box C->G->J +(defrule C2G2J "Rules to reach box J" + ?f1 <- (patient2 (state ?state) (chd ?chd) (done ?done) (hdl ?hdl) + (name ?name)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state c))) + (test (>= ?hdl 35)) + => + (printout t crlf "Patient " ?name " needs the following treatement:"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 1. Provide Information on Dietary Modification, |"crlf) + (printout t "| Physical Activity, and Risk Factor Reduction. |"crlf) + (printout t "| 2. Reevaluate Patient in 1 to 2 years: |"crlf) + (printout t "| a. Repeat Total and HDL Cholesterol Measurements.|"crlf) + (printout t "| b. Reinforce Nutrition and Physical Activity |"crlf) + (printout t "| Education. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state j))) + +; rule going from box C->H->K +(defrule C2H2K "Rules to reach box K" + ?f1 <- (patient2 (state ?state) (chd ?chd) (done ?done) (hdl ?hdl) + (name ?name)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state c))) + (test (< ?hdl 35)) + => + (modify ?f1 (state k))) + + +; rule going from box D to box K +(defrule D2K "Rules to reach box K" + ?f1 <- (patient2 (state ?state) + (done ?done)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state d))) + => + (modify ?f1 (state k))) + + +; check for availability of ldl after reaching box K +(defrule check-ldl-at-K "Check for ldl" + ?f1 <- (patient2 (ldl ?ldl) + (done ?done) + (state ?state) + (name ?name)) + (test (= ?ldl -1)) ; see other rules with ldl > 0 + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state k))) + => + (printout t crlf + "Please input patient " ?name "'s ldl value [-1 if no value]"crlf) + (bind ?answer (read)) + (if (and (numberp ?answer) (> ?answer 0)) then + (modify ?f1 (ldl ?answer)) ; do not modify state here + else + (printout t crlf + "-------------------------------------------------------"crlf) + (printout t "Please obtain ldl test on " ?name crlf) + (printout t + "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)))) + +; rule to check the age of the ldl value +(defrule check-ldl-date "date must be within 5 years" + ?f1 <- (patient2 (name ?name) (ldl-date ?ldl-date) + (done ?done) (state ?state)) + (test (five-years ?ldl-date)) + (test (= 0 (str-compare ?done no))) +=> + (printout t crlf + "-------------------------------------------------------"crlf) + (printout t "| The last ldl value for " ?name + " is over 5 years old." crlf) + (printout t "| Please check ldl value on " ?name crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes))) + +; rule from box K->L->O->T +; do high risk rule first +(defrule K2L2O2S "Rule S" + ?f1 <- (patient2 (name ?name) (state ?state) (done ?done) (risk ?risk) + (ldl ?ldl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state k))) +; remove (test (<= ?ldl 159)) all pat with 2 risk get same rx. + (test (>= ?ldl 130)) + (test (>= ?risk 2)) + => + (printout t crlf "Patient " ?name " needs the following treatement:"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 1. Do Clinical Evaluation (History, Physical |"crlf) + (printout t "| Examination, and Laboratory Tests): |"crlf) + (printout t "| a. Evaluate for Secondary Causes (When Indicated)|"crlf) + (printout t "| b. Evaluate for Familial Disorders (When |"crlf) + (printout t "| Indicated) |"crlf) + (printout t "| 2. Consider Influences of Age, Sex, and Other CHD |"crlf) + (printout t "| Risk Factors |"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 3. Initiate Dietary Therapy with Goal of Lowering |"crlf) + (printout t "| LDL Cholesterol below 130 mg/dl |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state t))) + + +; rules from box K to box T (via box P) +(defrule K2L2P2T "Inititate dietary therapy" + ?f1 <- (patient2 (name ?name) (state ?state) (done ?done) (ldl ?ldl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state k))) + (test (>= ?ldl 160)) + => + (printout t crlf "Patient " ?name " needs the following treatement:"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 1. Do Clinical Evaluation (History, Physical |"crlf) + (printout t "| Examination, and Laboratory Tests): |"crlf) + (printout t "| a. Evaluate for Secondary Causes (When Indicated)|"crlf) + (printout t "| b. Evaluate for Familial Disorders (When |"crlf) + (printout t "| Indicated) |"crlf) + (printout t "| 2. Consider Influences of Age, Sex, and Other CHD |"crlf) + (printout t "| Risk Factors |"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 3. Initiate Dietary Therapy with Goal of Lowering |"crlf) + (printout t "| LDL Cholesterol below 160 mg/dl |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state t))) + +; rule from box K->L->M->R +(defrule K2L2M2R "Rule R" + ?f1 <- (patient2 (name ?name) + (state ?state) + (done ?done) + (ldl ?ldl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state k))) + (test (< ?ldl 130)) + => + (printout t crlf "Patient " ?name " needs the following treatement:"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 1. Repeat Total Cholesterol and HDL Cholesterol |"crlf) + (printout t "| Measurement Within 5 Years |"crlf) + (printout t "| 2. Provide Education on Genral Population Eating |"crlf) + (printout t "| Pattern, Physical Activity, and Risk Factor |"crlf) + (printout t "| Reduction. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state r))) + +; rule from box K->L->N->S +(defrule K2L2N2S "Rule S" + ?f1 <- (patient2 (name ?name) (state ?state) (done ?done) (risk ?risk) + (ldl ?ldl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state k))) + (test (<= ?ldl 159)) + (test (>= ?ldl 130)) + (test (< ?risk 2)) + => + (printout t crlf "Patient " ?name " needs the following treatement:"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 1. Provide Information on Step 1 Diet and Physical |"crlf) + (printout t "| Activity. |"crlf) + (printout t "| 2. Reevaluate Patient Status Annually, Including |"crlf) + (printout t "| Risk Factor Reduction |"crlf) + (printout t "| a. Repeat Lipoprotein Analysis |"crlf) + (printout t "| b. Reinforce Nutrition and Physical Activity |"crlf) + (printout t "| Education. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state s))) + + +;************************************************************************ +;**************START OF RULES FOR PATIENTS WITH CHD ********************* +;************************************************************************ + +; The following rules are for patients with CHD + +; rule for box U. All patients with CHD goes to box A +(defrule ruleU "getting to box U" + ?f1 <- (patient2 (chd ?chd) (done ?done) + (treatment ?treatment)(state ?state)) + (test (= 0 (str-compare ?chd yes))) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?treatment none))) + (test (= 0 (str-compare ?state aa))) ; state + => + (modify ?f1 (state u))) + +; rule to check for ldl at box U +(defrule check-ldl-at-U + ?f1 <- (patient2 (name ?name) (done ?done) (state ?state) (ldl ?ldl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state u))) + (test (= ?ldl -1)) + => + (printout t crlf + "Please input patient " ?name "'s ldl value [-1 if no value]"crlf) + (bind ?answer (read)) + (if (and (numberp ?answer) (> ?answer 0)) then + (modify ?f1 (ldl ?answer)) + else + (printout t crlf + "-------------------------------------------------------"crlf) + (printout t "Please obtain ldl test on" ?name crlf) + (printout t + "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)))) + +; rule from box U->V->X +(defrule U2V2X "Rule X" + ?f1 <- (patient2 (name ?name) + (state ?state) + (done ?done) + (ldl ?ldl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state u))) + (test (<= ?ldl 100)) + (test (> ?ldl 0)) + => + (printout t crlf "Patient " ?name " needs the following treatement:"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 1. Indivudualize Instruction on Diet and Physical |"crlf) + (printout t "| Activity Level. |"crlf) + (printout t "| 2. Repeat Lipoprotein Analysis Annually. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state x))) + +; rule from box U->W->X +(defrule U2W2Z "Rule Z" + ?f1 <- (patient2 (name ?name) + (state ?state) + (done ?done) + (ldl ?ldl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state u))) + (test (> ?ldl 100)) + => + (printout t crlf "Patient " ?name " needs the following treatement:"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 1. Do Clinical Evaluation (History, Physical Exam, |"crlf) + (printout t "| and Lab Tests). |"crlf) + (printout t "| 2. Evaluate for Secondary Causes (When Indicated). |"crlf) + (printout t "| 3. Evaluate for Familial Disorders (When Indicated).|"crlf) + (printout t "| 4. Consider Influences of Age, Sex, and Other CHD |"crlf) + (printout t "| Risk Factors. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 5. Initiate Dietary Therapy: Goal is LDL < 100 mg/dl|"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state z))) + +;************************************************************************** +;************END OF RULES FOR UNTREATED PATIENTS WITH CHD****************** +;************************************************************************** + +;************************************************************************** +;********** START OF RULES FOR TREATED PATIENTS ********************** +;************************************************************************** + + +; rule to identify all treated patients +(defrule ruleT1 "getting to box t1" + ?f1 <- (patient2 (done ?done) + (treatment ?treatment) (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state aa))) ; state + (test (<> 0 (str-compare ?treatment none))) ;treatment other than none + => + (modify ?f1 (state t1))) + + + +; check for availability of ldl after reaching box t1 +(defrule check-ldl-at-t1 "Check for ldl" + ?f1 <- (patient2 (ldl ?ldl) + (done ?done) + (state ?state) + (name ?name)) + (test (= ?ldl -1)) ; see other rules with ldl > 0 + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state t1))) + => + (printout t crlf + "Please input patient " ?name "'s ldl value [-1 if no value]"crlf) + (bind ?answer (read)) + (if (and (numberp ?answer) (> ?answer 0)) then + (modify ?f1 (ldl ?answer)) ; do not modify state here + else + (printout t crlf + "-------------------------------------------------------"crlf) + (printout t "Please obtain ldl test on" ?name crlf) + (printout t + "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)))) + +; rule to check the age of the ldl value +; for treated patient must be after treatment +(defrule check-treat-ldl-date "after treatment begins" + ?f1 <- (patient2 (name ?name) (ldl-date ?ldl-date) + (treatment-date ?treatment-date) + (done ?done) (state ?state)) + (test (< ?ldl-date ?treatment-date)) + (test (= 0 (str-compare ?done no))) +=> + (printout t "-------------------------------------------------------"crlf) + (printout t "| Last ldl value for " ?name + " is before the latest treatment." crlf) + (printout t "| Please obtain a value on treatment." crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes))) + + +; Rule for box t4 chd low risk +(defrule ruleT4 "no chd low risk" + ?f1 <- (patient2 (name ?name) (done ?done) (risk ?risk) + (state ?state) (chd ?chd)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?chd no))) + (test (= 0 (str-compare ?state t1))) ; state + (test (< ?risk 2)) + => + (modify ?f1 (state t4))) + +; Rule for box t5 chd high risk +(defrule ruleT5 "no chd high risk" + ?f1 <- (patient2 (name ?name) (done ?done) (risk ?risk) + (state ?state) (chd ?chd)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?chd no))) + (test (= 0 (str-compare ?state t1))) ; state + (test (>= ?risk 2)) + => + (modify ?f1 (state t5))) + + +; Rule for box t6 chd high risk +(defrule ruleT6 "no chd high risk" + ?f1 <- (patient2 (name ?name) (done ?done) + (state ?state) (chd ?chd)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?chd yes))) + (test (= 0 (str-compare ?state t1))) ; state + => + (modify ?f1 (state t6))) + + + +; Rule for box t4 responding +(defrule ruleT4good "responding" + ?f1 <- (patient2 (name ?name) (done ?done) (ldl ?ldl) + (state ?state) (treatment ?treatment)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state t4))) ; state + (test (< ?ldl 160)) + => + (printout t crlf) + (printout t "Patient " ?name " is responding well to " + ?treatment " therapy"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| The LDL of "?ldl" is below the goal of 160 mg/dl"crlf) + (printout t "| Continue the current therapy |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state tgood))) + +; Rule for box t4 not responding +(defrule ruleT4bad "not responding" + ?f1 <- (patient2 (name ?name) (done ?done) (ldl ?ldl) + (state ?state) (treatment ?treatment)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state t4))) ; state + (test (> ?ldl 160)) + => + (printout t crlf) + (printout t "Patient " ?name " is not responding well to " + ?treatment " therapy" crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| The LDL of "?ldl" is above the goal of 160 mg/dl"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (state tbad))) + + +; Rule for box t5 responding +(defrule ruleT5good "responding" + ?f1 <- (patient2 (name ?name) (done ?done) (ldl ?ldl) + (state ?state) (treatment ?treatment)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state t5))) ; state + (test (< ?ldl 130)) + => + (printout t crlf) + (printout t "Patient " ?name " is responding well to " + ?treatment " therapy" crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| The LDL of "?ldl" is below the goal of 130 mg/dl"crlf) + (printout t "| Continue the current therapy |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state tgood))) + +; Rule for box t5 not responding +(defrule ruleT5bad "not responding" + ?f1 <- (patient2 (name ?name) (done ?done) (ldl ?ldl) + (state ?state) (treatment ?treatment)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state t5))) ; state + (test (> ?ldl 130)) + => + (printout t crlf) + (printout t "Patient " ?name " is not responding well to " + ?treatment " therapy"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| The LDL of "?ldl" is above the goal of 130 mg/dl"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (state tbad))) + + +; Rule for box t6 responding +(defrule ruleT6good "responding" + ?f1 <- (patient2 (name ?name) (done ?done) (ldl ?ldl) + (state ?state) (treatment ?treatment)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state t6))) ; state + (test (< ?ldl 100)) + => + (printout t crlf) + (printout t "Patient " ?name " is responding well to " + ?treatment " therapy"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| The LDL of "?ldl" is below the goal of 100 mg/dl"crlf) + (printout t "| Continue the current therapy |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state tgood))) + +; Rule for box t6 not responding +(defrule ruleT6bad "not responding" + ?f1 <- (patient2 (name ?name) (done ?done) (ldl ?ldl) + (state ?state) (treatment ?treatment)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state t6))) ; state + (test (> ?ldl 100)) + => + (printout t crlf) + (printout t "Patient " ?name " is not responding well to " + ?treatment " therapy"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| The LDL of "?ldl" is above the goal of 100 mg/dl"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (state tbad))) + + +; Rule for early non responders +(defrule ruleTbadearly "not responding" + ?f1 <- (patient2 (name ?name) (done ?done) (treatment-date ?treatment-date) + (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state tbad))) ; state + (test (not (six-months ?treatment-date))) + => + (printout t "| Patient has been on treatment for less than 6 months|"crlf) + (printout t "| Continue treatment for 6 months before evaluating |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)(state tz))) + +; Rule for late nonresponders to diet +(defrule ruleTbaddiet1 "no chd low risk" + ?f1 <- (patient2 (name ?name) (done ?done) (ldl ?ldl) (chd ?chd) + (treatment ?treatment) (treatment-date ?treatment-date) + (risk ?risk) (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state tbad))) ; state + (test (= 0 (str-compare ?chd no))) + (test (= 0 (str-compare ?treatment diet))) + (test (six-months ?treatment-date)) + (test (< ?risk 2)) + (test (< ?ldl 190)) + => + (printout t "| Although patient has not responded to diet, |"crlf) + (printout t "| the LDL is not high enough to justify drug therapy. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)(state tz))) + +; Rule for late nonresponders to diet +(defrule ruleTbaddiet2 "no chd high risk" + ?f1 <- (patient2 (name ?name) (done ?done) (ldl ?ldl) (chd ?chd) + (treatment ?treatment) (treatment-date ?treatment-date) + (risk ?risk) (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state tbad))) ; state + (test (= 0 (str-compare ?chd no))) + (test (= 0 (str-compare ?treatment diet))) + (test (six-months ?treatment-date)) + (test (>= ?risk 2)) + (test (< ?ldl 160)) + => + (printout t "| Although patient has not responded to diet, |"crlf) + (printout t "| the LDL is not high enough to justify drug therapy. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)(state tz))) + +; Rule for late nonresponders to diet +(defrule ruleTbaddiet3 "with chd" + ?f1 <- (patient2 (name ?name) (done ?done) (ldl ?ldl) (chd ?chd) + (treatment ?treatment) (treatment-date ?treatment-date) + (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state tbad))) ; state + (test (= 0 (str-compare ?chd yes))) + (test (= 0 (str-compare ?treatment diet))) + (test (six-months ?treatment-date)) + (test (< ?ldl 130)) + => + (printout t "| Although patient has not responded to diet, |"crlf) + (printout t "| the LDL is not high enough to justify drug therapy. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)(state tz))) + +; Rule for late nonresponders to diet who are drug candidates +(defrule ruleTbaddiet4 "candidates for drug therapy" + ?f1 <- (patient2 (name ?name) (done ?done) + (treatment ?treatment) (treatment-date ?treatment-date) + (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state tbad))) ; state + (test (= 0 (str-compare ?treatment diet))) + (test (six-months ?treatment-date)) + => + (printout t "| Consider advancing to drug therapy. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)(state tz))) + + +; Rule for late nonresponders to drug therapy +(defrule ruleTbaddrug "candidates for drug therapy" + ?f1 <- (patient2 (name ?name) (done ?done) + (treatment ?treatment) (treatment-date ?treatment-date) + (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state tbad))) ; state + (test (= 0 (str-compare ?treatment drug))) + (test (six-months ?treatment-date)) + => + (printout t "| Consider advancing therapy. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)(state tz))) + --- clips-6.24.orig/examples/electrnc.clp +++ clips-6.24/examples/electrnc.clp @@ -0,0 +1,393 @@ +;;;====================================================== +;;; Circuit Input/Output Simplification Expert System +;;; +;;; This program simplifies the boolean decision +;;; table for a circuit consisting of inputs (SOURCES) +;;; and outputs (LEDs). +;;; +;;; The simplification procedure works as follows: +;;; 1) The connections between components of the +;;; circuit are initialized. +;;; 2) The response of the circuit when all SOURCEs +;;; are set to zero is determined. +;;; 3) Source input values are changed one at a time +;;; and the response of the circuit is determined. +;;; All possible input combinations are iterated +;;; through using a gray code (a number representation +;;; system using binary digits in which successive +;;; integers differ by exactly one binary digit). +;;; For example, the gray code for the numbers 0 to 7 +;;; is 0 = 000, 1 = 001, 2 = 011, 3 = 010, 4 = 110, +;;; 5 = 111, 6 = 101, 7 = 100. By using a gray code, +;;; only one SOURCE has to be changed at a time to +;;; determine the next response in the decision +;;; table (minimizing execution time). +;;; 4) As responses are determined, a rule checks to +;;; see if any two sets of inputs with the same +;;; response differ if a single input. If so, then +;;; the single input can be replaced with a * +;;; (indicating that it does not matter what the +;;; value of the input is given the other inputs). +;;; For example, if the input 0 1 0 gave a response +;;; of 1 0 and the input 0 0 0 gave the same response, +;;; then the decision table can be simplified by +;;; indicating that 0 * 0 gives a response of 1 0. +;;; 5) Once all responses and simplifications have been +;;; determined, the decision table for the circuit is +;;; printed. +;;; +;;; This example illustrates the use of most of the +;;; constructs available in CLIPS 6.0 and also shows how +;;; COOL can be effectively integrated with rules. +;;; Generic functions are used to connect the components +;;; of the circuit during initialization. Classes, +;;; message-handlers, and deffunctions are used to +;;; determine the response of the circuit to a set of +;;; inputs. Rules, deffunctions, and global variables +;;; are used to control execution, iterate through all +;;; possible input combinations, simplify the boolean +;;; decision tree, and print out the simplified decision +;;; tree. +;;; +;;; CLIPS Version 6.0 Example +;;; +;;; To execute, load this file, load one of the circuit +;;; files (circuit1.clp, circuit2.clp, or circuit3.clp), +;;; reset, and run. +;;;====================================================== + + +;;;*********** +;;; DEFCLASSES +;;;*********** + +(defclass COMPONENT + (is-a USER) + (slot ID# (create-accessor write))) + +(defclass NO-OUTPUT + (is-a USER) + (slot number-of-outputs (access read-only) + (default 0) + (create-accessor read))) + +(defmessage-handler NO-OUTPUT compute-output ()) + +(defclass ONE-OUTPUT + (is-a NO-OUTPUT) + (slot number-of-outputs (access read-only) + (default 1) + (create-accessor read)) + (slot output-1 (default UNDEFINED) (create-accessor write)) + (slot output-1-link (default GROUND) (create-accessor write)) + (slot output-1-link-pin (default 1) (create-accessor write))) + +(defmessage-handler ONE-OUTPUT put-output-1 after (?value) + (send ?self:output-1-link + (sym-cat put-input- ?self:output-1-link-pin) + ?value)) + +(defclass TWO-OUTPUT + (is-a ONE-OUTPUT) + (slot number-of-outputs (access read-only) + (default 2) + (create-accessor read)) + (slot output-2 (default UNDEFINED) (create-accessor write)) + (slot output-2-link (default GROUND) (create-accessor write)) + (slot output-2-link-pin (default 1) (create-accessor write))) + +(defmessage-handler TWO-OUTPUT put-output-1 after (?value) + (send ?self:output-2-link + (sym-cat put-input- ?self:output-2-link-pin) + ?value)) + +(defclass NO-INPUT + (is-a USER) + (slot number-of-inputs (access read-only) + (default 0) + (create-accessor read))) + +(defclass ONE-INPUT + (is-a NO-INPUT) + (slot number-of-inputs (access read-only) + (default 1) + (create-accessor read)) + (slot input-1 (default UNDEFINED) + (visibility public) + (create-accessor read-write)) + (slot input-1-link (default GROUND) (create-accessor write)) + (slot input-1-link-pin (default 1) (create-accessor write))) + +(defmessage-handler ONE-INPUT put-input-1 after (?value) + (send ?self compute-output)) + +(defclass TWO-INPUT + (is-a ONE-INPUT) + (slot number-of-inputs (access read-only) + (default 2) + (create-accessor read)) + (slot input-2 (default UNDEFINED) + (visibility public) + (create-accessor write)) + (slot input-2-link (default GROUND) (create-accessor write)) + (slot input-2-link-pin (default 1) (create-accessor write))) + +(defmessage-handler TWO-INPUT put-input-2 after (?value) + (send ?self compute-output)) + +(defclass SOURCE + (is-a NO-INPUT ONE-OUTPUT COMPONENT) + (role concrete) + (slot output-1 (default UNDEFINED) (create-accessor write))) + +(defclass SINK + (is-a ONE-INPUT NO-OUTPUT COMPONENT) + (role concrete) + (slot input-1 (default UNDEFINED) (create-accessor read-write))) + +;;;******************* +;;; NOT GATE COMPONENT +;;;******************* + +(defclass NOT-GATE + (is-a ONE-INPUT ONE-OUTPUT COMPONENT) + (role concrete)) + +(deffunction not# (?x) (- 1 ?x)) + +(defmessage-handler NOT-GATE compute-output () + (if (integerp ?self:input-1) then + (send ?self put-output-1 (not# ?self:input-1)))) + +;;;******************* +;;; AND GATE COMPONENT +;;;******************* + +(defclass AND-GATE + (is-a TWO-INPUT ONE-OUTPUT COMPONENT) + (role concrete)) + +(deffunction and# (?x ?y) + (if (and (!= ?x 0) (!= ?y 0)) then 1 else 0)) + +(defmessage-handler AND-GATE compute-output () + (if (and (integerp ?self:input-1) + (integerp ?self:input-2)) then + (send ?self put-output-1 (and# ?self:input-1 ?self:input-2)))) + +;;;****************** +;;; OR GATE COMPONENT +;;;****************** + +(defclass OR-GATE + (is-a TWO-INPUT ONE-OUTPUT COMPONENT) + (role concrete)) + +(deffunction or# (?x ?y) + (if (or (!= ?x 0) (!= ?y 0)) then 1 else 0)) + +(defmessage-handler OR-GATE compute-output () + (if (and (integerp ?self:input-1) + (integerp ?self:input-2)) then + (send ?self put-output-1 (or# ?self:input-1 ?self:input-2)))) + +;;;******************** +;;; NAND GATE COMPONENT +;;;******************** + +(defclass NAND-GATE + (is-a TWO-INPUT ONE-OUTPUT COMPONENT) + (role concrete)) + +(deffunction nand# (?x ?y) + (if (not (and (!= ?x 0) (!= ?y 0))) then 1 else 0)) + +(defmessage-handler NAND-GATE compute-output () + (if (and (integerp ?self:input-1) + (integerp ?self:input-2)) then + (send ?self put-output-1 (nand# ?self:input-1 ?self:input-2)))) + +;;;******************* +;;; XOR GATE COMPONENT +;;;******************* + +(defclass XOR-GATE + (is-a TWO-INPUT ONE-OUTPUT COMPONENT) + (role concrete)) + +(deffunction xor# (?x ?y) + (if (or (and (= ?x 1) (= ?y 0)) + (and (= ?x 0) (= ?y 1))) then 1 else 0)) + +(defmessage-handler XOR-GATE compute-output () + (if (and (integerp ?self:input-1) + (integerp ?self:input-2)) then + (send ?self put-output-1 (xor# ?self:input-1 ?self:input-2)))) + +;;;******************* +;;; SPLITTER COMPONENT +;;;******************* + +(defclass SPLITTER + (is-a ONE-INPUT TWO-OUTPUT COMPONENT) + (role concrete)) + +(defmessage-handler SPLITTER compute-output () + (if (integerp ?self:input-1) then + (send ?self put-output-1 ?self:input-1) + (send ?self put-output-2 ?self:input-1))) + +;;;************** +;;; LED COMPONENT +;;;************** + +(defclass LED + (is-a ONE-INPUT NO-OUTPUT COMPONENT) + (role concrete)) + +;;; Returns the current value of each LED +;;; instance in a multifield value. +(deffunction LED-response () + (bind ?response (create$)) + (do-for-all-instances ((?led LED)) TRUE + (bind ?response (create$ ?response (send ?led get-input-1)))) + ?response) + +;;;*************************** +;;; DEFGENERICS AND DEFMETHODS +;;;*************************** + +(defgeneric connect) + +;;; Connects a one output component to a one input component. +(defmethod connect ((?out ONE-OUTPUT) (?in ONE-INPUT)) + (send ?out put-output-1-link ?in) + (send ?out put-output-1-link-pin 1) + (send ?in put-input-1-link ?out) + (send ?in put-input-1-link-pin 1)) + +;;; Connects a one output component to one pin of a two input component. +(defmethod connect ((?out ONE-OUTPUT) (?in TWO-INPUT) (?in-pin INTEGER)) + (send ?out put-output-1-link ?in) + (send ?out put-output-1-link-pin ?in-pin) + (send ?in (sym-cat put-input- ?in-pin -link) ?out) + (send ?in (sym-cat put-input- ?in-pin -link-pin) 1)) + +;;; Connects one pin of a two output component to a one input component. +(defmethod connect ((?out TWO-OUTPUT) (?out-pin INTEGER) (?in ONE-INPUT)) + (send ?out (sym-cat put-output- ?out-pin -link) ?in) + (send ?out (sym-cat put-output- ?out-pin -link-pin) 1) + (send ?in put-input-1-link ?out) + (send ?in put-input-1-link-pin ?out-pin)) + +;;; Connects one pin of a two output component +;;; to one pin of a two input component. +(defmethod connect ((?out TWO-OUTPUT) (?out-pin INTEGER) + (?in TWO-INPUT) (?in-pin INTEGER)) + (send ?out (sym-cat put-output- ?out-pin -link) ?in) + (send ?out (sym-cat put-output- ?out-pin -link-pin) ?in-pin) + (send ?in (sym-cat put-input- ?in-pin -link) ?out) + (send ?in (sym-cat put-input- ?in-pin -link-pin) ?out-pin)) + +;;;**************************** +;;; DEFGLOBALS AND DEFFUNCTIONS +;;;**************************** + +(defglobal ?*gray-code* = (create$) + ?*sources* = (create$) + ?*max-iterations* = 0) + +;;; Given the current iteration, determines the next +;;; bit in the gray code to change. +;;; Algorithm courtesy of John R. Kennedy (The BitMan). +(deffunction change-which-bit (?x) + (bind ?i 1) + (while (and (evenp ?x) (!= ?x 0)) do + (bind ?x (div ?x 2)) + (bind ?i (+ ?i 1))) + ?i) + +;;; Forward declaration since the initial configuration +;;; is stored in a separate file. +(deffunction connect-circuit ()) + +;;;********* +;;; DEFRULES +;;;********* + +(defrule startup + => + ;; Initialize the circuit by connecting the components + (connect-circuit) + ;; Setup the globals. + (bind ?*sources* (find-all-instances ((?x SOURCE)) TRUE)) + (do-for-all-instances ((?x SOURCE)) TRUE + (bind ?*gray-code* (create$ ?*gray-code* 0))) + (bind ?*max-iterations* (round (** 2 (length ?*sources*)))) + ;; Do the first response. + (assert (current-iteration 0))) + +(defrule compute-response-1st-time + ?f <- (current-iteration 0) + => + ;; Set all of the sources to zero. + (do-for-all-instances ((?source SOURCE)) TRUE (send ?source put-output-1 0)) + ;; Determine the initial LED response. + (assert (result ?*gray-code* =(str-implode (LED-response)))) + ;; Begin the iteration process of looping through the gray code combinations. + (retract ?f) + (assert (current-iteration 1))) + +(defrule compute-response-other-times + ?f <- (current-iteration ?n&~0&:(< ?n ?*max-iterations*)) + => + ;; Change the gray code, saving the changed bit value. + (bind ?pos (change-which-bit ?n)) + (bind ?nv (- 1 (nth ?pos ?*gray-code*))) + (bind ?*gray-code* (replace$ ?*gray-code* ?pos ?pos ?nv)) + ;; Change the single changed source + (send (nth ?pos ?*sources*) put-output-1 ?nv) + ;; Determine the LED response to the input. + (assert (result ?*gray-code* =(str-implode (LED-response)))) + ;; Assert the new iteration fact + (retract ?f) + (assert (current-iteration =(+ ?n 1)))) + +(defrule merge-responses + (declare (salience 10)) + ?f1 <- (result $?b ?x $?e ?response) + ?f2 <- (result $?b ~?x $?e ?response) + => + (retract ?f1 ?f2) + (assert (result $?b * $?e ?response))) + +(defrule print-header + (declare (salience -10)) + => + (assert (print-results)) + (do-for-all-instances ((?x SOURCE)) TRUE (format t " %3s " (sym-cat ?x))) + (printout t " | ") + (do-for-all-instances ((?x LED)) TRUE (format t " %3s " (sym-cat ?x))) + (format t "%n") + (do-for-all-instances ((?x SOURCE)) TRUE (printout t "-----")) + (printout t "-+-") + (do-for-all-instances ((?x LED)) TRUE (printout t "-----")) + (format t "%n")) + +(defrule print-result + (print-results) + ?f <- (result $?input ?response) + (not (result $?input-2 ?response-2&:(< (str-compare ?response-2 ?response) 0))) + => + (retract ?f) + ;; Print the input from the sources. + (while (neq ?input (create$)) do + (printout t " " (nth 1 ?input) " ") + (bind ?input (rest$ ?input))) + ;; Print the output from the LEDs. + (printout t " | ") + (bind ?response (str-explode ?response)) + (while (neq ?response (create$)) do + (printout t " " (nth 1 ?response) " ") + (bind ?response (rest$ ?response))) + (printout t crlf)) --- clips-6.24.orig/examples/circuit1.clp +++ clips-6.24/examples/circuit1.clp @@ -0,0 +1,54 @@ +;;;====================================================== +;;; Example Circuit #1 +;;; +;;; An example circuit to be loaded for use with +;;; the "electronic.clp" example program. Note +;;; that OR gate #1 receives both inputs from the +;;; same source with one of the inputs negated. +;;; Therefore, the output of this OR gate should +;;; always be 1 and the value of source #1 is +;;; has no effect on the value of the LEDs. +;;; +;;; LEGEND +;;; ------------ +;;; S = Source +;;; P = Splitter +;;; N = NOT Gate +;;; O = OR Gate +;;; X = XOR Gate +;;; L = LED +;;; +;;; +;;; /---N1>--\ /---------L1 +;;; S1>--P1>-| O1>---P2>--| +;;; \--------/ | +;;; | +;;; | +;;; \---\ +;;; X2>--L2 +;;; S2>-------------------------------/ +;;; +;;;====================================================== + +(definstances circuit + (S-1 of SOURCE) + (S-2 of SOURCE) + (P-1 of SPLITTER) + (P-2 of SPLITTER) + (N-1 of NOT-GATE) + (O-1 of OR-GATE) + (X-1 of XOR-GATE) + (L-1 of LED) + (L-2 of LED)) + +(deffunction connect-circuit () + (connect [S-1] [P-1]) + (connect [S-2] [X-1] 2) + (connect [P-1] 1 [N-1]) + (connect [P-1] 2 [O-1] 2) + (connect [N-1] [O-1] 1) + (connect [O-1] [P-2]) + (connect [P-2] 1 [L-1]) + (connect [P-2] 2 [X-1] 1) + (connect [X-1] [L-2])) + --- clips-6.24.orig/examples/usedcar.clp +++ clips-6.24/examples/usedcar.clp @@ -0,0 +1,1770 @@ + + + + (defrule starter + ?init <- (initial-fact) + => + (retract ?init) + (printout t " " crlf) + (printout t " " crlf) + (printout t " " crlf) + (printout t " " crlf) + (printout t " ") + (printout t " W E L C O M E T O I A J S" crlf) + (printout t " " crlf) + (printout t " This Intelligent Automobile Judgement ") + (printout t "System will help the unknowledgable used ") + (printout t " " crlf) + (printout t "auto buyer make a sound decision ") + (printout t " in the purchase of a used car." crlf) + (printout t " " crlf) + (printout t "You, the purchaser, will be asked a series") + (printout t " of yes/no questions about the auto in" crlf) + (printout t "question. You will also be asked to perform") + (printout t " some simple tests. At the end of the " crlf) + (printout t "program a list of possible trouble areas ") + (printout t "and a recommendation on the purchase" crlf) + (printout t " " crlf) + (printout t " of the car will be made." crlf) + (printout t " " crlf) + (printout t "This system assumes that the buyer wants a") + (printout t " dependable driving car not in need of "crlf) + (printout t "major repairs. " crlf) + (printout t " " crlf) + (printout t " " crlf) + (printout t " Hit to begin our consulting" crlf) + (printout t " " crlf) + (printout t " " crlf) + (printout t " " crlf) + (bind ?answer (readline)) + (assert (screen 2))) + + + + (defrule first-scrn + ?scrn <- (screen 2) + => + (retract ?scrn) + (bind ?count 0) + (while (<= ?count 25) + (printout t " " crlf) + (bind ?count (+ ?count 1))) + (printout t " ") + (printout t " I will take you through 3 test phases" crlf) + (printout t " " crlf) + (printout t " ") + (printout t " 1. VISUAL INSPECTION" crlf) + (printout t " " crlf) + + + + + + + + + (printout t " ") + (printout t " 2. ENGINE RUNNING" crlf) + (printout t " " crlf) + (printout t " ") + (printout t " 3. ROAD TEST" crlf) + (printout t " " crlf) + (printout t " ") + (printout t "To begin the visual, hit " crlf) + (printout t " " crlf) + (printout t " " crlf) + (printout t " " crlf) + (printout t " " crlf) + (printout t " " crlf) + (printout t " " crlf) + (printout t " " crlf) + (bind ?answer (readline)) + (assert (start visual))) + + + (defrule visual1 + ?start <- (start visual) + => + (retract ?start) + (bind ?count 0) + (while (<= ?count 20) + (printout t " " crlf) + (bind ?count (+ ?count 1))) + (printout t " The first thing to do is find the types of") + (printout t " options on the car. Please answer" crlf) + (printout t " " crlf) + (printout t "yes or no to the following questions. If") + (printout t " you don't know the answer, ask the " crlf) + (printout t " " crlf) + (printout t "seller" crlf) + (printout t " " crlf) + (printout t " " crlf) + (assert (find options))) + + (defrule option1 + ?opt <- (find options) + => + (retract ?opt) + (printout t "Does the car have AIR CONDITIONING?" crlf) + (printout t " " crlf) + (bind ?air (read)) + (printout t " " crlf) + (printout t "How about POWER STEERING? " crlf) + (printout t " " crlf) + (bind ?psteer (read)) + (printout t " " crlf) + (printout t "Are the brakes POWER ASSISTED?" crlf) + (printout t " " crlf) + (bind ?pbrake (read)) + (printout t " " crlf) + + + + + + + + + (printout t "Does it have an AUTOMATIC TRANSMISSION?") + (printout t " " crlf) + (printout t " " crlf) + (bind ?auto (read)) + (printout t " " crlf) + (printout t "How many cylinder engine?" crlf) + (printout t " " crlf) + (bind ?cyl (read)) + (printout t " " crlf) + (printout t "Is it a REAR WHEEL DRIVE car?" crlf) + (printout t " " crlf) + (bind ?rwd (read)) + (printout t " " crlf) + (printout t "What YEAR model is the car?" crlf) + (printout t " " crlf) + (bind ?year (read)) + (printout t " " crlf) + (printout t "Does the car have gauges in the dash?" crlf) + (printout t " " crlf) + (bind ?dash (read)) + (printout t " " crlf) + (printout t " " crlf) + (printout t " " crlf) + (printout t " ") + (printout t "Thanks for the info. " crlf) + (printout t " " crlf) + (printout t " ") + (printout t "Let's look at the car now." crlf) + (assert (options airc ?air)) + (assert (options powers ?psteer)) + (assert (options powerb ?pbrake)) + (assert (options tran ?auto)) + (assert (options eng ?cyl)) + (assert (options drive ?rwd)) + (assert (options yr ?year)) + (assert (options dhgages ?dash)) + (assert (inspect the outside))) + + + ; USER INTERFACE TO RULES vis outside of car + + + (defrule vis1 + (inspect the outside) + => + (printout t " " crlf) + (printout t "Does the car seem to sit level?" crlf) + (printout t " " crlf) + (bind ?level (read)) + (assert (lvl ?level))) + + + + (defrule vis2 + + + + + + + + + (inspect the outside) + => + (printout t " " crlf) + (printout t "Do windows and doors fit correctly?" crlf) + (printout t " " crlf) + (bind ?wdfit (read)) + (assert (fit ?wdfit))) + + + (defrule vis3 + (inspect the outside) + => + (printout t " " crlf) + (printout t "Is the trunk clean and neat?" crlf) + (printout t " " crlf) + (bind ?trnk (read)) + (assert (trk ?trnk))) + + + (defrule vis4 + (inspect the outside) + => + (printout t " " crlf) + (printout t "Is there minor dents in the body?" crlf) + (printout t " " crlf) + (bind ?dent (read)) + (assert (dnt ?dent))) + + + (defrule vis5 + (inspect the outside) + => + (printout t " " crlf) + (printout t "When looking down the car do the") + (printout t " panels line up?" crlf) + (printout t " " crlf) + (bind ?pnls (read)) + (assert (pnl ?pnls))) + + + (defrule vis6 + (inspect the outside) + => + (printout t " " crlf) + (printout t "Is there obvious rust on the body?" crlf) + (printout t " " crlf) + (bind ?rust (read)) + (assert (rst ?rust))) + + + + (defrule vis6-5 + (inspect the outside) + => + + + + + + + + + (printout t " " crlf) + (printout t "Is the pressure good in all tires?" crlf) + (printout t " " crlf) + (bind ?tire (read)) + (assert (tir ?tire))) + + + ;RULES ABOUT CAR + ;--------------------------------------------------------- + + (defrule vis7 + ?rusty <- (rst ?rust) + (test (eq ?rust yes)) + => + (assert (CAR HAS BODY RUST)) + (retract ?rusty)) + + + + (defrule vis7-5 + (declare (salience -200)) + ?rusty <- (rst ?rust) + (test (eq ?rust no)) + => + (retract ?rusty)) + + + + (defrule vis8 + ?panel <- (pnl ?pnls) + (test (eq ?pnls no)) + => + (assert (MAY HAVE FRAME DAMAGE)) + (retract ?panel)) + + + (defrule vis8-5 + (declare (salience -200)) + ?panel <- (pnl ?pnls) + (test (eq ?pnls yes)) + => + (retract ?panel)) + + + + (defrule vis9 + ?dents <- (dnt ?dent) + (test (eq ?dent yes)) + => + (assert (PARKING LOT DAMAGE)) + (retract ?dents)) + + + + + + + + + + + + (defrule vis10 + ?trunk <- (trk ?truk) + (test (eq ?truk yes)) + => + (assert (WELL CARED FOR)) + (retract ?trunk)) + + + + (defrule vis11 + ?doors <- (fit ?wdfit) + (test (eq ?wdfit no)) + => + (assert (EVIDENCE OF MAJOR ACCIDENT)) + (retract ?doors)) + + + (defrule vis12 + ?even <- (lvl ?level) + (test (eq ?level no)) + => + (assert (POSSIBLE SUSPENSION PROBLEMS)) + (assert (POSSIBLE BENT FRAME)) + (retract ?even)) + + + + (defrule vis13 + ?tires <- (tir ?tire) + (test (eq ?tire no)) + => + (assert (UNEVEN TIRE PRESSURE)) + (retract ?tires)) + + + ;--------------------------------------------------------- + + ;USER INTERFACE engine compartment + + (defrule vis14 + (inspect the outside) + => + (printout t " " crlf) + (printout t "Do the engine belts show any wear?" crlf) + (printout t " " crlf) + (bind ?belt (read)) + (assert (blt ?belt))) + + + (defrule vis15 + (inspect the outside) + => + (printout t " " crlf) + (printout t "Do the hoses show any wear?" crlf) + + + + + + + + + (printout t " " crlf) + (bind ?hose (read)) + (assert (hos ?hose))) + + + (defrule vis16 + (inspect the outside) + => + (printout t " " crlf) + (printout t "Is there a smell of gasoline? " crlf) + (printout t " " crlf) + (bind ?gaso (read)) + (assert (gas ?gaso))) + + + (defrule vis17 + (inspect the outside) + => + (printout t " " crlf) + (printout t "Is the radiator fluid clean, green ") + (printout t "and full" crlf) + (printout t " " crlf) + (bind ?radr (read)) + (assert (rad ?radr))) + + + (defrule vis18 + (inspect the outside) + (options tran yes) + => + (printout t " " crlf) + (printout t "Does the transmission fluid look or ") + (printout t "smell burnt" crlf) + (printout t " " crlf) + (bind ?trany (read)) + (assert (tny ?trany))) + + + (defrule vis19 + (inspect the outside) + (options tran yes) + => + (printout t " " crlf) + (printout t "Is the transmission full of fluid?" crlf) + (printout t " " crlf) + (bind ?tranf (read)) + (assert (tnf ?tranf))) + + + (defrule vis20 + (inspect the outside) + => + (printout t " " crlf) + (printout t "Is the brake system full of fluid?" crlf) + + + + + + + + + (printout t " " crlf) + (bind ?brakf (read)) + (assert (bkf ?brakf))) + + + (defrule vis21 + (inspect the outside) + => + (printout t " " crlf) + (printout t "Is the engine full of oil?" crlf) + (printout t " " crlf) + (bind ?enoil (read)) + (assert (oil ?enoil))) + + + (defrule vis21-5 + (inspect the outside) + (options powers yes) + => + (printout t " " crlf) + (printout t "Is the steering system full of fluid?" crlf) + (printout t " " crlf) + (bind ?sterf (read)) + (assert (str ?sterf))) + + ; ENGINE VIS RULES + ;--------------------------------------------------------- + + + (defrule vis22 + ?belts <- (blt ?belt) + (test (eq ?belt yes)) + => + (assert (BELTS WORN)) + (retract ?belts)) + + + (defrule vis24 + ?hoses <- (hos ?hose) + (test (eq ?hose yes)) + => + (assert (HOSES WORN)) + (retract ?hoses)) + + + (defrule vis26 + ?gasss <- (gas ?gaso) + (test (eq ?gaso yes)) + => + (assert (FUEL SYSTEM LEAKING)) + (retract ?gasss)) + + + + + + + + + + + + (defrule vis28 + ?radtr <- (rad ?radr) + (test (eq ?radr no)) + => + (assert (POSSIBLE RADIATOR LEAK)) + (assert (WEAK RADIATOR FLUID)) + (assert (COOLING SYSTEM PROBLEM)) + (retract ?radtr)) + + + + (defrule vis30 + ?trans <- (tny ?trany) + (test (eq ?trany yes)) + => + (assert (MAJOR TRANSMISSION PROBLEM)) + (retract ?trans)) + + + (defrule vis33 + ?trnfl <- (tnf ?tranf) + (test (eq ?tranf no)) + => + (assert (POSSIBLE TRANSMISSION LEAK)) + (retract ?trnfl)) + + + (defrule vis35 + ?break <- (bkf ?brakf) + (test (eq ?brakf no)) + => + (assert (POSSIBLE BREAK SYSTEM LEAK)) + (assert (ADD BRAKE FLUID)) + (retract ?break)) + + + + (defrule vis37 + ?engno <- (oil ?enoil) + (test (eq ?enoil no)) + => + (assert (ENGINE OIL LEAK)) + (assert (NEED OIL)) + (retract ?engno)) + + + (defrule vis39 + ?steer <- (str ?sterf) + (test (eq ?sterf no)) + => + (assert (STEERING SYSTEM LEAK)) + (retract ?steer)) + + + + + + + + + + + ;--------------------------------------------------------- + + (defrule vis41 + (inspect the outside) + => + (printout t " " crlf) + (printout t "Bounce the corner of the car." crlf) + (printout t "Does the car bounce more than twice?" crlf) + (printout t " " crlf) + (bind ?shock (read)) + (assert (shck ?shock))) + + + (defrule vis42 + (inspect the outside) + => + (printout t " " crlf) + (printout t "Are either of the front tires worn" crlf) + (printout t "unevenly or different from each other" crlf) + (printout t " " crlf) + (bind ?trwer (read)) + (assert (trwr ?trwer))) + + + ;-------------------------------------------------------- + + + (defrule vis43 + ?shocks <- (shck ?shock) + (test (eq ?shock yes)) + => + (assert (BAD SHOCKS)) + (retract ?shocks)) + + + (defrule vis45 + ?tires <- (trwr ?trwer) + (test (eq ?trwer yes)) + => + (assert (UNEVEN TIRE WEAR)) + (retract ?tires)) + + + ;--------------------------------------------------------- + + + (defrule vis47 + (inspect the outside) + => + (printout t " " crlf) + (printout t "Is there any evidence of leaks" crlf) + (printout t "under the car?" crlf) + (printout t " " crlf) + (bind ?leaks (read)) + + + + + + + + + (assert (lks ?leaks))) + + + (defrule vis48 + (declare (salience -100)) + ?insp <- (inspect the outside) + => + (printout t " " crlf) + (printout t "Is the exhaust system of the car" crlf) + (printout t "rusted through in any of the pipes?" crlf) + (printout t " " crlf) + (assert (inspect eng run)) + (bind ?pipes (read)) + (retract ?insp) + (assert (pps ?pipes))) + + + (defrule vis48-5 + (inspect the outside) + (options yr ?year) + (test (<= 1980 ?year)) + => + (printout t " " crlf) + (printout t "Is the catalytic converter intact" crlf) + (printout t "on the exhaust system?" crlf) + (printout t " " crlf) + (bind ?convert (read)) + (assert (cnvrt ?convert))) + + + ;-------------------------------------------------------- + + + (defrule vis49 + ?leak <- (lks ?leaks) + (test (eq ?leaks yes)) + => + (assert (SYSTEM IS LEAKING)) + (retract ?leak)) + + + + (defrule vis51 + ?exhst <- (pps ?pipes) + (test (eq ?pipes yes)) + => + (assert (EXHAUST RUSTED OUT)) + (retract ?exhst)) + + + (defrule vis53 + ?vertr <- (cnvrt ?convert) + (test (eq ?convert no)) + => + + + + + + + + + (assert (CATALYTIC CONVERTER MISSING)) + (retract ?vertr)) + + + ;--------------------------------------------------------- + + (defrule eng1 + (declare (salience 100)) + (inspect eng run) + => + (bind ?count 0) + (while (<= ?count 20) + (printout t " " crlf) + (bind ?count (+ ?count 1))) + (printout t " ") + (printout t " ENGINE RUNNING INSPECTION" crlf) + (printout t " " crlf) + (printout t "In this phase of the inspection please") + (printout t " set the brake and start the engine." crlf) + (printout t " " crlf) + (printout t "Assuming the engine starts, hit ") + (printout t " to start the check out" crlf) + (bind ?answer (readline)) + (while (<= ?count 10) + (printout t " " crlf) + (bind ?count (+ ?count 1)))) + + ;--------------------------------------------------------- + + (defrule eng2 + (inspect eng run) + => + (printout t " " crlf) + (printout t "Does the steering wheel jump when the" crlf) + (printout t "car is first started?" crlf) + (printout t " " crlf) + (bind ?jump (read)) + (assert (swjump ?jump))) + + + (defrule eng3 + (inspect eng run) + => + (printout t " " crlf) + (printout t "Are there exhaust fumes in the car?" crlf) + (printout t " " crlf) + (bind ?fume (read)) + (assert (exhstf ?fume))) + + + (defrule eng4 + (inspect eng run) + => + (printout t " " crlf) + + + + + + + + + (printout t "Are there any ticking noises from" crlf) + (printout t "the engine?" crlf) + (printout t " " crlf) + (bind ?tick (read)) + (assert (noiset ?tick))) + + + + (defrule eng5 + (inspect eng run) + => + (printout t " " crlf) + (printout t "Are there any clunking noises from" crlf) + (printout t "the engine?" crlf) + (printout t " " crlf) + (bind ?clnk (read)) + (assert (noisec ?clnk))) + + + + (defrule eng6 + (inspect eng run) + => + (printout t " " crlf) + (printout t "Do all the gauges or lights show" crlf) + (printout t "normal engine operation?" crlf) + (printout t " " crlf) + (bind ?gage (read)) + (assert (gauges ?gage))) + + + (defrule eng6-5 + (inspect eng run) + (options dhgages yes) + => + (printout t " " crlf) + (printout t "When the car is first started, does" crlf) + (printout t "engine temp gauge show a warm engine" crlf) + (printout t " " crlf) + (bind ?warm (read)) + (assert (wrmeng ?warm))) + + + + (defrule eng7 + (inspect eng run) + => + (printout t " " crlf) + (printout t "Do the headlights work? " crlf) + (printout t " " crlf) + (bind ?hlgt (read)) + (assert (hdhght ?hlgt))) + + + + + + + + + + + (defrule eng8 + (inspect eng run) + => + (printout t " " crlf) + (printout t "Do the breaklights work? " crlf) + (printout t " " crlf) + (bind ?blgt (read)) + (assert (bkhght ?blgt))) + + + (defrule eng9 + (inspect eng run) + => + (printout t " " crlf) + (printout t "Do the turnsignals work? " crlf) + (printout t " " crlf) + (bind ?tnsl (read)) + (assert (trnsig ?tnsl))) + + + + (defrule eng10 + (inspect eng run) + => + (printout t " " crlf) + (printout t "Pump the brakes and hold them. " crlf) + (printout t "Do the brakes sink to the floor?" crlf) + (printout t " " crlf) + (bind ?sink (read)) + (assert (bksink ?sink))) + + + (defrule eng11 + (inspect eng run) + (options tran no) + => + (printout t " " crlf) + (printout t "Press the clutch pedal. " crlf) + (printout t "Is there a grinding or clatter?" crlf) + (printout t " " crlf) + (bind ?clgr (read)) + (assert (clgrnd ?clgr))) + + + (defrule eng12 + (inspect eng run) + (options tran no) + => + (printout t " " crlf) + (printout t "Set the parking brake. Shift to 1st" crlf) + (printout t "gear. Rev the engine SLIGHTLY and let" crlf) + (printout t "out the clutch. Does the engine stall?" crlf) + (printout t " " crlf) + (bind ?stall (read)) + + + + + + + + + (assert (clstall ?stall))) + + + (defrule eng13 + (inspect eng run) + => + (printout t " " crlf) + (printout t "Is the engine running rough? " crlf) + (printout t " " crlf) + (bind ?rogh (read)) + (assert (rough ?rogh))) + + + + (defrule eng14 + (declare (salience -100)) + (inspect eng run) + => + (printout t " " crlf) + (printout t "Is the radiator showing any leaks?" crlf) + (printout t " " crlf) + (bind ?prlk (read)) + (assert (final road test)) + (assert (pleak ?prlk))) + + + + (defrule eng14-1 + (inspect eng run) + => + (printout t " " crlf) + (printout t "What color is the exhaust?" crlf + "NONE" crlf "WHITE" crlf "BLACK" crlf "BLUE" crlf) + (printout t " " crlf) + (bind ?color (read)) + (assert (smoke ?color))) + + + ;----------------------------------------------------------- + + + + (defrule eng15 + ?leak <- (pleak ?prlk) + (test (eq ?prlk yes)) + => + (assert (HIGH PRESSURE RADIATOR LEAK)) + (retract ?leak)) + + + + (defrule eng17 + ?eng <- (rough ?rogh) + (test (eq ?rogh yes)) + + + + + + + + + => + (assert (ENGINE IDLE PROBLEM)) + (retract ?eng)) + + + (defrule eng19 + ?clutch <- (clstall ?stall) + (test (eq ?stall no)) + => + (assert (WORN CLUTCH)) + (retract ?clutch)) + + + (defrule eng21 + ?clutch <- (clgrnd ?clgr) + (test (eq ?clgr yes)) + => + (assert (WORN THROUGH OUT BEARING)) + (retract ?clutch)) + + + (defrule eng23 + ?breaks <- (blsink ?sink) + (test (eq ?sink yes)) + => + (assert (BREAKS FADE STATIC)) + (retract ?breaks)) + + + (defrule eng25 + ?lights <- (trnsig ?tnsl) + (test (eq ?tnsl no)) + => + (assert (TURN SIGNALS OUT)) + (retract ?lights)) + + + (defrule eng27 + ?lights <- (bkhght ?blgt) + (test (eq ?blgt no)) + => + (assert (BREAK LIGHTS OUT)) + (retract ?lights)) + + + (defrule eng29 + ?lights <- (hdhght ?hlgt) + (test (eq ?hlgt no)) + => + (assert (HEAD LIGHTS OUT)) + (retract ?lights)) + + + + + + + + + + + + (defrule eng31 + ?eng <- (wrmeng ?warm) + (test (eq ?warm yes)) + => + (assert (ENGINE RUN BEFORE INSPECTION)) + (retract ?eng)) + + + (defrule eng33 + ?gauge <- (gauges ?gage) + (test (eq ?gage no)) + => + (assert (GAUGES SHOW PROBLEM)) + (retract ?gauge)) + + + (defrule eng35 + ?eng <- (noisec ?clunk) + (test (eq ?clunk yes)) + => + (assert (LOWER ENGINE PROBLEM)) + (retract ?eng)) + + + (defrule eng37 + ?eng <- (noiset ?tick) + (test (eq ?tick yes)) + => + (assert (UPPER ENGINE PROBLEM)) + (retract ?eng)) + + + (defrule eng39 + ?exhst <- (exhstf ?fume) + (test (eq ?fume yes)) + => + (assert (EXHAUST LEAK INTO CABIN)) + (retract ?exhst)) + + + + (defrule eng41 + ?steer <- (swjump ?jump) + (test (eq ?jump yes)) + => + (assert (STEERING JUMPS)) + (retract ?steer)) + + + (defrule eng43 + ?xhaus <- (smoke ?color) + (test (eq ?color WHITE)) + => + (assert (WATER IN EXHAUST GAS)) + + + + + + + + + + + (retract ?xhaus)) + + + (defrule eng44 + ?xhaus <- (smoke ?color) + (test (eq ?color BLACK)) + => + (assert (CARBON IN EXHAUST GAS)) + (retract ?xhaus)) + + + (defrule eng45 + ?xhaus <- (smoke ?color) + (test (eq ?color BLUE)) + => + (assert (OIL IN EXHAUST GAS)) + (retract ?xhaus)) + + + (defrule eng47 + ?xhaus <- (smoke ?color) + (test (eq ?color NONE)) + => + (retract ?xhaus)) + + + (defrule road1 + (final road test) + => + (bind ?count 0) + (while (<= ?count 20) + (printout t " " crlf) + (bind ?count (+ ?count 1))) + (printout t "We now begin the final portion of the inspection" + crlf) + (printout t crlf) + (printout t " THE ROAD TEST" crlf crlf) + (printout t "If you feel the car is safe enough at this point," + crlf) + (printout t "take it on the road and try to answer the" crlf) + (printout t "following questions." crlf) + (bind ?count 0) + (while (<= ?count 10) + (printout t " " crlf) + (bind ?count (+ ?count 1)))) + + + (defrule road2 + (final road test) + => + (printout t crlf) + (printout t "Does the car pull to the left or right?" + crlf) + (printout t crlf) + + + + + + + + + (bind ?pull (read)) + (assert (pulls ?pull))) + + + (defrule road3 + (final road test) + => + (printout t crlf) + (printout t "When you hit the brakes, do they:" crlf) + (printout t crlf) + (printout t "PULL " crlf + "SQUEEL" crlf + "GRAB" crlf + "SINK" crlf + "NORMAL" crlf) + (printout t crlf) + (bind ?brek (read)) + (assert (break ?brek))) + + + (defrule road4 + (final road test) + => + (printout t crlf) + (printout t "Do whining noises come from the rear" crlf + "of the car at various speeds" crlf) + (printout t crlf) + (bind ?rend (read)) + (assert (reare ?rend))) + + + (defrule road5 + (final road test) + (options tran yes) + => + (printout t crlf) + (printout t "Is there a clunking sound when the " crlf + "transmission is put in gear?" crlf) + (printout t crlf) + (bind ?tran (read)) + (assert (clunk ?tran))) + + + (defrule road6 + (final road test) + => + (printout t crlf) + (printout t "Is the car overheating, steam from the" crlf + "hood, temp gauge reading too high?" crlf) + (printout t crlf) + (bind ?heat (read)) + (assert (oheat ?heat))) + + + + + + + + + + + + (defrule road7 + (declare (salience -100)) + ?final <- (final road test) + => + (retract ?final) + (printout t crlf) + (printout t "Is there a vibration that increases as" crlf + "your speed increases?" crlf) + (printout t crlf) + (bind ?vibe (read)) + (assert (compile the problems)) + (assert (vibes ?vibe))) + + + + (defrule road8 + ?puller <- (pulls ?pull) + (test (eq ?pull yes)) + => + (assert (CAR PULLS TO SIDE)) + (retract ?puller)) + + + (defrule road9 + ?breaks <- (break ?brek) + (test (eq ?brek pull)) + => + (assert (BREAKS PULL TO ONE SIDE)) + (retract ?breaks)) + + + (defrule road10 + ?breaks <- (break ?brek) + (test (eq ?brek grab)) + => + (assert (BREAKS GRAB)) + (retract ?breaks)) + + + (defrule road11 + ?breaks <- (break ?brek) + (test (eq ?brek squeel)) + => + (assert (BREAKS MAY NEED REPLACING)) + (retract ?breaks)) + + + (defrule road12 + ?breaks <- (break ?brek) + (test (eq ?brek sink)) + => + (assert (MAJOR BREAK SYSTEM PROBLEM)) + (retract ?breaks)) + + + + + + + + + (defrule road13 + ?breaks <- (break ?brek) + (test (eq ?brek normal)) + => + (retract ?breaks)) + + + (defrule road14 + ?rerend <- (reare ?rend) + (test (eq ?rend yes)) + => + (assert (PROBLEM WITH THIRD MEMBER)) + (retract ?rerend)) + + + (defrule road15 + ?ujoint <- (clunk ?tran) + (test (eq ?tran yes)) + => + (assert (FAILING UJOINTS)) + (retract ?ujoint)) + + + (defrule road16 + ?overht <- (oheat ?heat) + (test (eq ?heat yes)) + => + (assert (MAJOR COOLING SYSTEM FAILURE)) + (retract ?overht)) + + + (defrule road17 + ?frntnd <- (vibes ?vibe) + (test (eq ?vibe yes)) + => + (assert (POSSIBLE TIRE OUT OF BALANCE)) + (retract ?frntnd)) + + + (defrule compile1 + (declare (salience 100)) + (compile the problems) + => + (bind ?value 0) + (assert (estimated total ?value)) + (bind ?count 0) + (while (<= ?count 20) + (printout t " " crlf) + (bind ?count (+ ?count 1))) + (printout t "The question and answer phase is now over" + crlf crlf "I will now take the info you gave me and " + crlf crlf "determine the problems with the car." crlf + crlf "After each problem identified is a number. This" + crlf crlf "value rates the seriousness of the problem." + + + + + + + + + crlf crlf "If the values total 100 or more, the" crlf + crlf "recommendation is don't buy the car" crlf crlf + "Hit to proceed." crlf) + (bind ?answer (readline)) + (bind ?count 0) + (while (<= ?count 20) + (printout t " " crlf) + (bind ?count (+ ?count 1)))) + + + + (defrule compile1-1 + ?val <- (estimated value ?num) + ?tot <- (estimated total ?tot-num) + => + (retract ?val ?tot) + (assert (estimated total =(+ ?num ?tot-num)))) + + + + + + + (defrule compile2 + (compile the problems) + (CAR HAS BODY RUST) + => + (printout t " The obvious rust shows the car could have" + crlf "received better care than it was given." crlf + "This problem will not likely effect the mechanics of" + crlf "the car, but will gradually get worse unless" crlf + "expensive repairs are done immediately." crlf crlf + "Estimated Problem Value 20" crlf crlf crlf) (printout t + "Hit to proceed" crlf) + (bind ?answer (readline)) + (assert (estimated value 35))) + + + (defrule compile3 + (compile the problems) + (MAY HAVE FRAME DAMAGE) + (EVIDENCE OF MAJOR ACCIDENT) + (POSSIBLE BENT FRAME) + => + (printout t crlf crlf crlf crlf crlf + "This car has been involved in a serious accident" crlf + "Run do not walk away from this deal. The bent " crlf + "frame means costly repairs, and a dangerous car."crlf) + (printout t crlf "Estimated Problem Value 100" crlf crlf) + (printout t "Hit to proceed" crlf) + (bind ?answer (readline)) + (assert (estimated value 100))) + + + + + + + + + + + (defrule compile4 + (compile the problems) + (CAR PULLS TO SIDE) + (UNEVEN TIRE WEAR) + + => + (printout t crlf crlf crlf crlf crlf + "There is strong evidence for front suspension " crlf + "problems." crlf "This could be fixed by a front" crlf + "end alignment, or the problem could be serious" crlf + "enough for a complete rebuild of the front end" crlf + "Have this checked by a good mechanic" crlf crlf + "Estimated Problem Value 20" crlf crlf) + (printout t "Hit to proceed" crlf) + (bind ?answer (readline)) + (assert (estimated value 20))) + + + + (defrule compile5 + (compile the problems) + (BAD SHOCKS) + (UNEVEN TIRE WEAR) + + => + (printout t crlf crlf crlf crlf crlf + "Bad shocks are causing poor tire wear. Replace" crlf + "the shocks and ,if necessary, the tires." crlf crlf + "Estimated Problem Value 5" crlf crlf) + (printout t "Hit to proceed" crlf) + (bind ?answer (readline)) + (assert (estimated value 5))) + + + (defrule compile6 + (compile the problems) + (UNEVEN TIRE PRESSURE) + (CAR PULLS TO SIDE) + + => + (printout t crlf crlf crlf crlf crlf + "Car pulls to side in part due to uneven air" crlf + "pressure in the front tires. Check for leaks" crlf + "to be sure tires are in good shape." crlf crlf + "Estimated Problem Value 1" crlf crlf) + (printout t "Hit to proceed" crlf) + (bind ?answer (readline)) + (assert (estimated value 1))) + + + + (defrule compile7 + (compile the problems) + (BELTS WORN) + + + + + + + + + + => + (printout t crlf crlf crlf crlf crlf + "Worn engine belts indicate preventive maintenance" crlf + "is lacking in this car. Make sure your inspection" crlf + "is done with a fine toothed comb." crlf crlf + "Estimated Problem Value 1" crlf crlf) + (printout t "Hit to proceed" crlf) + (bind ?answer (readline)) + (assert (estimated value 1))) + + + + (defrule compile8 + (compile the problems) + (HOSES WORN) + + => + (printout t crlf crlf crlf crlf crlf + "Worn engine hoses indicate preventive maintenance" crlf + "is lacking in this car. Make sure your inspection" crlf + "is done with a fine toothed comb." crlf crlf + "Estimated Problem Value 1" crlf crlf) + (printout t "Hit to proceed" crlf) + (bind ?answer (readline)) + (assert (estimated value 1))) + + + + (defrule compile9 + (compile the problems) + (FUEL SYSTEM LEAKING) + + => + (printout t crlf crlf crlf crlf crlf + "The gas smell indicates a serious leak in the " crlf + "fuel system which could result in a fire. Do not " crlf + "drive the car in this condition!" crlf crlf + "Estimated Problem Value 50" crlf crlf) + (printout t "Hit to proceed" crlf) + (bind ?answer (readline)) + (assert (estimated value 50))) + + + + (defrule compile10 + (compile the problems) + (CATALYTIC CONVERTER MISSING) + + => + (printout t crlf crlf crlf crlf crlf + "The missing catalytic converter indicates the car" crlf + "has been modified illegally. You will not be able" crlf + "to drive this on any road until. the converter" crlf + + + + + + + + + "is replaced. Check for other evidence of modifications" + crlf crlf "Estimated Problem Value 20" crlf crlf) + (printout t "Hit to proceed" crlf) + (bind ?answer (readline)) + (assert (estimated value 20))) + + + (defrule compile11 + (compile the problems) + (OIL IN EXHAUST) + + => + (printout t crlf crlf crlf crlf crlf + "Blue exhaust shows advanced engine wear. High" crlf + "expenses make this problem serious." crlf crlf + "Estimated Problem Value 80" crlf crlf) + (printout t "Hit to proceed" crlf) + (bind ?answer (readline)) + (assert (estimated value 80))) + + + (defrule compile12 + (compile the problems) + (STEERING JUMPS) + (CAR PULLS TO SIDE) + (options powers yes) + + => + (printout t crlf crlf crlf crlf crlf + "There is a problem in the power steering system" crlf + "causing the car to pull. The pulling will get " crlf + "worse unless the steering control valve is replaced" + crlf crlf "Estimated Problem Value 22" crlf crlf) + (printout t "Hit to proceed" crlf) + (bind ?answer (readline)) + (assert (estimated value 22))) + + + + (defrule compile13 + (compile the problems) + (FAILING UJOINTS) + => + (printout t crlf crlf crlf crlf crlf + "The clunk when the transmission is placed into gear" + crlf "is caused by the drive shaft. In time the drive" + crlf "shaft will fall out. The fix is to replace the" + crlf "u-joints, a relatively minor operation" crlf crlf + "Estimated Problem Value 10" crlf crlf + "Hit to proceed" crlf) + (bind ?answer (readline)) + (assert (estimated value 10))) + + + + + + + + + + + (defrule compile14 + (compile the problems) + (POSSIBLE TIRE OUT OUT OF BALANCE) + => + (printout t crlf crlf crlf crlf crlf + "The increasing vibrations are caused by an out of"crlf + "balance tire" crlf crlf + "Estimated Problem Value 5" crlf crlf + "Hit to proceed" crlf) + (bind ?answer (readline)) + (assert (estimated value 5))) + + + (defrule compile15 + (compile the problems) + (PROBLEM WITH THIRD MEMBER) + => + (printout t crlf crlf crlf crlf crlf + "The sound from the rear end indicates a problem" crlf + "with the ring and pinion gears. Excessive wear is" crlf + "is likely to cause premature failure." crlf crlf + "Estimated Problem Value 30" crlf crlf + "Hit to proceed" crlf) + (bind ?answer (readline)) + (assert (estimated value 30))) + + + + (defrule compile16 + (compile the problems) + (LOWER ENGINE PROBLEM) + => + (printout t crlf crlf crlf crlf crlf + "The deep clunking noise from the engine indicates" crlf + "a major engine failure in the making. This calls for" + crlf "a complete engine rebuild" crlf crlf + "Estimated Problem Value 90" crlf crlf + "Hit to proceed" crlf) + (bind ?answer (readline)) + (assert (estimated value 90))) + + + (defrule compile17 + (compile the problems) + (UPPER ENGINE NOISE) + => + (printout t crlf crlf crlf crlf crlf + "The ticking indicates a valve train problem" crlf + "that might range from a simple adjustment to severe" + crlf "wear. " crlf crlf + "Estimated Problem Value 30" crlf crlf + "Hit to proceed" crlf) + (bind ?answer (readline)) + (assert (estimated value 30))) + + + + + + + + + (defrule compile18 + (compile the problems) + (COOLING SYSTEM PROBLEM) + (WATER IN EXHAUST GAS) + => + (printout t crlf crlf crlf crlf crlf + "The white exhaust is caused by water mixing" crlf + "with the fuel as it burns. A head gasket leak" crlf + "is the most common cause. When the gasket leak" crlf + "gets worse, serious damage could occur." crlf crlf + "Estimated Problem Value 60" crlf crlf + "Hit to proceed" crlf) + (bind ?answer (readline)) + (assert (estimated value 60))) + + + (defrule compile18 + (compile the problems) + (CARBON IN EXHAUST GAS) + => + (printout t crlf crlf crlf crlf crlf + "The black exhaust can be caused by many things," crlf + "from bad spark plugs to a faulty choke. Most" crlf + "problems can be solved at minor cost." crlf crlf + "Estimated Problem Value 7" crlf crlf + "Hit to proceed" crlf) + (bind ?answer (readline)) + (assert (estimated value 7))) + + + + + (defrule recomend1 + (declare (salience -100)) + (estimated total ?value) + (compile the problems) + (test (>= ?value 100)) + => + (printout t crlf crlf crlf crlf crlf + " " + "R E C O M M E N D A T I O N" crlf crlf + " DO NOT BUY THIS CAR" crlf crlf + " There is too much wrong for this car to be " crlf + " considered to be dependable." crlf crlf crlf crlf + crlf)) + + + + (defrule recomend2 + (declare (salience -100)) + (estimated total ?value) + (compile the problems) + (test (and (>= ?value 80) + (< ?value 100))) + + + + + + + + + => + (printout t crlf crlf crlf crlf crlf + " " + "R E C O M M E N D A T I O N" crlf crlf + " THIS IS NOT A GOOD CHOICE" crlf crlf + " Unless you can't live without this car or you" crlf + " have a friend that's a mechanic, leave it alone" crlf + crlf crlf crlf crlf crlf)) + + + + (defrule recomend3 + (declare (salience -100)) + (estimated total ?value) + (compile the problems) + (test (and (>= ?value 40) + (< ?value 60))) + => + (printout t crlf crlf crlf crlf crlf + " " + "R E C O M M E N D A T I O N" crlf crlf + " A REASONABLE CHOICE" crlf crlf + " There are some problems with the car but they" crlf + " may not be too serious. If you can't find a" crlf + " better deal, this will do." crlf crlf crlf crlf crlf + crlf)) + + + + (defrule recomend4 + (declare (salience -100)) + (estimated total ?value) + (compile the problems) + (test (and (>= ?value 60) + (< ?value 80))) + => + (printout t crlf crlf crlf crlf crlf + " " + "R E C O M M E N D A T I O N" crlf crlf + " A QUESTIONABLE CHOICE " crlf crlf + " There are many problems with the car. If you" crlf + " are a good mechanic this one's for you. If " crlf + " not, keep on looking! " crlf crlf crlf crlf crlf + crlf)) + + + + + (defrule recomend5 + (declare (salience -100)) + (estimated total ?value) + (compile the problems) + (test (and (>= ?value 20) + (< ?value 40))) + + + + + + + + + => + (printout t crlf crlf crlf crlf crlf + " " + "R E C O M M E N D A T I O N" crlf crlf + " A GOOD CHOICE " crlf crlf + " There are few problems with the car. Some " crlf + " items may need quick attention, but as a " crlf + " whole the car is not bad." crlf crlf crlf crlf crlf + crlf)) + + + (defrule recomend6 + (declare (salience -100)) + (estimated total ?value) + (compile the problems) + (test (and (>= ?value 0) + (< ?value 20))) + => + (printout t crlf crlf crlf crlf crlf + " " + "R E C O M M E N D A T I O N" crlf crlf + " BUY IT " crlf crlf + " Minor problems exist but no car is perfect. " crlf + " This car should be a good dependable means " crlf + " of transportation. " crlf crlf crlf crlf crlf + crlf)) + + + --- clips-6.24.orig/examples/date.clp +++ clips-6.24/examples/date.clp @@ -0,0 +1,26 @@ +; This is the date function +; for reasons of computational simplicity, the date is represented +; as an integer which represents days since jan 1 1900. + +; because CLIPS does not capture the return of system calls, the intermediate +; value is stored in a file. +(deffunction get-now () + (system "date '+%y%t%j' > datefile.dat") + (open "datefile.dat" datefile "r") + (bind ?year (read datefile)) + (bind ?day (read datefile)) + (close datefile) + ( +(div ?year 4) (* ?year 365) ?day) +) + +(deffunction elapsed-time (?date) + (- (get-now) ?date)) + +; is date more than 6 mo ago? +(deffunction six-months (?date) + (< 180 (elapsed-time ?date))) + +; is date more than 5 years ago? +(deffunction five-years (?date) + (< 1826 (elapsed-time ?date))) + --- clips-6.24.orig/examples/stove.clp +++ clips-6.24/examples/stove.clp @@ -0,0 +1,971 @@ +; +;******************************* +;** FINAL PROJECT ** +;** ** +;** BY THAD FIEBICH ** +;** FOR CSCI 5931 ** +;** EXPERT SYSTEMS ** +;** DR. GIARRATANO ** +;** SPRING 1987 ** +;** ** +;******************************* +; +; +; +; LOGIC OF THE PROGRAM +; ____________________________ +; +; The program is designed to diagnose a problem with a gas or electric +; stove and recommend the best way to fix the appliance. The problems +; and ways to fix the problem are as follows. +; +; First the program determines if the stove is electric or gas and if +; the problem is with the burners or the oven then +; +; PROBLEM +; +; no power to the stove +; Check the fuse box and reset any blown fuses. If this does not work +; call a professional +; +; ELECTRIC STOVE +; burner not working +; Trade places with a good element. If the element still does not work +; replace it. If the element now works then remove the element and +; check the terminals for a blue tinge or a black coating or if the +; ends are bent. All can mean that the terminal block unit is bad. +; Check the unit for burn marks and if found replace. Else test the +; burner switch and replace if bad. Else you have a bad wire and +; you must trace the wire from the power to the switch to the +; burner to find the problem. +; +; oven not working +; Test the oven element to see if the element is bad and replace if +; neccessary. Else check the switch and replace if bad. Else check +; for a bad wire. +; +; GAS STOVE +; burner not working +; Check the burner igniters and replace if bad. Else check the +; control switch and replace if bad. Else check the electrode +; unit and replace if bad. Else call a professional. +; +; oven not working +; Check the igniter for a glow. If none replace the igniter. Else +; check and clean the orffice and replace. Check for any leaks +; during reinstallation. Else call a professional. +; +; +;******************************** +;rule1: +; initializes the program +;******************************** + +(defrule init + (declare (salience 9980)) + ?x <- (initial-fact) => + (retract ?x) + (assert (need professional n)) + (assert (start))) + + +;**************************** +; rule2: +; used to end the program and call the init rule to +; reset the program +;**************************** + +(defrule end1 + (declare (salience 9200)) + ?w <- (stop) + => + (retract ?w) + (reset) + (halt)) + + + + + +;**************************** +;rule3: +; gives the opening message and asks what type of oven +; you have +;**************************** + +(defrule begin + (declare (salience -9000)) + ?x <- (start) => + (printout t crlf crlf crlf + "The program is designed to help in repairing an electric or" crlf + "gas stove. The program will take you step by step through" crlf + "the procedures to repair the appliance." crlf crlf + "do you have a" crlf + " 1) electric stove" crlf + " 2) gas stove" crlf + " 3) or exit the program" crlf + "Choose 1 - 3 -> ") + (retract ?x) + (assert (oven type =(read)))) + + +;**************************** +;rule4: +; checks to see that a correct selection was made from +; the opening message, if no redisplay message +;**************************** + +(defrule ck-select + (declare (salience 9998)) + ?x <- (oven type ?ch&:(not (numberp ?ch))) + (or (test (<= ?ch 0)) + (test (> ?ch 3))) => + (printout t crlf crlf + "*** your selection must be either 1,2, or 3 ***" crlf) + (retract ?x) + (assert (start))) + + +;**************************** +;rule5 +; asks if there is a burner problem +;**************************** + +(defrule burner-prob + (declare (salience -500)) + (oven type ?) => + (printout t crlf crlf "Is there a problem with the burners? y or n ") + (assert (burner problem =(read)))) + + +;**************************** +;rule6 +; asks if there is a oven problem +;**************************** + +(defrule oven-prob + (declare (salience -1000)) + (oven type ?) => + (printout t crlf crlf "Is there a problem with the oven? y or n ") + (assert (oven problem =(read)))) + + +;**************************** +;rule7 +; ask if there is any power going to the stove +;**************************** + +(defrule ck-power + (declare (salience 1500)) + (oven type 1) => + (printout t crlf crlf "Does the stove have any electrical power? y or n ") + (assert (power =(read)))) + + +;**************************** +;rule8 +; tells the user to check the breaker for a blown fuse +;**************************** + +(defrule ck-breaker + (declare (salience 100)) + ?x <- (power n) => + (printout t crlf crlf + "Go to your home fuse box and check the circuit breaker for" crlf + "the stove to see if it has been tripped. If it has, reset it" crlf + "and retry the stove." crlf crlf + "Is the stove still without power? y or n ") + (retract ?x) + (assert (still no power =(read)))) + + +;**************************** +;rule9 +; checks to see if still no power even after breaker checked +;**************************** + +(defrule still-prob + ?x <- (still no power y) => + (retract ?x) + (assert (need professional y)) + (assert (stop))) + + +;**************************** +;rule10 +; tells the user to let a professional handle the problem +; due to danger +;**************************** + +(defrule get-help + (declare (salience 9999)) + (need professional y) => + (printout t crlf crlf + "This problem may be serious and would be best left to a " crlf + "professional. Tring to continue to repair the stove could" crlf + "be dangerous." crlf crlf) + (assert (stop))) + + +;**************************** +;rule11 +; asks user what type of electric burner element type there is +;**************************** + +(defrule element-type + (oven type 1) + (burner problem y) => + (printout t crlf crlf "Is the burner element a " crlf crlf + " 1) push in/pull out type" crlf + " 2) screw in type" crlf crlf + "Choice -> ") + (assert (burner type =(read)))) + + +;**************************** +;rule12 +; checks to see if a burner of the same size as the problem +; element is working +;**************************** + +(defrule any-elect-working + (oven type 1) + (burner problem y) => + (printout t crlf crlf + "Is at least one burner of each size still working? y or n ") + (assert (some work =(read)))) + + +;*************************** +;rule 13 +; rule to trade a working element with a nonworking to test +;*************************** + +(defrule element-trade + ?x <- (some work y) => + (printout t crlf crlf + "Remove the element that is not working properly and exchange" crlf + "it with another burner element of the same size." crlf crlf + "*** be sure to cut the power before working ***" crlf crlf + "Turn both element controls to high. Is the element that " crlf + "was not working properly still not working? y or n ") + (retract ?x) + (assert (bad element =(read)))) + + +;*************************** +;rule14 +; determines the element is bad +;*************************** + +(defrule bad-element + ?x <- (bad element y) + => + (printout t crlf crlf + "The burner element is bad. You must replace the bad " crlf + "element. Afterward, check the burner and if there" crlf + "is still a problem rerun this program." crlf) + (retract ?x) + (assert (stop))) + + +;*************************** +;rule 15 +; tells user to use a ohmmeter to test element +;*************************** + +(defrule element-trade2 + ?x <- (some work n) => + (printout t crlf crlf + "Since you do not have another working element to interchange" crlf + "with, you will have to test the element with a ohmmeter. Cut" crlf + "the power to the stove and remove the burner. Place a probe" crlf + "from the ohmmeter on each of the terminals of the element." crlf + "Does the ohmmeter register 0 resistance? y or n ") + (retract ?x) + (assert (bad element =(read)))) + + +;***************************** +;rule16 +; check for bent terminals +;***************************** + +(defrule ck-element1 + (declare (salience -20)) + (burner problem y) + (burner type 1) => + (printout t crlf crlf + "Check the ends of the termnials." crlf + "Do they appear bent? y or n ") + (assert (terminals bent =(read)))) + + +;*************************** +;rule17 +; rule for if there is a bent terminal +;*************************** + +(defrule bent-terminals + ?x <- (terminals bent y) => + (printout t crlf crlf + "This shows that the element was installed improperly." crlf + "This can cause terminal block failure." crlf) + (retract ?x) + (assert (check terminal block))) + + +;*************************** +;rule18 +; checks if black coating on terminals +;*************************** + +(defrule ck-element2 + (declare (salience -10)) + (burner problem y) + (burner type 1) => + (printout t crlf crlf + "Check the ends of the terminals. Is there any sign of a black" crlf + "coating on the terminals? y or n ") + (assert (black coating =(read)))) + + +;**************************** +;rule 19 +; rule for if black coating found on terminals +;**************************** + +(defrule black-coating + ?x <- (black coating y) + => + (printout t crlf crlf + "This is caused from a bad contact with the terminals to the" crlf + "terminal block." crlf) + (assert (check terminal block)) + (retract ?x)) + + +;**************************** +;rule20 +; rule to test if a blue tinge on terminals +;**************************** + +(defrule blue-tinge + (declare (salience -10)) + (burner problem y) + (burner type ?) => + (printout t crlf crlf + "Check the ends of the terminals for any sign of a blue" crlf + "tinge. Does one exist? y or n ") + (assert (blue tinge =(read)))) + + +;**************************** +;rule21 +; rule for if blue tinge found on terminals +;**************************** + +(defrule blue-tinge-exists + ?x <- (blue tinge y) => + (printout t crlf crlf + "This is causd from grease being splattered onto the terminals" crlf + "and then being heated to a high temperature. This can cause " crlf + "terminal block failure" crlf) + (retract ?x) + (assert (check terminal block))) + + +;**************************** +;rule22 +; asks user to check the terminal block unit for burn marks +;**************************** + +(defrule ck-terminal-block + ?x <- (check terminal block) => + (printout t crlf crlf + "Shine a light inside the terminal block." crlf + "Do the contacts inside appear to be burned? y or n ") + (retract ?x) + (assert (burned contacts =(read)))) + + +;**************************** +;rule 23 +; rule for if burn marks found on terminal block unit +;**************************** + +(defrule burned-contacts + ?x <- (burned contacts y) + => + (printout t crlf crlf + "Replace the terminal block unit for the burner. Afterward" crlf + "sand the terminal ends with a fine sand paper or steel wool." crlf + "Reinstall the unit and check the burner. If there is still" crlf + "a problem then rerun this program." crlf) + (retract ?x) + (assert (stop))) + +;**************************** +;rule24: +; checks to see if there is any wear on the element +; surface +;**************************** + +(defrule ck-element-for-wear + (declare (salience -10)) + (oven type 1) + (burner problem y) => + (printout t crlf crlf + "Electric range elements use nichrome wires made of a nickle" crlf + "and chromium alloy covered by a metal sheathing with a black" crlf + "coating. Does the outside coating of the element appear to " crlf + "have worn away at any point? y or n ") + (assert (element worn =(read)))) + +;**************************** +;rule25: +; handles if the element is worn +;**************************** + +(defrule element-worn + ?x <- (element worn y) + => + (printout t crlf crlf + "The nichrome wire has touched the sheathing and the wire has " crlf + "burned out. Replace the element. Afterward recheck the " crlf + "burner. If there is still a problem rerun this program." crlf) + (retract ?x) + (assert (stop))) + +;**************************** +;rule26: +; rule to check if any crimped wires +;**************************** + +(defrule ck-wires + (declare (salience -100)) + (bad element n) => + (printout t crlf crlf + "You must now lift up the top of the stove and check the wires" crlf + "leading to the nonworking element." crlf + "Do the wires appear crimped? y or n ") + (assert (crimped wire =(read)))) + +;**************************** +;rule27: +; handles if there is a crimped wire +;**************************** + +(defrule crimped-wire + ?x <- (crimped wire y) + => + (printout t crlf crlf + "First be sure the stove is unplugged. Next strip the" crlf + "insulation away from the crimped area and twist the loose" crlf + "end together. Solder the wire and cover the splice with" crlf + "a ceramic nut." crlf + "*** CAUTION - do not use a plastic nut as the high temperature" crlf + " will cause it to melt" crlf + "Afterward, plug the stove in and recheck the element. If there" crlf + "is still a problem rerun this program." crlf) + (retract ?x) + (assert (stop))) + +;**************************** +;rule27: +; rule to handle if no crimped wire found +;**************************** + +(defrule no-crimped-area + ?x <- (crimped wire n) => + (printout t crlf crlf + "Unplug the stove. Next, remove the screws from the control" crlf + "panel and lean the panel forward. You may have to remove " crlf + "screws from the rear of the panel. Label the wires leading" crlf + "to the control switch of the nonworking element and those " crlf + "of a working element of the same size. Switch the wires of" crlf + "the elements and plug the stove back in. Turn the element" crlf + "to high. Does the bad element appear to be working while" crlf + "the good element is not? y or n ") + (retract ?x) + (assert (switch bad =(read)))) + +;**************************** +;rule28 +; rule to handle if a bad switch exists +;**************************** + +(defrule bad-switch + ?x <- (switch bad y) + => + (printout t crlf crlf + "Replace the switch of the nonworking element and hook the" crlf + "wires back to there original places. Afterward retest the" crlf + "element. If there is still a problem rerun this program." crlf) + (retract ?x) + (assert (stop))) + +;***************************** +;rule29: +; rule to handle if the switch is not bad +;***************************** + +(defrule good-switch + ?x <- (switch bad n) + => + (printout t crlf crlf + "You have a bad wire somewhere between the switch and the " crlf + "nonworking element. You must trace the wire to the problem" crlf + "and replace the bad area. Afterward recheck the burner. If" crlf + "there is still a problem rerun this program." crlf) + (retract ?x) + (assert (stop))) + + +;**************************** +;rule30 +; gives first step to perform if there is a electric +; oven problem +;**************************** + +(defrule oven-ck + (oven type 1) + (oven problem y) => + (printout t crlf crlf + "Turn on the oven to 400 degrees and determine which of the oven" crlf + "elements are not working. Turn off the stove and let cool." crlf + "Unplug the stove and remove the stove holding the nonworking" crlf + "element in place. Pull the element toward you. The element" crlf + "will be held by power wires with connectors or screws." crlf + "Remove the wires and remove the element. Test the element" crlf + "with a ohmmeter by placing a probe on each terminal." crlf + "Does the meter register 0 resistance? y or n ") + (assert (bad oven element =(read)))) + +;**************************** +;rule31: +; handles if a bad oven element exists +;**************************** + +(defrule bad-oven-element + ?x <- (bad oven element y) => + (printout t crlf crlf + "The oven element is bad and must be replaced. Replace the" crlf + "element and retry the oven. If there is still a problem" crlf + "rerun this program." crlf) + (retract ?x) + (assert (stop))) + +;**************************** +;rule32 +; handles if the oven element is good +;**************************** + +(defrule good-oven-element + (declare (salience 100)) + (bad oven element n) => + (printout t crlf crlf + "Look for a wiring diagram for the oven selector switch pasted" crlf + "on the inner side of the back panel or in the owners manual." crlf + "If there is no wiring diagram use the one in the manual for" crlf + "this program. Using the chart, test the switch with a " crlf + "ohmmeter. Unplug the oven. Open the control panel to reach the" crlf + "contacts of the switch. Label the wires and disconnect the wires" crlf + "from the switch. Label the wires and disconnect the wires from "crlf + "the switch."crlf + "Hold leads to terminals L1 and BK." crlf + "Is there 0 resistance? y or n ") + (assert (switch failed =(read)))) + +;**************************** +;rule33: +; rule to check the oven switch +;**************************** + +(defrule ck-switch1 + (bad oven element n) + (switch failed ~y) + => + (printout t crlf crlf + "Hold leads to terminals PL and N." crlf + "Is there 0 resistance? y or n ") + (assert (switch failed =(read)))) + +;**************************** +;rule34: +; rule to check the oven switch +;**************************** + +(defrule ck-switch2 + (declare (salience -10)) + (bad oven element n) + (switch failed ~y) + => + (printout t crlf crlf + "Hold leads to terminals PL and BR." crlf + "Is there 0 resistance? y or n ") + (assert (switch failed =(read)))) + + +;*************************** +;rule35: +; rule to check the oven broiler switch +;*************************** + +(defrule ck-switch3 + (declare (salience -100)) + (bad oven element n) + (switch failed ~y) + => + (printout t crlf crlf + "To test the broiler:" crlf + "Hold leads to terminals L1 and BR." crlf + "Is there 0 resistance? y or n ") + (assert (switch failed =(read)))) + +;***************************** +;rule36: +; rule to check the oven broiler switch +;***************************** + +(defrule ck-switch4 + (declare (salience -150)) + (bad oven element n) + (switch failed ~y) + => + (printout t crlf crlf + "Hold leads to L1 and PL." crlf + "Is there 0 resistance? y or n ") + (assert (switch failed =(read)))) + + +;**************************** +;rule37: +; rule for if there is a bad oven switch +;**************************** + +(defrule switch-failed + (declare (salience 10)) + ?x <- (switch failed y) + => + (printout t crlf crlf + "You must replace the switch. Afterward, hook the wires back" crlf + "to the original state and retest the oven. If there is " crlf + "still a problem rerun this program." crlf) + (retract ?x) + (assert (stop))) + +;**************************** +;rule38: +; rule to see if the clock is set +;**************************** + +(defrule test-clock + (declare (salience 200)) + (bad oven element n) => + (printout t crlf crlf + "Check the clock timer. Is it set to AUTOMATIC? y or n ") + (assert (clock on =(read)))) + + +;***************************** +;rule39: +; rule if clock is set +;***************************** + +(defrule clock-set + (declare (salience 200)) + ?x <- (clock on y) + => + (printout t crlf crlf + "The oven won't work until the time set on the clock is" crlf + "reached. Set the switch to manual and retest the oven." crlf + "If there is still a problem, rerun this program." crlf) + (retract ?x) + (assert (stop))) + +;**************************** +;rule40: +; rule to test the temperature control switch +;**************************** + +(defrule temp-control + (declare (salience -100)) + (oven type 1) + (oven problem y) => + (printout t crlf crlf + "Now we will chwck the oven temperature control switch. See" crlf + "if there is a wiring diagram pasted on the oven or in the" crlf + "owners manual for the temperature control switch. If not,"crlf + "use the one in the manual for this program. Unplug the stove."crlf + "remove the screws and open the control panel. Label the wires" crlf + "Turn the switch to 300 degrees. Using a ohmmeter, place the " crlf + "leads on contacts 1 and 2 and turn the switch to broil." crlf + "Is there 0 resistance? y or n ") + (assert (temp switch good =(read)))) + + +;**************************** +;rule41: +; rule to test temperature control switch +;**************************** + +(defrule temp-control2 + (temp switch good ~n) => + (printout t crlf crlf + "Hold leads to terminals 1 and 3 and turn the control switch" crlf + "to bake." crlf + "Is there 0 resistance? y or n ") + (assert (temp switch good =(read)))) + +;**************************** +;rule42: +; rule to test temperature control switch +;**************************** + +(defrule tenp-control3 + ?x <- (temp switch good n) => + (printout t crlf crlf + "You will have to replace the switch. Afterward, hook the wires" crlf + "back up to the original state plug it back in and test the oven." crlf + "If there is still a problem, rerun this program.") + (retract ?x) + (assert (stop))) + + +;********************************* +;* gas stove rules start here **** +;********************************* + +;**************************** +;rule43: +; first rule if there is a gas stove +;**************************** + +(defrule gas-stove + (declare (salience 100)) + (oven type 2) + (burner problem y) => + (printout t crlf crlf + "Do you have " crlf + " 1) gas fed igniters" crlf + " 2) spark igniters" crlf crlf + "Choose 1 or 2 ") + (assert (igniter type =(read)))) + +;**************************** +;rule44: +; rule to handle if the igniter is gas fed +;**************************** + +(defrule gas-fed + (declare (salience 100)) + ?x <- (igniter type 1) => + (printout t crlf crlf + "Turn off the gas while replacing any part" crlf) + (retract ?x)) + + +;*************************** +;rule45: +; rule to handle if the igniter is electric +;*************************** + +(defrule igniter-type + (declare (salience 100)) + ?x <- (igniter type 2) => + (printout t crlf crlf + "Unplug the stove while replacing any part" crlf) + (retract ?x)) + +;*************************** +;rule46: +; checks the gas burners +;*************************** + +(defrule gas-burners + (oven type 2) + (burner problem y) => + (printout t crlf crlf + "Each pair of burners uses a common igniter. Is one burner" crlf + "out while the other burner that uses the same igniter, still" crlf + "working? y or n ") + (assert (gas switch bad =(read)))) + + +;**************************** +;rule47: +; rule to handle if a bad igniter +;**************************** + +(defrule bad-igniter + ?x <- (gas switch bad y) + ?y <- (burner problem ?) + => + (printout t crlf crlf + "Replace the control switch of the nonworking burner as" crlf + "water has probably dripped into it causing a short." crlf + "Replace and recheck the burner. If there is still a problem" crlf + "then rerun this program.") + (retract ?x ?y) + (assert (stop))) + +;**************************** +;rule48: +; rule to check the igniter +;**************************** + +(defrule ck-igniter + (declare (salience -100)) + (oven type 2) + ?x <- (burner problem y) + => + (printout t crlf crlf + "If both burners, sharing the same igniter are not working then" crlf + "unplug the stove. At the module, disconnect and reverse the" crlf + "wires to the 2 electrodes. Restore electricity and retry all" crlf + "burners. If the problem was the right side burners and now" crlf + "the left side do not work, or visa versa, the replace the " crlf + "electrode on the problem side. Before pulling the electrode/" crlf + "wiring assembly out of the range, cut off the old electrode" crlf + "tape the ends of the new wires to the old wires and fish the" crlf + "old wires out of the range while fishing the new wires in." crlf + "If there is still a problem, rerun this program." crlf) + (retract ?x) + (assert (stop))) + + +;**************************** +;rule49: +; rule to check the oven igniter +;**************************** + +(defrule gas-oven + (oven type 2) + (oven problem y) => + (printout t crlf crlf + "Turn on the oven and look inside." crlf + "Does the carbordium igniter glow? y or n ") + (assert (oven igniter good =(read)))) + + +;***************************** +;rule50: +; rule for if there is a bad oven igniter +;***************************** + +(defrule bad-oven-igniter + ?x <- (oven igniter good n) => + (printout t crlf crlf + "Replace the oven igniter coil." crlf crlf + "** CAUTION - do not touch the coil during installation as" crlf + " oil from your fingers will ruin it ***" crlf crlf + "Afterward, if there is still a problem rerun this program. " crlf) + (retract ?x) + (assert (stop))) + +;**************************** +;rule51: +; rule for if the oven igniter is good +;**************************** + +(defrule good-oven-igniter + (oven igniter good y) => + (printout t crlf crlf + "Do you have a gas fed pilot igniter? y or n ") + (assert (gas fed igniter =(read)))) + + +;**************************** +;rule52: +; rule for if there is a gas fed igniter +;**************************** + +(defrule gas-fed-igniter + ?x <- (gas fed igniter y) => + (printout t crlf crlf + "A spill over might have clogged the orfice. Unscrew the jet" crlf + "and clean it and replace it. Spread a detergent soap and water" crlf + "solution around the base of the jet and turn the gas back on." crlf + "If bubbles begin to form at the base, retighten the jet and " crlf + "recheck. If bubbles persist, turn off the gas, remove the jet," crlf + "and spread a pipe-joint compound around the threads and " crlf + "reinstall the jet. Check for a leak again." crlf + "Do bubbles continue to form? y or n ") + (retract ?x ) + (assert (bubbles =(read)))) + +;**************************** +;rule53: +; rule for checking for gas leaks during cleaning of +; the orffice +;**************************** + +(defrule bubbles + ?x <- (bubbles y) + ?y <- (need professional ?) => + (retract ?x ?y) + (assert (need professional y))) + + +;**************************** +;rule54: +; rule for if there are no bubbles (leak check) +;**************************** + +(defrule no-bubbles + ?x <- (bubbles n) => + (printout t crlf crlf + "Recheck the oven. If there is still a problem rerun this program." crlf) + (retract ?x) + (assert (stop))) + + +;**************************** +;rule55: +; handles if the problem is best suited for a +; professional +;**************************** + +(defrule no-gas-fed-pilot + (gas fed igniter n) + ?x <- (need professional ?) => + (printout t crlf crlf + "The problem would best be left to a professional as there is" crlf + "a danger working with the remaining gas parts.") + (retract ?x) + (assert (need professional y))) + + +;**************************** +;rule56: +; this rule handles if the user wants to exit the +; program +;**************************** + +(defrule quit + (declare (salience 9700)) + (oven type 3) + => + (printout t crlf crlf crlf crlf + "Exiting the program " crlf crlf) + (assert (stop)) + (assert (quit))) + + +;**************************** +;rule57: +; rule to handle when user quits system +;**************************** + +(defrule finished + (declare (salience 9990)) + ?w <- (quit) + => + (retract ?w) + (halt)) + + + + + --- clips-6.24.orig/examples/auto.clp +++ clips-6.24/examples/auto.clp @@ -0,0 +1,192 @@ + +;;;====================================================== +;;; Automotive Expert System +;;; +;;; This expert system diagnoses some simple +;;; problems with a car. +;;; +;;; CLIPS Version 6.0 Example +;;; +;;; To execute, merely load, reset and run. +;;;====================================================== + +;;**************** +;;* DEFFUNCTIONS * +;;**************** + +(deffunction ask-question (?question $?allowed-values) + (printout t ?question) + (bind ?answer (read)) + (if (lexemep ?answer) + then (bind ?answer (lowcase ?answer))) + (while (not (member ?answer ?allowed-values)) do + (printout t ?question) + (bind ?answer (read)) + (if (lexemep ?answer) + then (bind ?answer (lowcase ?answer)))) + ?answer) + +(deffunction yes-or-no-p (?question) + (bind ?response (ask-question ?question yes no y n)) + (if (or (eq ?response yes) (eq ?response y)) + then TRUE + else FALSE)) + +;;;********************** +;;;* ENGINE STATE RULES * +;;;********************** + +(defrule normal-engine-state-conclusions "" + (declare (salience 10)) + (working-state engine normal) + => + (assert (repair "No repair needed.")) + (assert (spark-state engine normal)) + (assert (charge-state battery charged)) + (assert (rotation-state engine rotates))) + +(defrule unsatisfactory-engine-state-conclusions "" + (declare (salience 10)) + (working-state engine unsatisfactory) + => + (assert (charge-state battery charged)) + (assert (rotation-state engine rotates))) + +;;;*************** +;;;* QUERY RULES * +;;;*************** + +(defrule determine-engine-state "" + (not (working-state engine ?)) + (not (repair ?)) + => + (if (yes-or-no-p "Does the engine start (yes/no)? ") + then + (if (yes-or-no-p "Does the engine run normally (yes/no)? ") + then (assert (working-state engine normal)) + else (assert (working-state engine unsatisfactory))) + else + (assert (working-state engine does-not-start)))) + +(defrule determine-rotation-state "" + (working-state engine does-not-start) + (not (rotation-state engine ?)) + (not (repair ?)) + => + (if (yes-or-no-p "Does the engine rotate (yes/no)? ") + then + (assert (rotation-state engine rotates)) + (assert (spark-state engine irregular-spark)) + else + (assert (rotation-state engine does-not-rotate)) + (assert (spark-state engine does-not-spark)))) + +(defrule determine-sluggishness "" + (working-state engine unsatisfactory) + (not (repair ?)) + => + (if (yes-or-no-p "Is the engine sluggish (yes/no)? ") + then (assert (repair "Clean the fuel line.")))) + +(defrule determine-misfiring "" + (working-state engine unsatisfactory) + (not (repair ?)) + => + (if (yes-or-no-p "Does the engine misfire (yes/no)? ") + then + (assert (repair "Point gap adjustment.")) + (assert (spark-state engine irregular-spark)))) + +(defrule determine-knocking "" + (working-state engine unsatisfactory) + (not (repair ?)) + => + (if (yes-or-no-p "Does the engine knock (yes/no)? ") + then + (assert (repair "Timing adjustment.")))) + +(defrule determine-low-output "" + (working-state engine unsatisfactory) + (not (symptom engine low-output | not-low-output)) + (not (repair ?)) + => + (if (yes-or-no-p "Is the output of the engine low (yes/no)? ") + then + (assert (symptom engine low-output)) + else + (assert (symptom engine not-low-output)))) + +(defrule determine-gas-level "" + (working-state engine does-not-start) + (rotation-state engine rotates) + (not (repair ?)) + => + (if (not (yes-or-no-p "Does the tank have any gas in it (yes/no)? ")) + then + (assert (repair "Add gas.")))) + +(defrule determine-battery-state "" + (rotation-state engine does-not-rotate) + (not (charge-state battery ?)) + (not (repair ?)) + => + (if (yes-or-no-p "Is the battery charged (yes/no)? ") + then + (assert (charge-state battery charged)) + else + (assert (repair "Charge the battery.")) + (assert (charge-state battery dead)))) + +(defrule determine-point-surface-state "" + (or (and (working-state engine does-not-start) + (spark-state engine irregular-spark)) + (symptom engine low-output)) + (not (repair ?)) + => + (bind ?response + (ask-question "What is the surface state of the points (normal/burned/contaminated)? " + normal burned contaminated)) + (if (eq ?response burned) + then + (assert (repair "Replace the points.")) + else (if (eq ?response contaminated) + then (assert (repair "Clean the points."))))) + +(defrule determine-conductivity-test "" + (working-state engine does-not-start) + (spark-state engine does-not-spark) + (charge-state battery charged) + (not (repair ?)) + => + (if (yes-or-no-p "Is the conductivity test for the ignition coil positive (yes/no)? ") + then + (assert (repair "Repair the distributor lead wire.")) + else + (assert (repair "Replace the ignition coil.")))) + +(defrule no-repairs "" + (declare (salience -10)) + (not (repair ?)) + => + (assert (repair "Take your car to a mechanic."))) + +;;;**************************** +;;;* STARTUP AND REPAIR RULES * +;;;**************************** + +(defrule system-banner "" + (declare (salience 10)) + => + (printout t crlf crlf) + (printout t "The Engine Diagnosis Expert System") + (printout t crlf crlf)) + +(defrule print-repair "" + (declare (salience 10)) + (repair ?item) + => + (printout t crlf crlf) + (printout t "Suggested Repair:") + (printout t crlf crlf) + (format t " %s%n%n%n" ?item)) + --- clips-6.24.orig/examples/ttt.clp +++ clips-6.24/examples/ttt.clp @@ -0,0 +1,270 @@ + +;;;====================================================== +;;; Tic Tac Toe Sample Problem +;;; +;;; This is a rather simple tic tac toe expert +;;; system. It will usually win if possible, but +;;; won't always stop you from winning. +;;; +;;; To execute, merely load, reset and run. +;;;====================================================== + +(deffacts initial-state + (square 1 1 " " corner) + (square 2 1 " " side) + (square 3 1 " " corner) + (square 1 2 " " side) + (square 2 2 " " center) + (square 3 2 " " side) + (square 1 3 " " corner) + (square 2 3 " " side) + (square 3 3 " " corner)) + +;;;****************************************** +;;; evaluate board for blocks, wins, and ties +;;;****************************************** + +(defrule evaluate-potential-win "" + (evaluate board for ?) + (square ?row1 ?col1 ?pl&~" " ?) + (square ?row2 ?col2 " " ?) + (test (or (!= ?row1 ?row2) (!= ?col1 ?col2))) + (square ?row3 ?col3 " " ?type) + (test (and (or (!= ?row1 ?row3) (!= ?col1 ?col3)) + (or (!= ?row2 ?row3) (!= ?col2 ?col3)))) + (test (or (and (= ?row1 ?row2) + (= ?row1 ?row3)) + (and (= ?col1 ?col2) + (= ?col1 ?col3)) + (and (= (+ ?row1 ?col1) (+ ?row2 ?col2)) + (= (+ ?row1 ?col1) (+ ?row3 ?col3))) + (and (= (- ?row1 ?col1) (- ?row2 ?col2)) + (= (- ?row1 ?col1) (- ?row3 ?col3))))) + => + (assert (potential-win ?row3 ?col3 ?type ?pl))) + +(defrule evaluate-immediate-block-or-win "" + (evaluate board for ?) + (square ?row1 ?col1 ?pl&~" " ?) + (square ?row2 ?col2 ?pl ?) + (test (or (!= ?row1 ?row2) (!= ?col1 ?col2))) + (square ?row3 ?col3 " " ?type) + (test (and (or (!= ?row1 ?row3) (!= ?col1 ?col3)) + (or (!= ?row2 ?row3) (!= ?col2 ?col3)))) + (test (or (and (= ?row1 ?row2) + (= ?row1 ?row3)) + (and (= ?col1 ?col2) + (= ?col1 ?col3)) + (and (= (+ ?row1 ?col1) (+ ?row2 ?col2)) + (= (+ ?row1 ?col1) (+ ?row3 ?col3))) + (and (= (- ?row1 ?col1) (- ?row2 ?col2)) + (= (- ?row1 ?col1) (- ?row3 ?col3))))) + => + (assert (immediate-block-or-win ?row3 ?col3 ?type ?pl))) + +(defrule tie-game "" + ?phase <- (evaluate board for ?) + (not (square ? ? " " ?)) + => + (retract ?phase) + (printout t "The game has ended in a tie." t)) + +;;;***************************** +;;; rules for the computers move +;;;***************************** + +(defrule move-computer-to-win + ?phase <- (player-move computer) + (computer is ?cs) + ?dummy <- (immediate-block-or-win ?row ?col ?type ?cs) + ?square <- (square ?row ?col ? ?) + => + (assert (display board)) + (retract ?dummy ?phase ?square) + (assert (square ?row ?col ?cs ?type)) + (printout t "Computer moves to win!" t)) + +(defrule move-computer-to-block "" + ?phase <- (player-move computer) + (computer is ?cs) + (not (immediate-block-or-win ? ? ? ?cs)) + (human is ?hs) + ?dummy <- (immediate-block-or-win ?row ?col ?type ?hs) + ?square <- (square ?row ?col ? ?) + => + (retract ?dummy ?phase ?square) + (assert (display board)) + (assert (square ?row ?col ?cs ?type)) + (assert (next-move human))) + +(defrule move-to-center "" + ?phase <- (player-move computer) + (computer is ?cs) + (not (immediate-block-or-win ? ? ? ?)) + ?square <- (square ? ? " " center) + => + (retract ?phase ?square) + (assert (display board)) + (assert (square 2 2 ?cs center)) + (assert (next-move human))) + +(defrule move-to-corner "" + (computer is ?cs) + ?phase <- (player-move computer) + (not (immediate-block-or-win ? ? ? ?)) + ?square <- (square ?row ?col " " corner) + (not (square ? ? " " center)) + => + (retract ?phase ?square) + (assert (display board)) + (assert (square ?row ?col ?cs corner)) + (assert (next-move human))) + +(defrule move-to-side "" + ?phase <- (player-move computer) + (computer is ?cs) + (not (immediate-block-or-win ? ? ? ?)) + ?square <- (square ?row ?col " " side) + (not (square ? ? " " corner)) + (not (square ? ? " " center)) + => + (retract ?phase ?square) + (assert (display board)) + (assert (square ?row ?col ?cs side)) + (assert (next-move human))) + +;;;******************************************* +;;; Get human move and determine validity +;;;******************************************* + +(defrule human-input "" + (player-move human) + => + (printout t "Column? ") + (bind ?col (read)) + (printout t "Row? ") + (bind ?row (read)) + (printout t crlf) + (assert (human-to ?col ?row))) + +(defrule valid-human-move "" + ?phase <- (player-move human) + (human is ?hs) + ?move <- (human-to ?row ?col) + ?square <- (square ?row ?col " " ?type) + => + (assert (display board)) + (retract ?phase ?move ?square) + (assert (square ?row ?col ?hs ?type)) + (assert (valid-move ?row ?col))) + +(defrule human-winning-move "" + ?move <- (valid-move ?row ?col) + (human is ?hs) + ?info <- (immediate-block-or-win ?row ?col ?type ?hs) + => + (retract ?move ?info) + (printout t "You have made the winning move!" t)) + +(defrule human-blocking-move "" + ?move <- (valid-move ?row ?col) + (computer is ?cs) + ?info <- (immediate-block-or-win ? ? ?type ?cs) + => + (retract ?info ?move) + (assert (next-move computer))) + +(defrule no-block-or-win-for-human "" + ?move <- (valid-move ?row ?col) + (not (immediate-block-or-win ? ? ? ?)) + => + (retract ?move) + (assert (next-move computer))) + +(defrule invalid-human-move "" + ?phase <- (player-move human) + ?move <- (human-to ?row ?col) + (square ?row ?col ~" " ?) + => + (printout t "Invalid move. Try another." t) + (retract ?phase ?move) + (assert (player-move human))) + +;;;****************************** +;;; cleanup rules +;;;****************************** + +(defrule cleanup-1 "" + (cleanup for ?) + ?trash <- (immediate-block-or-win ? ? ? ?) + => + (retract ?trash)) + +(defrule cleanup-2 "" + (cleanup for ?) + ?trash <- (potential-win ? ? ? ?) + => + (retract ?trash)) + +;;;****************************** +;;; phase control rules +;;;****************************** + +(defrule setup "" + => + (printout t "Should the computer move first? ") + (bind ?resp (read)) + (printout t t) + (if (or (eq ?resp yes) (eq ?resp y)) + then + (assert (computer is o)) + (assert (human is x)) + (assert (evaluate board for computer)) + else + (assert (computer is x)) + (assert (human is o)) + (assert (evaluate board for human)))) + +(defrule cleanup-for-player "" + (declare (salience -10)) + ?phase <- (next-move ?player) + => + (retract ?phase) + (assert (cleanup for ?player))) + +(defrule switch-to-evaluate "" + (declare (salience -10)) + ?phase <- (cleanup for ?player) + => + (retract ?phase) + (assert (evaluate board for ?player))) + +(defrule switch-to-move "" + (declare (salience -10)) + ?phase <- (evaluate board for ?player) + => + (retract ?phase) + (printout t "*********" t) + (printout t ?player " move" t) + (printout t "*********" t) + (assert (player-move ?player))) + +(defrule board "" + ?phase <- (display board) + (square 1 1 ?p1-1 ?) + (square 2 1 ?p2-1 ?) + (square 3 1 ?p3-1 ?) + (square 1 2 ?p1-2 ?) + (square 2 2 ?p2-2 ?) + (square 3 2 ?p3-2 ?) + (square 1 3 ?p1-3 ?) + (square 2 3 ?p2-3 ?) + (square 3 3 ?p3-3 ?) + => + (retract ?phase) + (format t "%nBoard:%n%n") + (format t " %s|%s|%s%n" ?p1-1 ?p2-1 ?p3-1) + (format t " -----%n") + (format t " %s|%s|%s%n" ?p1-2 ?p2-2 ?p3-2) + (format t " -----%n") + (format t " %s|%s|%s%n%n" ?p1-3 ?p2-3 ?p3-3)) --- clips-6.24.orig/examples/animal.clp +++ clips-6.24/examples/animal.clp @@ -0,0 +1,393 @@ +;;;====================================================== +;;; Animal Identification Expert System +;;; +;;; A simple expert system which attempts to identify +;;; an animal based on its characteristics. +;;; The knowledge base in this example is a +;;; collection of facts which represent backward +;;; chaining rules. CLIPS forward chaining rules are +;;; then used to simulate a backward chaining inference +;;; engine. +;;; +;;; CLIPS Version 6.0 Example +;;; +;;; To execute, merely load, reset, and run. +;;; Answer questions yes or no. +;;;====================================================== + +;;;*************************** +;;;* DEFTEMPLATE DEFINITIONS * +;;;*************************** + +(deftemplate rule + (multislot if) + (multislot then)) + +;;;************************** +;;;* INFERENCE ENGINE RULES * +;;;************************** + +(defrule propagate-goal "" + (goal is ?goal) + (rule (if ?variable $?) + (then ?goal ? ?value)) + => + (assert (goal is ?variable))) + +(defrule goal-satified "" + (declare (salience 30)) + ?f <- (goal is ?goal) + (variable ?goal ?value) + (answer ? ?text ?goal) + => + (retract ?f) + (format t "%s%s%n" ?text ?value)) + +(defrule remove-rule-no-match "" + (declare (salience 20)) + (variable ?variable ?value) + ?f <- (rule (if ?variable ? ~?value $?)) + => + (retract ?f)) + +(defrule modify-rule-match "" + (declare (salience 20)) + (variable ?variable ?value) + ?f <- (rule (if ?variable ? ?value and $?rest)) + => + (modify ?f (if ?rest))) + +(defrule rule-satisfied "" + (declare (salience 20)) + (variable ?variable ?value) + ?f <- (rule (if ?variable ? ?value) + (then ?goal ? ?goal-value)) + => + (retract ?f) + (assert (variable ?goal ?goal-value))) + +(defrule ask-question-no-legalvalues "" + (declare (salience 10)) + (not (legalanswers $?)) + ?f1 <- (goal is ?variable) + ?f2 <- (question ?variable ? ?text) + => + (retract ?f1 ?f2) + (format t "%s " ?text) + (assert (variable ?variable (read)))) + +(defrule ask-question-legalvalues "" + (declare (salience 10)) + (legalanswers ? $?answers) + ?f1 <- (goal is ?variable) + ?f2 <- (question ?variable ? ?text) + => + (retract ?f1) + (format t "%s " ?text) + (printout t ?answers " ") + (bind ?reply (read)) + (if (member (lowcase ?reply) ?answers) + then (assert (variable ?variable ?reply)) + (retract ?f2) + else (assert (goal is ?variable)))) + +;;;*************************** +;;;* DEFFACTS KNOWLEDGE BASE * +;;;*************************** + +(deffacts knowledge-base + (goal is type.animal) + (legalanswers are yes no) + (rule (if backbone is yes) + (then superphylum is backbone)) + (rule (if backbone is no) + (then superphylum is jellyback)) + (question backbone is "Does your animal have a backbone?") + (rule (if superphylum is backbone and + warm.blooded is yes) + (then phylum is warm)) + (rule (if superphylum is backbone and + warm.blooded is no) + (then phylum is cold)) + (question warm.blooded is "Is the animal warm blooded?") + (rule (if superphylum is jellyback and + live.prime.in.soil is yes) + (then phylum is soil)) + (rule (if superphylum is jellyback and + live.prime.in.soil is no) + (then phylum is elsewhere)) + (question live.prime.in.soil is "Does your animal live primarily in soil?") + (rule (if phylum is warm and + has.breasts is yes) + (then class is breasts)) + (rule (if phylum is warm and + has.breasts is no) + (then type.animal is bird/penguin)) + (question has.breasts is "Normally, does the female of your animal nurse its young with milk?") + (rule (if phylum is cold and + always.in.water is yes) + (then class is water)) + (rule (if phylum is cold and + always.in.water is no) + (then class is dry)) + (question always.in.water is "Is your animal always in water?") + (rule (if phylum is soil and + flat.bodied is yes) + (then type.animal is flatworm)) + (rule (if phylum is soil and + flat.bodied is no) + (then type.animal is worm/leech)) + (question flat.bodied is "Does your animal have a flat body?") + (rule (if phylum is elsewhere and + body.in.segments is yes) + (then class is segments)) + (rule (if phylum is elsewhere and + body.in.segments is no) + (then class is unified)) + (question body.in.segments is "Is the animals body in segments?") + (rule (if class is breasts and + can.eat.meat is yes) + (then order is meat)) + (rule (if class is breasts and + can.eat.meat is no) + (then order is vegy)) + (question can.eat.meat is "Does your animal eat red meat?") + (rule (if class is water and + boney is yes) + (then type.animal is fish)) + (rule (if class is water and + boney is no) + (then type.animal is shark/ray)) + (question boney is "Does your animal have a boney skeleton?") + (rule (if class is dry and + scally is yes) + (then order is scales)) + (rule (if class is dry and + scally is no) + (then order is soft)) + (question scally is "Is your animal covered with scaled skin?") + (rule (if class is segments and + shell is yes) + (then order is shell)) + (rule (if class is segments and + shell is no) + (then type.animal is centipede/millipede/insect)) + (question shell is "Does your animal have a shell?") + (rule (if class is unified and + digest.cells is yes) + (then order is cells)) + (rule (if class is unified and + digest.cells is no) + (then order is stomach)) + (question digest.cells is "Does your animal use many cells to digest it's food instead of a stomach?") + (rule (if order is meat and + fly is yes) + (then type.animal is bat)) + (rule (if order is meat and + fly is no) + (then family is nowings)) + (question fly is "Can your animal fly?") + (rule (if order is vegy and + hooves is yes) + (then family is hooves)) + (rule (if order is vegy and + hooves is no) + (then family is feet)) + (question hooves is "Does your animal have hooves?") + (rule (if order is scales and + rounded.shell is yes) + (then type.animal is turtle)) + (rule (if order is scales and + rounded.shell is no) + (then family is noshell)) + (question rounded.shell is "Does the animal have a rounded shell?") + (rule (if order is soft and + jump is yes) + (then type.animal is frog)) + (rule (if order is soft and + jump is no) + (then type.animal is salamander)) + (question jump is "Does your animal jump?") + (rule (if order is shell and + tail is yes) + (then type.animal is lobster)) + (rule (if order is shell and + tail is no) + (then type.animal is crab)) + (question tail is "Does your animal have a tail?") + (rule (if order is cells and + stationary is yes) + (then family is stationary)) + (rule (if order is cells and + stationary is no) + (then type.animal is jellyfish)) + (question stationary is "Is your animal attached permanently to an object?") + (rule (if order is stomach and + multicelled is yes) + (then family is multicelled)) + (rule (if order is stomach and + multicelled is no) + (then type.animal is protozoa)) + (question multicelled is "Is your animal made up of more than one cell?") + (rule (if family is nowings and + opposing.thumb is yes) + (then genus is thumb)) + (rule (if family is nowings and + opposing.thumb is no) + (then genus is nothumb)) + (question opposing.thumb is "Does your animal have an opposing thumb?") + (rule (if family is hooves and + two.toes is yes) + (then genus is twotoes)) + (rule (if family is hooves and + two.toes is no) + (then genus is onetoe)) + (question two.toes is "Does your animal stand on two toes/hooves per foot?") + (rule (if family is feet and + live.in.water is yes) + (then genus is water)) + (rule (if family is feet and + live.in.water is no) + (then genus is dry)) + (question live.in.water is "Does your animal live in water?") + (rule (if family is noshell and + limbs is yes) + (then type.animal is crocodile/alligator)) + (rule (if family is noshell and + limbs is no) + (then type.animal is snake)) + (question limbs is "Does your animal have limbs?") + (rule (if family is stationary and + spikes is yes) + (then type.animal is sea.anemone)) + (rule (if family is stationary and + spikes is no) + (then type.animal is coral/sponge)) + (question spikes is "Does your animal normally have spikes radiating from it's body?") + (rule (if family is multicelled and + spiral.shell is yes) + (then type.animal is snail)) + (rule (if family is multicelled and + spiral.shell is no) + (then genus is noshell)) + (question spiral.shell is "Does your animal have a spiral-shaped shell?") + (rule (if genus is thumb and + prehensile.tail is yes) + (then type.animal is monkey)) + (rule (if genus is thumb and + prehensile.tail is no) + (then species is notail)) + (question prehensile.tail is "Does your animal have a prehensile tail?") + (rule (if genus is nothumb and + over.400 is yes) + (then species is 400)) + (rule (if genus is nothumb and + over.400 is no) + (then species is under400)) + (question over.400 is "Does an adult normally weigh over 400 pounds?") + (rule (if genus is twotoes and + horns is yes) + (then species is horns)) + (rule (if genus is twotoes and + horns is no) + (then species is nohorns)) + (question horns is "Does your animal have horns?") + (rule (if genus is onetoe and + plating is yes) + (then type.animal is rhinoceros)) + (rule (if genus is onetoe and + plating is no) + (then type.animal is horse/zebra)) + (question plating is "Is your animal covered with a protective plating?") + (rule (if genus is water and + hunted is yes) + (then type.animal is whale)) + (rule (if genus is water and + hunted is no) + (then type.animal is dolphin/porpoise)) + (question hunted is "Is your animal, unfortunately, commercially hunted?") + (rule (if genus is dry and + front.teeth is yes) + (then species is teeth)) + (rule (if genus is dry and + front.teeth is no) + (then species is noteeth)) + (question front.teeth is "Does your animal have large front teeth?") + (rule (if genus is noshell and + bivalve is yes) + (then type.animal is clam/oyster)) + (rule (if genus is noshell and + bivalve is no) + (then type.animal is squid/octopus)) + (question bivalve is "Is your animal protected by two half-shells?") + (rule (if species is notail and + nearly.hairless is yes) + (then type.animal is man)) + (rule (if species is notail and + nearly.hairless is no) + (then subspecies is hair)) + (question nearly.hairless is "Is your animal nearly hairless?") + (rule (if species is 400 and + land.based is yes) + (then type.animal is bear/tiger/lion)) + (rule (if species is 400 and + land.based is no) + (then type.animal is walrus)) + (question land.based is "Is your animal land based?") + (rule (if species is under400 and + thintail is yes) + (then type.animal is cat)) + (rule (if species is under400 and + thintail is no) + (then type.animal is coyote/wolf/fox/dog)) + (question thintail is "Does your animal have a thin tail?") + (rule (if species is horns and + one.horn is yes) + (then type.animal is hippopotamus)) + (rule (if species is horns and + one.horn is no) + (then subspecies is nohorn)) + (question one.horn is "Does your animal have one horn?") + (rule (if species is nohorns and + lives.in.desert is yes) + (then type.animal is camel)) + (rule (if species is nohorns and + lives.in.desert is no) + (then type.animal is giraffe)) + (question lives.in.desert is "Does your animal normally live in the desert?") + (rule (if species is teeth and + large.ears is yes) + (then type.animal is rabbit)) + (rule (if species is teeth and + large.ears is no the type.animal is rat/mouse/squirrel/beaver/porcupine)) + (question large.ears is "Does your animal have large ears?") + (rule (if species is noteeth and + pouch is yes) + (then type.animal is "kangaroo/koala bear")) + (rule (if species is noteeth and + pouch is no) + (then type.animal is mole/shrew/elephant)) + (question pouch is "Does your animal have a pouch?") + (rule (if subspecies is hair and + long.powerful.arms is yes) + (then type.animal is orangutan/gorilla/chimpanzie)) + (rule (if subspecies is hair and + long.powerful.arms is no) + (then type.animal is baboon)) + (question long.powerful.arms is "Does your animal have long, powerful arms?") + (rule (if subspecies is nohorn and + fleece is yes) + (then type.animal is sheep/goat)) + (rule (if subspecies is nohorn and + fleece is no) + (then subsubspecies is nofleece)) + (question fleece is "Does your animal have fleece?") + (rule (if subsubspecies is nofleece and + domesticated is yes) + (then type.animal is cow)) + (rule (if subsubspecies is nofleece and + domesticated is no) + (then type.animal is deer/moose/antelope)) + (question domesticated is "Is your animal domesticated?") + (answer is "I think your animal is a " type.animal)) + --- clips-6.24.orig/examples/dilemma3.clp +++ clips-6.24/examples/dilemma3.clp @@ -0,0 +1,229 @@ + +;;;====================================================== +;;; Farmer's Dilemma Problem +;;; +;;; Another classic AI problem (cannibals and the +;;; missionary) in agricultural terms. The point is +;;; to get the farmer, the fox the cabbage and the +;;; goat across a stream. +;;; But the boat only holds 2 items. If left +;;; alone with the goat, the fox will eat it. If +;;; left alone with the cabbage, the goat will eat +;;; it. +;;; This example uses rules and object pattern +;;; matching to solve the problem. +;;; +;;; CLIPS Version 6.0 Example +;;; +;;; To execute, merely load, reset and run. +;;;====================================================== + +;;;*********** +;;;* CLASSES * +;;;*********** + +;;; The status instances hold the state +;;; information of the search tree. + +(defclass status (is-a USER) + (role concrete) + (pattern-match reactive) + (slot search-depth + (create-accessor write) + (type INTEGER) (range 1 ?VARIABLE) (default 1)) + (slot parent + (create-accessor write) + (type INSTANCE-ADDRESS) (default ?DERIVE)) + (slot farmer-location + (create-accessor write) + (type SYMBOL) (allowed-symbols shore-1 shore-2) (default shore-1)) + (slot fox-location + (create-accessor write) + (type SYMBOL) (allowed-symbols shore-1 shore-2) (default shore-1)) + (slot goat-location + (create-accessor write) + (type SYMBOL) (allowed-symbols shore-1 shore-2) (default shore-1)) + (slot cabbage-location + (create-accessor write) + (type SYMBOL) (allowed-symbols shore-1 shore-2) (default shore-1)) + (slot last-move + (create-accessor write) + (type SYMBOL) (allowed-symbols no-move alone fox goat cabbage) + (default no-move))) + +;;; The moves instances hold the information of all the moves +;;; made to reach a given state. + +(defclass moves (is-a USER) + (role concrete) + (pattern-match reactive) + (slot id + (create-accessor write) + (type INSTANCE)) + (multislot moves-list + (create-accessor write) + (type SYMBOL) + (allowed-symbols no-move alone fox goat cabbage))) + +(defclass opposite-of + (is-a USER) + (role concrete) + (pattern-match reactive) + (slot value (create-accessor write)) + (slot opposite-value (create-accessor write))) + +;;;***************** +;;;* INITIAL STATE * +;;;***************** + +(definstances startups + (of status) + (of opposite-of (value shore-1) (opposite-value shore-2)) + (of opposite-of (value shore-2) (opposite-value shore-1))) + +;;;*********************** +;;;* GENERATE PATH RULES * +;;;*********************** + +(defrule move-alone + ?node <- (object (is-a status) + (search-depth ?num) + (farmer-location ?fs)) + (object (is-a opposite-of) (value ?fs) (opposite-value ?ns)) + => + (duplicate-instance ?node + (search-depth (+ 1 ?num)) + (parent ?node) + (farmer-location ?ns) + (last-move alone))) + +(defrule move-with-fox + ?node <- (object (is-a status) + (search-depth ?num) + (farmer-location ?fs) + (fox-location ?fs)) + (object (is-a opposite-of) (value ?fs) (opposite-value ?ns)) + => + (duplicate-instance ?node + (search-depth (+ 1 ?num)) + (parent ?node) + (farmer-location ?ns) + (last-move fox) + (fox-location ?ns))) + +(defrule move-with-goat + ?node <- (object (is-a status) + (search-depth ?num) + (farmer-location ?fs) + (goat-location ?fs)) + (object (is-a opposite-of) (value ?fs) (opposite-value ?ns)) + => + (duplicate-instance ?node + (search-depth (+ 1 ?num)) + (parent ?node) + (farmer-location ?ns) + (last-move goat) + (goat-location ?ns))) + +(defrule move-with-cabbage + ?node <- (object (is-a status) + (search-depth ?num) + (farmer-location ?fs) + (cabbage-location ?fs)) + (object (is-a opposite-of) (value ?fs) (opposite-value ?ns)) + => + (duplicate-instance ?node + (search-depth (+ 1 ?num)) + (parent ?node) + (farmer-location ?ns) + (last-move cabbage) + (cabbage-location ?ns))) + +;;;****************************** +;;;* CONSTRAINT VIOLATION RULES * +;;;****************************** + +(defrule fox-eats-goat + (declare (salience 200)) + ?node <- (object (is-a status) + (farmer-location ?s1) + (fox-location ?s2&~?s1) + (goat-location ?s2)) + => + (unmake-instance ?node)) + +(defrule goat-eats-cabbage + (declare (salience 200)) + ?node <- (object (is-a status) + (farmer-location ?s1) + (goat-location ?s2&~?s1) + (cabbage-location ?s2)) + => + (unmake-instance ?node)) + +(defrule circular-path + (declare (salience 200)) + (object (is-a status) + (search-depth ?sd1) + (farmer-location ?fs) + (fox-location ?xs) + (goat-location ?gs) + (cabbage-location ?cs)) + ?node <- (object (is-a status) + (search-depth ?sd2&:(< ?sd1 ?sd2)) + (farmer-location ?fs) + (fox-location ?xs) + (goat-location ?gs) + (cabbage-location ?cs)) + => + (unmake-instance ?node)) + +;;;********************************* +;;;* FIND AND PRINT SOLUTION RULES * +;;;********************************* + +(defrule recognize-solution + (declare (salience 100)) + ?node <- (object (is-a status) + (parent ?parent) + (farmer-location shore-2) + (fox-location shore-2) + (goat-location shore-2) + (cabbage-location shore-2) + (last-move ?move)) + => + (unmake-instance ?node) + (make-instance of moves + (id ?parent) (moves-list ?move))) + +(defrule further-solution + (declare (salience 100)) + ?state <- (object (is-a status) + (parent ?parent) + (last-move ?move)) + ?mv <- (object (is-a moves) + (id ?state) + (moves-list $?rest)) + => + (modify-instance ?mv (id ?parent) (moves-list ?move ?rest))) + +(defrule print-solution + (declare (salience 100)) + ?mv <- (object (is-a moves) + ;(id [no-parent]) + (moves-list no-move $?m)) + => + (unmake-instance ?mv) + (printout t t "Solution found: " t t) + (bind ?length (length ?m)) + (bind ?i 1) + (bind ?shore shore-2) + (while (<= ?i ?length) + (bind ?thing (nth$ ?i ?m)) + (if (eq ?thing alone) + then (printout t "Farmer moves alone to " ?shore "." t) + else (printout t "Farmer moves with " ?thing " to " ?shore "." t)) + (if (eq ?shore shore-1) + then (bind ?shore shore-2) + else (bind ?shore shore-1)) + (bind ?i (+ 1 ?i)))) --- clips-6.24.orig/examples/circuit2.clp +++ clips-6.24/examples/circuit2.clp @@ -0,0 +1,64 @@ +;;;====================================================== +;;; Example Circuit #2 +;;; +;;; An example circuit to be loaded for use with +;;; the "electronic.clp" example program. This +;;; circuit implements the logical functions +;;; (not (and S1 S2)) and (or (not S1) (not S2)) +;;; which are equivalent and uses them as input +;;; to an XOR gate. Thus the output of the +;;; XOR gate X1 should always be zero and the +;;; LED L1 should also always be zero. +;;; +;;; LEGEND +;;; ------------ +;;; S = Source +;;; P = Splitter +;;; N = NOT Gate +;;; A = AND Gate +;;; O = OR Gate +;;; X = XOR Gate +;;; L = LED +;;; +;;; +;;; /--------------\ +;;; S1>--P1>-| A1>------N1>----------\ +;;; | /-----/ X1>---L1 +;;; | | /-------/ +;;; \--------)------N2>-----\ | +;;; | O1>--/ +;;; /--------/ /---/ +;;; S2>--P2>-| | +;;; \---------------N3>-/ +;;; +;;;====================================================== + +(definstances circuit + (S-1 of SOURCE) + (S-2 of SOURCE) + (P-1 of SPLITTER) + (P-2 of SPLITTER) + (A-1 of AND-GATE) + (N-1 of NOT-GATE) + (N-2 of NOT-GATE) + (N-3 of NOT-GATE) + (O-1 of OR-GATE) + (X-1 of XOR-GATE) + (L-1 of LED)) + +(deffunction connect-circuit () + (connect [S-1] [P-1]) + (connect [S-2] [P-2]) + (connect [P-1] 1 [A-1] 1) + (connect [P-1] 2 [N-2]) + (connect [P-2] 1 [A-1] 2) + (connect [P-2] 2 [N-3]) + (connect [A-1] [N-1]) + (connect [N-2] [O-1] 1) + (connect [N-3] [O-1] 2) + (connect [N-1] [X-1] 1) + (connect [O-1] [X-1] 2) + (connect [X-1] [L-1])) + + + --- clips-6.24.orig/examples/wine.clp +++ clips-6.24/examples/wine.clp @@ -0,0 +1,392 @@ + +;;;====================================================== +;;; Wine Expert Sample Problem +;;; +;;; WINEX: The WINe EXpert system. +;;; This example selects an appropriate wine +;;; to drink with a meal. +;;; +;;; CLIPS Version 6.0 Example +;;; +;;; To execute, merely load, reset and run. +;;;====================================================== + +(defmodule MAIN (export ?ALL)) + +;;**************** +;;* DEFFUNCTIONS * +;;**************** + +(deffunction MAIN::ask-question (?question ?allowed-values) + (printout t ?question) + (bind ?answer (read)) + (if (lexemep ?answer) then (bind ?answer (lowcase ?answer))) + (while (not (member ?answer ?allowed-values)) do + (printout t ?question) + (bind ?answer (read)) + (if (lexemep ?answer) then (bind ?answer (lowcase ?answer)))) + ?answer) + +;;***************** +;;* INITIAL STATE * +;;***************** + +(deftemplate MAIN::attribute + (slot name) + (slot value) + (slot certainty (default 100.0))) + +(defrule MAIN::start + (declare (salience 10000)) + => + (set-fact-duplication TRUE) + (focus QUESTIONS CHOOSE-QUALITIES WINES PRINT-RESULTS)) + +(defrule MAIN::combine-certainties "" + (declare (salience 100) + (auto-focus TRUE)) + ?rem1 <- (attribute (name ?rel) (value ?val) (certainty ?per1)) + ?rem2 <- (attribute (name ?rel) (value ?val) (certainty ?per2)) + (test (neq ?rem1 ?rem2)) + => + (retract ?rem1) + (modify ?rem2 (certainty (/ (- (* 100 (+ ?per1 ?per2)) (* ?per1 ?per2)) 100)))) + +;;****************** +;;* QUESTION RULES * +;;****************** + +(defmodule QUESTIONS (import MAIN ?ALL) (export ?ALL)) + +(deftemplate QUESTIONS::question + (slot attribute (default ?NONE)) + (slot the-question (default ?NONE)) + (multislot valid-answers (default ?NONE)) + (slot already-asked (default FALSE)) + (multislot precursors (default ?DERIVE))) + +(defrule QUESTIONS::ask-a-question + ?f <- (question (already-asked FALSE) + (precursors) + (the-question ?the-question) + (attribute ?the-attribute) + (valid-answers $?valid-answers)) + => + (modify ?f (already-asked TRUE)) + (assert (attribute (name ?the-attribute) + (value (ask-question ?the-question ?valid-answers))))) + +(defrule QUESTIONS::precursor-is-satisfied + ?f <- (question (already-asked FALSE) + (precursors ?name is ?value $?rest)) + (attribute (name ?name) (value ?value)) + => + (if (eq (nth 1 ?rest) and) + then (modify ?f (precursors (rest$ ?rest))) + else (modify ?f (precursors ?rest)))) + +(defrule QUESTIONS::precursor-is-not-satisfied + ?f <- (question (already-asked FALSE) + (precursors ?name is-not ?value $?rest)) + (attribute (name ?name) (value ~?value)) + => + (if (eq (nth 1 ?rest) and) + then (modify ?f (precursors (rest$ ?rest))) + else (modify ?f (precursors ?rest)))) + +;;******************* +;;* WINEX QUESTIONS * +;;******************* + +(defmodule WINE-QUESTIONS (import QUESTIONS ?ALL)) + +(deffacts WINE-QUESTIONS::question-attributes + (question (attribute main-component) + (the-question "Is the main component of the meal meat, fish, or poultry? ") + (valid-answers meat fish poultry unknown)) + (question (attribute has-turkey) + (precursors main-component is turkey) + (the-question "Does the meal have turkey in it? ") + (valid-answers yes no unknown)) + (question (attribute has-sauce) + (the-question "Does the meal have a sauce on it? ") + (valid-answers yes no unknown)) + (question (attribute sauce) + (precursors has-sauce is yes) + (the-question "Is the sauce for the meal spicy, sweet, cream, or tomato? ") + (valid-answers sauce spicy sweet cream tomato unknown)) + (question (attribute tastiness) + (the-question "Is the flavor of the meal delicate, average, or strong? ") + (valid-answers delicate average strong unknown)) + (question (attribute preferred-body) + (the-question "Do you generally prefer light, medium, or full bodied wines? ") + (valid-answers light medium full unknown)) + (question (attribute preferred-color) + (the-question "Do you generally prefer red or white wines? ") + (valid-answers red white unknown)) + (question (attribute preferred-sweetness) + (the-question "Do you generally prefer dry, medium, or sweet wines? ") + (valid-answers dry medium sweet unknown))) + +;;****************** +;; The RULES module +;;****************** + +(defmodule RULES (import MAIN ?ALL) (export ?ALL)) + +(deftemplate RULES::rule + (slot certainty (default 100.0)) + (multislot if) + (multislot then)) + +(defrule RULES::throw-away-ands-in-antecedent + ?f <- (rule (if and $?rest)) + => + (modify ?f (if ?rest))) + +(defrule RULES::throw-away-ands-in-consequent + ?f <- (rule (then and $?rest)) + => + (modify ?f (then ?rest))) + +(defrule RULES::remove-is-condition-when-satisfied + ?f <- (rule (certainty ?c1) + (if ?attribute is ?value $?rest)) + (attribute (name ?attribute) + (value ?value) + (certainty ?c2)) + => + (modify ?f (certainty (min ?c1 ?c2)) (if ?rest))) + +(defrule RULES::remove-is-not-condition-when-satisfied + ?f <- (rule (certainty ?c1) + (if ?attribute is-not ?value $?rest)) + (attribute (name ?attribute) (value ~?value) (certainty ?c2)) + => + (modify ?f (certainty (min ?c1 ?c2)) (if ?rest))) + +(defrule RULES::perform-rule-consequent-with-certainty + ?f <- (rule (certainty ?c1) + (if) + (then ?attribute is ?value with certainty ?c2 $?rest)) + => + (modify ?f (then ?rest)) + (assert (attribute (name ?attribute) + (value ?value) + (certainty (/ (* ?c1 ?c2) 100))))) + +(defrule RULES::perform-rule-consequent-without-certainty + ?f <- (rule (certainty ?c1) + (if) + (then ?attribute is ?value $?rest)) + (test (or (eq (length$ ?rest) 0) + (neq (nth 1 ?rest) with))) + => + (modify ?f (then ?rest)) + (assert (attribute (name ?attribute) (value ?value) (certainty ?c1)))) + +;;******************************* +;;* CHOOSE WINE QUALITIES RULES * +;;******************************* + +(defmodule CHOOSE-QUALITIES (import RULES ?ALL) + (import QUESTIONS ?ALL) + (import MAIN ?ALL)) + +(defrule CHOOSE-QUALITIES::startit => (focus RULES)) + +(deffacts the-wine-rules + + ; Rules for picking the best body + + (rule (if has-sauce is yes and + sauce is spicy) + (then best-body is full)) + + (rule (if tastiness is delicate) + (then best-body is light)) + + (rule (if tastiness is average) + (then best-body is light with certainty 30 and + best-body is medium with certainty 60 and + best-body is full with certainty 30)) + + (rule (if tastiness is strong) + (then best-body is medium with certainty 40 and + best-body is full with certainty 80)) + + (rule (if has-sauce is yes and + sauce is cream) + (then best-body is medium with certainty 40 and + best-body is full with certainty 60)) + + (rule (if preferred-body is full) + (then best-body is full with certainty 40)) + + (rule (if preferred-body is medium) + (then best-body is medium with certainty 40)) + + (rule (if preferred-body is light) + (then best-body is light with certainty 40)) + + (rule (if preferred-body is light and + best-body is full) + (then best-body is medium)) + + (rule (if preferred-body is full and + best-body is light) + (then best-body is medium)) + + (rule (if preferred-body is unknown) + (then best-body is light with certainty 20 and + best-body is medium with certainty 20 and + best-body is full with certainty 20)) + + ; Rules for picking the best color + + (rule (if main-component is meat) + (then best-color is red with certainty 90)) + + (rule (if main-component is poultry and + has-turkey is no) + (then best-color is white with certainty 90 and + best-color is red with certainty 30)) + + (rule (if main-component is poultry and + has-turkey is yes) + (then best-color is red with certainty 80 and + best-color is white with certainty 50)) + + (rule (if main-component is fish) + (then best-color is white)) + + (rule (if main-component is-not fish and + has-sauce is yes and + sauce is tomato) + (then best-color is red)) + + (rule (if has-sauce is yes and + sauce is cream) + (then best-color is white with certainty 40)) + + (rule (if preferred-color is red) + (then best-color is red with certainty 40)) + + (rule (if preferred-color is white) + (then best-color is white with certainty 40)) + + (rule (if preferred-color is unknown) + (then best-color is red with certainty 20 and + best-color is white with certainty 20)) + + ; Rules for picking the best sweetness + + (rule (if has-sauce is yes and + sauce is sweet) + (then best-sweetness is sweet with certainty 90 and + best-sweetness is medium with certainty 40)) + + (rule (if preferred-sweetness is dry) + (then best-sweetness is dry with certainty 40)) + + (rule (if preferred-sweetness is medium) + (then best-sweetness is medium with certainty 40)) + + (rule (if preferred-sweetness is sweet) + (then best-sweetness is sweet with certainty 40)) + + (rule (if best-sweetness is sweet and + preferred-sweetness is dry) + (then best-sweetness is medium)) + + (rule (if best-sweetness is dry and + preferred-sweetness is sweet) + (then best-sweetness is medium)) + + (rule (if preferred-sweetness is unknown) + (then best-sweetness is dry with certainty 20 and + best-sweetness is medium with certainty 20 and + best-sweetness is sweet with certainty 20)) + +) + +;;************************ +;;* WINE SELECTION RULES * +;;************************ + +(defmodule WINES (import MAIN ?ALL)) + +(deffacts any-attributes + (attribute (name best-color) (value any)) + (attribute (name best-body) (value any)) + (attribute (name best-sweetness) (value any))) + +(deftemplate WINES::wine + (slot name (default ?NONE)) + (multislot color (default any)) + (multislot body (default any)) + (multislot sweetness (default any))) + +(deffacts WINES::the-wine-list + (wine (name Gamay) (color red) (body medium) (sweetness medium sweet)) + (wine (name Chablis) (color white) (body light) (sweetness dry)) + (wine (name Sauvignon-Blanc) (color white) (body medium) (sweetness dry)) + (wine (name Chardonnay) (color white) (body medium full) (sweetness medium dry)) + (wine (name Soave) (color white) (body light) (sweetness medium dry)) + (wine (name Riesling) (color white) (body light medium) (sweetness medium sweet)) + (wine (name Geverztraminer) (color white) (body full)) + (wine (name Chenin-Blanc) (color white) (body light) (sweetness medium sweet)) + (wine (name Valpolicella) (color red) (body light)) + (wine (name Cabernet-Sauvignon) (color red) (sweetness dry medium)) + (wine (name Zinfandel) (color red) (sweetness dry medium)) + (wine (name Pinot-Noir) (color red) (body medium) (sweetness medium)) + (wine (name Burgundy) (color red) (body full)) + (wine (name Zinfandel) (color red) (sweetness dry medium))) + +(defrule WINES::generate-wines + (wine (name ?name) + (color $? ?c $?) + (body $? ?b $?) + (sweetness $? ?s $?)) + (attribute (name best-color) (value ?c) (certainty ?certainty-1)) + (attribute (name best-body) (value ?b) (certainty ?certainty-2)) + (attribute (name best-sweetness) (value ?s) (certainty ?certainty-3)) + => + (assert (attribute (name wine) (value ?name) + (certainty (min ?certainty-1 ?certainty-2 ?certainty-3))))) + +;;***************************** +;;* PRINT SELECTED WINE RULES * +;;***************************** + +(defmodule PRINT-RESULTS (import MAIN ?ALL)) + +(defrule PRINT-RESULTS::header "" + (declare (salience 10)) + => + (printout t t) + (printout t " SELECTED WINES" t t) + (printout t " WINE CERTAINTY" t) + (printout t " -------------------------------" t) + (assert (phase print-wines))) + +(defrule PRINT-RESULTS::print-wine "" + ?rem <- (attribute (name wine) (value ?name) (certainty ?per)) + (not (attribute (name wine) (certainty ?per1&:(> ?per1 ?per)))) + => + (retract ?rem) + (format t " %-24s %2d%%%n" ?name ?per)) + +(defrule PRINT-RESULTS::remove-poor-wine-choices "" + ?rem <- (attribute (name wine) (certainty ?per&:(< ?per 20))) + => + (retract ?rem)) + +(defrule PRINT-RESULTS::end-spaces "" + (not (attribute (name wine))) + => + (printout t t)) + + + + --- clips-6.24.orig/examples/cholesterol/patdata1 +++ clips-6.24/examples/cholesterol/patdata1 @@ -0,0 +1,39 @@ +; Basic cases for testing patients +; case 1 +(assert (patient1 + (sex female) (name p1) (age 55) (h-chd no) (smoking no) + (dm no) (chd no) (et yes) (pm yes) (hdl 70) (chol 180))) +; case 2 +; test for box j input chol 220 at prompt +(assert (patient1 + (sex male) (name p2) (age 35) (h-chd no) (smoking no) + (dm no) (htn yes) (chd no) (hdl 70) (chol -1))) +; case 3 +(assert (patient1 + (sex female) (name p3) (age 55) (h-chd no) (smoking no) + (dm no) (htn yes) (chd no) (et yes) (pm yes) (hdl 30) + (ldl 100) (chol 136))) +; case 4 +(assert (patient1 + (sex female) (name p4) (age 65) (h-chd no) (smoking no) + (dm no) (htn yes) (chd no) (hdl 30) (ldl 140) (chol 236))) + +; case 5 +; test for box t input ldl of 170 +(assert (patient1 + (sex male) (name p5) (age 55) (h-chd no) (smoking no) + (dm no) (htn no) (chd no) (hdl 40) (ldl -1) (chol 246))) +; case 6 +(assert (patient1 + (sex female) (name p6) (age 50) (h-chd no) (smoking no) + (dm no) (htn no) (chd no) (hdl 30) (ldl 140) (chol 199))) +; case 7 +(assert (patient1 + (sex female) (name p7) (age 55) (h-chd no) (smoking no) + (dm no) (htn yes) (chd yes) (hdl 30) (ldl 65) (chol 165))) +; case 8 +(assert (patient1 + (sex female) (name p8) (age 55) (h-chd no) (smoking no) + (dm no) (htn yes) (chd yes) (hdl 30) (ldl 165) (chol 236))) + + --- clips-6.24.orig/examples/cholesterol/loadall +++ clips-6.24/examples/cholesterol/loadall @@ -0,0 +1,6 @@ +; Load add NCEP rules and run all test patients +(load date.clp) +(load project.clp) +(batch patdata1) +(batch patdata2) +(run) --- clips-6.24.orig/examples/cholesterol/patdata2 +++ clips-6.24/examples/cholesterol/patdata2 @@ -0,0 +1,92 @@ +;Data file for patients from the NCEP Practice book + +; patient with missing recent labs +(assert (patient1 + (sex female) (name p10) (age 55) (h-chd no) (smoking no) + (dm no) (chd no) (et yes) (pm yes) (hdl 70) (hdl-date 0) + (chol 180) (chol-date 0))) + +; case 1 +(assert (patient1 + (name p11) + (age 40) (sex male) (chol 280))) + +; case 1 with lower chol to check for hdl +(assert (patient1 + (name p11a) + (age 40) (sex male) (chol 180))) + +; case 2 +(assert (patient1 + (name p12) + (age 67) (sex female) (h-chd yes) (chd no) (smoking no) + (htn no) (dm no) + (ldl 209) (chol 275) (hdl 50) )) + + +;case 2 after short treatment +(assert (patient1 + (name p12a) + (age 67) (sex female) (h-chd yes) (chd no) (smoking no) + (htn no) (dm no) + (ldl 168) (chol 245) (hdl 47) (treatment diet) + (treatment-date 34400))) + +;case 2 after longer treatment (over 6 months) +(assert (patient1 + (name p12b) + (age 67) (sex female) (h-chd yes) (chd no) (smoking no) + (htn no) (dm no) + (ldl 168) (chol 245) (hdl 47) (treatment diet) + (treatment-date 34200))) + +; case 3 +(assert (patient1 + (name p13) + (age 67) (htn yes) (chd yes) (sex female) (h-chd yes) (dm no) + (chol 277) (hdl 44) (ldl 166))) + +; case 3 after short therapy +(assert (patient1 + (name p13a) + (age 67) (htn yes) (chd yes) (sex female) (h-chd yes) (dm no) + (chol 194) (hdl 46) (ldl 111) + (treatment diet) + (treatment-date 34400))) + +; case 4 on self diet +(assert (patient1 + (name p14) + (age 24) (htn no) (chd no) (sex male) (h-chd yes) (dm no) + (smoking no) + (chol 362) (hdl 51) (ldl 292) + (treatment diet) + (treatment-date 34200))) + + +; case 4 on initial drug regimin for 1 year +(assert (patient1 + (name p14a) + (age 24) (htn no) (chd no) (sex male) (h-chd yes) (dm no) + (smoking no) + (chol 298) (hdl 56) (ldl 215) + (treatment drug) + (treatment-date 34200))) + +; case 4 on second drug regimin with poor response but therapy less than +; 6 months +(assert (patient1 + (name p14b) + (age 24) (htn no) (chd no) (sex male) (h-chd yes) (dm no) + (smoking no) + (chol 298) (hdl 56) (ldl 215) + (treatment drug) + (treatment-date 34400))) + +; case 7 evaluation of elcerly patient +(assert (patient1 + (name p17) + (age 78) (sex male) (chd no) (htn yes) (smoking no) (dm no) + (chol 277) (hdl 50) (ldl 190))) + + --- clips-6.24.orig/examples/cholesterol/Readme +++ clips-6.24/examples/cholesterol/Readme @@ -0,0 +1,116 @@ +***************************************************************************** +* * +* WARNING and DISCLAIMER * +* * +* This implementation the National Cholesterol Education Program guidelines * +* in CLIPS is intended purely for educational purposes. It was not * +* intended for actual use in a clinical setting. Rigorous evaluation and * +* validation has NOT been done. It is released to the public with * +* absolutely no warranty whatsoever regarding either the correctness of * +* the program, or its suitability for any purpose, whatsoever. The user * +* assumes all risks and liabilities from the use of this program. * +* * +* This program is neither supported nor maintained at this time. Work on * +* the program ended in May 1994. The program has not been updated since * +* that time. * +* * +***************************************************************************** + + RUNNING THE KB + +The program requires three files to run: +1) clips (executable) +2) date.clp (date conversion functions, must be loaded before project4) +3) project.clp (the rules and definitions) + +Other files include +4) patdata1 (sample patient data) +5) patdata2 (sample patients from the NCEP workbook) +6) loadall (automatically loads and runs rules on all patients) + + +To run the program: +1) Put above file in a directory +2) start clips by typing "clips" at the prompt +3) then, at the CLIPS> (batch loadall) + to load all rules and run the test patients. + +You will get prompts for missing data elements. Please input positive integers +or -1 for "no value". + + BASIC STRUCTURE + +Individual patients are stored as patterns of the type. +(patient1 (atribute1 VALUE1) (atribute2 VALUE2) ...) + +This is used for both history attributes such as "smoking" as well as numeric +attributes such as "chol". Because CLIPS has a well developed default value +system, we elected to use defaults, rather than prompting for the handling of +missing history elements. The lab value handlers demonstrate prompting for +missing values. + +Date information is stored as an integer which represents days since 1990. +Unlike CLASSIC and PROLOG, CLIPS has not intrinsic time or date functions. +This made computation of the current date tricky. CLIPS does support system +calls, but does not allow capture of the returned information. In order to +support date, a system call was executed which stored the date in a file. +CLIPS then open and reads the file and converts the value into a single +integer. In a production implementation of this system, a c program would be +written to provide date functions within CLIPS. + +For processing of the individual patients, the (patient1 (...)) data structure +isconverted to a (patient2 (...)) template which includes a +numerically computed risk from the history atributes. + +If lab values are missing, the physcian is prompted to enter a value. If -1 +is entered the physician is prompted to order the appropriate +lab. The structure includes only latest lab value, although the multislot +capability of CLIPS allows for multiple lab values. This would make averaging +much more straight forward than in the PROLOG or CLASSIC implementation. + +Reexamination of the NCEP decision logic revealed that pre-treatment lab values +were not required for correct evaluation of treatment response. Therefore, +pre-treatment condition, rather than pre-treatment lab value is used to +evaluate the adequacy of response. + +Some parts of the guidelines call for multiple values to be reported and +averaged and for additional labs ordered if the results of the first +two labs disagree. The current logic does not caputre this. + +Treatments are stored as treatment attrubutes which include the therapy, +and the date. Only diet and drug therapy are recorded. Fine distinctions +between levels of diet and types of medication were not included. + +The logic currently only evaluates whether the latest lab is after the +start of therapy and the patient has had at least 6 months of therapy. +It does not handle the situation where the patient +has been on therapy for over 6 months, but the lab is 3 months old. + + + CONTROL OF LOGIC + +As with the earlier implementations, the most difficult task was +controlling the flow of the logic. Because the careplan considers multiple +unrelated variables, it was difficult to limit the messages to appropriate +patients. For the CLIPS implementation, we utilized a state-transition model. +An attribute (state SSS) was created. It is initialized at aa. Then as rules +(which correspond to arrows between the boxes in the NCEP article) fire, they +explicitly change the state attribute. Rules only fire for patients in +certain states. + +In addition, a (done XXX) attribute was added so that execution could be +stopped at the correct point if critical data were missing. + + + FURTHER INFORMATION + +As I noted above, this project is not currently active. As such, there is +probably no question we could answer that is not apparent from the code +itself. Nonetheless, if you have questions, you can direct them to: + + starren@cucis.columbia.edu + +Hope you fine this interesting, + +-- Justin Starren and Guochun Xie + --- clips-6.24.orig/examples/cholesterol/project.clp +++ clips-6.24/examples/cholesterol/project.clp @@ -0,0 +1,828 @@ +;***************************************************************************** +;* * +;* WARNING and DISCLAIMER * +;* * +;* This implementation the National Cholesterol Education Program guidelines * +;* in CLIPS is intended purely for educational purposes. It was not * +;* intended for actual use in a clinical setting. Rigorous evaluation and * +;* validation has NOT been done. It is released to the public with * +;* absolutely no warranty whatsoever regarding either the correctness of * +;* the program, or its suitability for any purpose, whatsoever. The user * +;* assumes all risks and liabilities from the use of this program. * +;* * +;* This program is neither supported nor maintained at this time. Work on * +;* the program ended in May 1994. The program has not been updated since * +;* that time. * +;* * +;***************************************************************************** +; +; Brief description of the design of the program: +; The program uses various states (boxes in Fig. 1, 2, and 3 of the +; attached paper). State "aa" is the default beginning state. Most +; of the rules are dependent on the current state. +; There are rules for checking missing cholesterol, hdl, and ldl +; values. These rules DO NOT update state because they are dependent +; on the hdl, chol, and ldl values. As soon as the values are +; modified. Other rules (from state to state) will fire. + +; patient1 tempate is for orginal patient information +(deftemplate patient1 + (slot name (type SYMBOL) (default ?DERIVE)) + (slot sex (type SYMBOL) (allowed-symbols female male) (default female)) + (slot h-chd (type SYMBOL) (allowed-symbols yes no) (default no)) + (slot htn (type SYMBOL) (allowed-symbols yes no) (default no)) + (slot smoking (type SYMBOL) (allowed-symbols yes no) (default no)) + (slot dm (type SYMBOL) (allowed-symbols yes no) (default no)) + (slot chd (type SYMBOL) (allowed-symbols yes no) (default no)) + (slot et (type SYMBOL) (allowed-symbols yes no) (default no)) + (slot pm (type SYMBOL) (allowed-symbols yes no) (default no)) + (slot age (type INTEGER) (default ?DERIVE)) + (slot hdl (type INTEGER) (default -1)) + (slot hdl-date (type INTEGER) (default (get-now))) + (slot ldl (type INTEGER) (default -1)) + (slot ldl-date (type INTEGER) (default (get-now))) + (slot chol (type INTEGER) (default -1)) + (slot chol-date (type INTEGER) (default (get-now))) + (slot treatment (type SYMBOL) + (allowed-symbols none diet drug) (default none)) + (slot treatment-date (type INTEGER) (default (get-now)))) + +; patient2 tempate is for processed patient information using +; data form patient1 +(deftemplate patient2 + (slot name (type SYMBOL) (default ?DERIVE)) + (slot chd (type SYMBOL) (allowed-symbols yes no) (default no)) + (slot hdl (type INTEGER) (default -1)) + (slot hdl-date (type INTEGER) (default (get-now))) + (slot ldl (type INTEGER) (default -1)) + (slot ldl-date (type INTEGER) (default (get-now))) + (slot chol (type INTEGER) (default -1)) + (slot chol-date (type INTEGER) (default (get-now))) + (slot treatment (type SYMBOL) + (allowed-symbols none diet drug) (default none)) + (slot treatment-date (type INTEGER) (default (get-now))) + (slot risk (type INTEGER) (default ?DERIVE)) + (slot state (type SYMBOL) (default aa)) + (slot done (type SYMBOL) (allowed-symbols yes no) (default no))) + +;*********BEGINNING OF RISK FACTOR RELATED FUNCTIONS********* +; Return 1 if argument is yes, 0 otherwise +(deffunction r1 (?a) "Return 1 if ?a = yes, 0 otherwise" + (if (= 0 (str-compare ?a yes)) then (return 1) + else (return 0))) + +; function for sex and age related risk +(deffunction sex-risk (?s ?a ?pm ?et) "sex & age related risk" + (if (= 0 (str-compare ?s male)) + then (if (>= ?a 45) + then (return 1) + else (return 0)) + else (if (>= ?a 65) + then (return 1) + else (if (= 0 (str-compare ?pm yes)) + then (if (= 0 (str-compare ?et yes)) + then (return 1) + else (return 0)) + else then (return 0))))) + +; function to calculate hdl related risk +(deffunction hdl-risk (?hdl) "hdl risk" + (if (< ?hdl 35) then (return 1) + else (if (>= ?hdl 60) then (return -1) else (return 0)))) + +; function for risk factors from the following: +; smoking, hypertension, diabetes, history of chd +(deffunction other-risk (?smoke ?h-chd ?htn ?dm) + (return (+ (r1 ?smoke) (r1 ?h-chd) (r1 ?htn) (r1 ?dm)))) + +; all risk factors +(deffunction total-risk (?sex ?age ?pm ?et ?hdl ?smoke ?h-chd ?htn ?dm) + (return (+ (sex-risk ?sex ?age ?pm ?et) (hdl-risk ?hdl) + (other-risk ?smoke ?h-chd ?htn ?dm)))) +;*********END OF RISK FACTOR RELATED FUNCTIONS********* + +; create new patient template with risk factors +(defrule create-patient2 "create patient2 based on info from patient1" + (patient1 (sex ?sex) (age ?age) (pm ?pm) (et ?et) (smoking ?sm) + (h-chd ?h-chd) (htn ?htn) (dm ?dm) + (name ?name) (chd ?chd) (hdl ?hdl) (ldl ?ldl) (chol ?chol) + (hdl-date ?hdl-date) (ldl-date ?ldl-date)(chol-date ?chol-date) + (treatment ?treatment) (treatment-date ?treatment_date)) + => + (assert (patient2 (name ?name) (chd ?chd) (hdl ?hdl) (ldl ?ldl) (chol ?chol) + (hdl-date ?hdl-date) (ldl-date ?ldl-date)(chol-date ?chol-date) + (treatment ?treatment) (treatment-date ?treatment_date) + (risk (total-risk ?sex ?age ?pm ?et ?hdl ?sm ?h-chd ?htn ?dm))))) + +;**************************************************************************** +;**************START OF RULES FOR UNTREATED PATIENTS WITHOUT CHD ************ +;**************************************************************************** + + +; Every patient must have cholesterol test. Does not modify state +(defrule check-chol "Check for presence of cholesterol" + ?f1 <- (patient2 (name ?name) (chol ?chol) + (treatment ?treatment) (done ?done)) + (test (= ?chol -1)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?treatment none))) + => + (printout t crlf "Please input patient's " ?name "'s cholesterol value ") + (printout t "[-1 if no value]" crlf) + (bind ?answer (read)) + (if (and (numberp ?answer) (> ?answer 0)) then + (modify ?f1 (chol ?answer)) + else + (printout t "Please obtain cholesterol test on " ?name crlf) + (modify ?f1 (done yes)))) +;!!!no need to modify done here since default staet is aa. It goes nowhere. +; LOOK AT NEXT RULE + +; rule for checking the age of the chol value +(defrule check-chol-date "date must be within 5 years" + ?f1 <- (patient2 (name ?name) (chol-date ?chol-date) + (treatment ?treatment) (done ?done)) + (test (five-years ?chol-date)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?treatment none))) +=> + (printout t crlf) + (printout t "The last cholesterol value for " ?name + " is over 5 years old." crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| Please check cholesterol value. |" crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes))) + +; rule for box A. All patients without chd goes to box A +(defrule ruleA "getting to box A" + ?f1 <- (patient2 (chd ?chd) (done ?done) + (treatment ?treatment) (state ?state)) + (test (= 0 (str-compare ?chd no))) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state aa))) ; state + (test (= 0 (str-compare ?treatment none))) + => + (modify ?f1 (state a))) + +; rule for A->B +(defrule A2B "getting to box A" + ?f1 <- (patient2 (chol ?chol) (done ?done) (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state a))) + (test (< ?chol 200)) + => + (modify ?f1 (state b))) + +; rule for A->C +(defrule A2C "getting to box C" + ?f1 <- (patient2 (chol ?chol) (done ?done) (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state a))) + (test (<= ?chol 239)) + (test (>= ?chol 200)) + => + (modify ?f1 (state c))) + +; rule for A->D +(defrule A2D "getting to box D" + ?f1 <- (patient2 (chol ?chol) (done ?done) (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state a))) + (test (>= ?chol 240)) + => + (modify ?f1 (state d))) + +; rule to check for hdl at box B +(defrule check-hdl-at-B + ?f1 <- (patient2 (name ?name) (done ?done) (state ?state) (hdl ?hdl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state b))) + (test (= ?hdl -1)) + => + (printout t crlf) + (printout t crlf + "Please input patient " ?name "'s hdl value [-1 if no value]" crlf) + (bind ?answer (read)) + (if (and (numberp ?answer) (> ?answer 0)) then + (modify ?f1 (hdl ?answer)) + else + (printout t crlf + "-------------------------------------------------------"crlf) + (printout t "Please obtain hdl test on " ?name crlf) + (printout t + "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)))) + +; rule to check for hdl at box C +(defrule check-hdl-at-C + ?f1 <- (patient2 (name ?name) (done ?done) (state ?state) (hdl ?hdl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state c))) + (test (= ?hdl -1)) + => + (printout t crlf) + (printout t + "Please input patient " ?name "'s hdl value [-1 if no value]" crlf) + (bind ?answer (read)) + (if (and (numberp ?answer) (> ?answer 0)) then + (modify ?f1 (hdl ?answer)) + else + (printout t crlf + "-------------------------------------------------------"crlf) + (printout t "Please obtain hdl test on " ?name crlf) + (printout t + "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)))) + +; rule to check the age of the hdl value +(defrule check-hdl-date "date must be within 5 years" + ?f1 <- (patient2 (name ?name) (hdl-date ?hdl-date) + (done ?done) (state ?state)) + (test (five-years ?hdl-date)) + (test (= 0 (str-compare ?done no))) +=> + (printout t crlf + "-------------------------------------------------------"crlf) + (printout t "| The last hdl value for " ?name + " is over 5 years old." crlf) + (printout t "| Please check hdl value on " ?name crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes))) + + + +; rule for box I, see the paper +; (NAMA, Juen 16, 1993-Vol 269, No. 23, pp 3015-3023) +(defrule B2E2I "Rule for box I" + ?f1 <- (patient2 (name ?name) + (done ?done) + (state ?state) + (hdl ?hdl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state b))) + (test (>= ?hdl 35)) + => + (printout t crlf "Patient " ?name " needs the following treatement:"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 1. Repeat Total Cholesterol and HDL Cholesterol |"crlf) + (printout t "| Measurement Within 5 Years or With Physical |"crlf) + (printout t "| Education. |"crlf) + (printout t "| 2. Provide Education on Genral Population Eating |"crlf) + (printout t "| Pattern, Physical Activity, and Risk Factor |"crlf) + (printout t "| Reduction. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state i))) + +; rule going from box B->F->K +(defrule B2F2K "Rules to reach box K" + ?f1 <- (patient2 (state ?state) (done ?done) (hdl ?hdl) + (chol ?chol)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state b))) + (test (< ?hdl 35)) + => + (modify ?f1 (state k))) + +; rule going from box C->G->J +(defrule C2G2J "Rules to reach box J" + ?f1 <- (patient2 (state ?state) (chd ?chd) (done ?done) (hdl ?hdl) + (name ?name)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state c))) + (test (>= ?hdl 35)) + => + (printout t crlf "Patient " ?name " needs the following treatement:"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 1. Provide Information on Dietary Modification, |"crlf) + (printout t "| Physical Activity, and Risk Factor Reduction. |"crlf) + (printout t "| 2. Reevaluate Patient in 1 to 2 years: |"crlf) + (printout t "| a. Repeat Total and HDL Cholesterol Measurements.|"crlf) + (printout t "| b. Reinforce Nutrition and Physical Activity |"crlf) + (printout t "| Education. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state j))) + +; rule going from box C->H->K +(defrule C2H2K "Rules to reach box K" + ?f1 <- (patient2 (state ?state) (chd ?chd) (done ?done) (hdl ?hdl) + (name ?name)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state c))) + (test (< ?hdl 35)) + => + (modify ?f1 (state k))) + + +; rule going from box D to box K +(defrule D2K "Rules to reach box K" + ?f1 <- (patient2 (state ?state) + (done ?done)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state d))) + => + (modify ?f1 (state k))) + + +; check for availability of ldl after reaching box K +(defrule check-ldl-at-K "Check for ldl" + ?f1 <- (patient2 (ldl ?ldl) + (done ?done) + (state ?state) + (name ?name)) + (test (= ?ldl -1)) ; see other rules with ldl > 0 + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state k))) + => + (printout t crlf + "Please input patient " ?name "'s ldl value [-1 if no value]"crlf) + (bind ?answer (read)) + (if (and (numberp ?answer) (> ?answer 0)) then + (modify ?f1 (ldl ?answer)) ; do not modify state here + else + (printout t crlf + "-------------------------------------------------------"crlf) + (printout t "Please obtain ldl test on " ?name crlf) + (printout t + "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)))) + +; rule to check the age of the ldl value +(defrule check-ldl-date "date must be within 5 years" + ?f1 <- (patient2 (name ?name) (ldl-date ?ldl-date) + (done ?done) (state ?state)) + (test (five-years ?ldl-date)) + (test (= 0 (str-compare ?done no))) +=> + (printout t crlf + "-------------------------------------------------------"crlf) + (printout t "| The last ldl value for " ?name + " is over 5 years old." crlf) + (printout t "| Please check ldl value on " ?name crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes))) + +; rule from box K->L->O->T +; do high risk rule first +(defrule K2L2O2S "Rule S" + ?f1 <- (patient2 (name ?name) (state ?state) (done ?done) (risk ?risk) + (ldl ?ldl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state k))) +; remove (test (<= ?ldl 159)) all pat with 2 risk get same rx. + (test (>= ?ldl 130)) + (test (>= ?risk 2)) + => + (printout t crlf "Patient " ?name " needs the following treatement:"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 1. Do Clinical Evaluation (History, Physical |"crlf) + (printout t "| Examination, and Laboratory Tests): |"crlf) + (printout t "| a. Evaluate for Secondary Causes (When Indicated)|"crlf) + (printout t "| b. Evaluate for Familial Disorders (When |"crlf) + (printout t "| Indicated) |"crlf) + (printout t "| 2. Consider Influences of Age, Sex, and Other CHD |"crlf) + (printout t "| Risk Factors |"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 3. Initiate Dietary Therapy with Goal of Lowering |"crlf) + (printout t "| LDL Cholesterol below 130 mg/dl |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state t))) + + +; rules from box K to box T (via box P) +(defrule K2L2P2T "Inititate dietary therapy" + ?f1 <- (patient2 (name ?name) (state ?state) (done ?done) (ldl ?ldl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state k))) + (test (>= ?ldl 160)) + => + (printout t crlf "Patient " ?name " needs the following treatement:"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 1. Do Clinical Evaluation (History, Physical |"crlf) + (printout t "| Examination, and Laboratory Tests): |"crlf) + (printout t "| a. Evaluate for Secondary Causes (When Indicated)|"crlf) + (printout t "| b. Evaluate for Familial Disorders (When |"crlf) + (printout t "| Indicated) |"crlf) + (printout t "| 2. Consider Influences of Age, Sex, and Other CHD |"crlf) + (printout t "| Risk Factors |"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 3. Initiate Dietary Therapy with Goal of Lowering |"crlf) + (printout t "| LDL Cholesterol below 160 mg/dl |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state t))) + +; rule from box K->L->M->R +(defrule K2L2M2R "Rule R" + ?f1 <- (patient2 (name ?name) + (state ?state) + (done ?done) + (ldl ?ldl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state k))) + (test (< ?ldl 130)) + => + (printout t crlf "Patient " ?name " needs the following treatement:"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 1. Repeat Total Cholesterol and HDL Cholesterol |"crlf) + (printout t "| Measurement Within 5 Years |"crlf) + (printout t "| 2. Provide Education on Genral Population Eating |"crlf) + (printout t "| Pattern, Physical Activity, and Risk Factor |"crlf) + (printout t "| Reduction. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state r))) + +; rule from box K->L->N->S +(defrule K2L2N2S "Rule S" + ?f1 <- (patient2 (name ?name) (state ?state) (done ?done) (risk ?risk) + (ldl ?ldl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state k))) + (test (<= ?ldl 159)) + (test (>= ?ldl 130)) + (test (< ?risk 2)) + => + (printout t crlf "Patient " ?name " needs the following treatement:"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 1. Provide Information on Step 1 Diet and Physical |"crlf) + (printout t "| Activity. |"crlf) + (printout t "| 2. Reevaluate Patient Status Annually, Including |"crlf) + (printout t "| Risk Factor Reduction |"crlf) + (printout t "| a. Repeat Lipoprotein Analysis |"crlf) + (printout t "| b. Reinforce Nutrition and Physical Activity |"crlf) + (printout t "| Education. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state s))) + + +;************************************************************************ +;**************START OF RULES FOR PATIENTS WITH CHD ********************* +;************************************************************************ + +; The following rules are for patients with CHD + +; rule for box U. All patients with CHD goes to box A +(defrule ruleU "getting to box U" + ?f1 <- (patient2 (chd ?chd) (done ?done) + (treatment ?treatment)(state ?state)) + (test (= 0 (str-compare ?chd yes))) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?treatment none))) + (test (= 0 (str-compare ?state aa))) ; state + => + (modify ?f1 (state u))) + +; rule to check for ldl at box U +(defrule check-ldl-at-U + ?f1 <- (patient2 (name ?name) (done ?done) (state ?state) (ldl ?ldl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state u))) + (test (= ?ldl -1)) + => + (printout t crlf + "Please input patient " ?name "'s ldl value [-1 if no value]"crlf) + (bind ?answer (read)) + (if (and (numberp ?answer) (> ?answer 0)) then + (modify ?f1 (ldl ?answer)) + else + (printout t crlf + "-------------------------------------------------------"crlf) + (printout t "Please obtain ldl test on" ?name crlf) + (printout t + "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)))) + +; rule from box U->V->X +(defrule U2V2X "Rule X" + ?f1 <- (patient2 (name ?name) + (state ?state) + (done ?done) + (ldl ?ldl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state u))) + (test (<= ?ldl 100)) + (test (> ?ldl 0)) + => + (printout t crlf "Patient " ?name " needs the following treatement:"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 1. Indivudualize Instruction on Diet and Physical |"crlf) + (printout t "| Activity Level. |"crlf) + (printout t "| 2. Repeat Lipoprotein Analysis Annually. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state x))) + +; rule from box U->W->X +(defrule U2W2Z "Rule Z" + ?f1 <- (patient2 (name ?name) + (state ?state) + (done ?done) + (ldl ?ldl)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state u))) + (test (> ?ldl 100)) + => + (printout t crlf "Patient " ?name " needs the following treatement:"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 1. Do Clinical Evaluation (History, Physical Exam, |"crlf) + (printout t "| and Lab Tests). |"crlf) + (printout t "| 2. Evaluate for Secondary Causes (When Indicated). |"crlf) + (printout t "| 3. Evaluate for Familial Disorders (When Indicated).|"crlf) + (printout t "| 4. Consider Influences of Age, Sex, and Other CHD |"crlf) + (printout t "| Risk Factors. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| 5. Initiate Dietary Therapy: Goal is LDL < 100 mg/dl|"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state z))) + +;************************************************************************** +;************END OF RULES FOR UNTREATED PATIENTS WITH CHD****************** +;************************************************************************** + +;************************************************************************** +;********** START OF RULES FOR TREATED PATIENTS ********************** +;************************************************************************** + + +; rule to identify all treated patients +(defrule ruleT1 "getting to box t1" + ?f1 <- (patient2 (done ?done) + (treatment ?treatment) (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state aa))) ; state + (test (<> 0 (str-compare ?treatment none))) ;treatment other than none + => + (modify ?f1 (state t1))) + + + +; check for availability of ldl after reaching box t1 +(defrule check-ldl-at-t1 "Check for ldl" + ?f1 <- (patient2 (ldl ?ldl) + (done ?done) + (state ?state) + (name ?name)) + (test (= ?ldl -1)) ; see other rules with ldl > 0 + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state t1))) + => + (printout t crlf + "Please input patient " ?name "'s ldl value [-1 if no value]"crlf) + (bind ?answer (read)) + (if (and (numberp ?answer) (> ?answer 0)) then + (modify ?f1 (ldl ?answer)) ; do not modify state here + else + (printout t crlf + "-------------------------------------------------------"crlf) + (printout t "Please obtain ldl test on" ?name crlf) + (printout t + "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)))) + +; rule to check the age of the ldl value +; for treated patient must be after treatment +(defrule check-treat-ldl-date "after treatment begins" + ?f1 <- (patient2 (name ?name) (ldl-date ?ldl-date) + (treatment-date ?treatment-date) + (done ?done) (state ?state)) + (test (< ?ldl-date ?treatment-date)) + (test (= 0 (str-compare ?done no))) +=> + (printout t "-------------------------------------------------------"crlf) + (printout t "| Last ldl value for " ?name + " is before the latest treatment." crlf) + (printout t "| Please obtain a value on treatment." crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes))) + + +; Rule for box t4 chd low risk +(defrule ruleT4 "no chd low risk" + ?f1 <- (patient2 (name ?name) (done ?done) (risk ?risk) + (state ?state) (chd ?chd)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?chd no))) + (test (= 0 (str-compare ?state t1))) ; state + (test (< ?risk 2)) + => + (modify ?f1 (state t4))) + +; Rule for box t5 chd high risk +(defrule ruleT5 "no chd high risk" + ?f1 <- (patient2 (name ?name) (done ?done) (risk ?risk) + (state ?state) (chd ?chd)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?chd no))) + (test (= 0 (str-compare ?state t1))) ; state + (test (>= ?risk 2)) + => + (modify ?f1 (state t5))) + + +; Rule for box t6 chd high risk +(defrule ruleT6 "no chd high risk" + ?f1 <- (patient2 (name ?name) (done ?done) + (state ?state) (chd ?chd)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?chd yes))) + (test (= 0 (str-compare ?state t1))) ; state + => + (modify ?f1 (state t6))) + + + +; Rule for box t4 responding +(defrule ruleT4good "responding" + ?f1 <- (patient2 (name ?name) (done ?done) (ldl ?ldl) + (state ?state) (treatment ?treatment)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state t4))) ; state + (test (< ?ldl 160)) + => + (printout t crlf) + (printout t "Patient " ?name " is responding well to " + ?treatment " therapy"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| The LDL of "?ldl" is below the goal of 160 mg/dl"crlf) + (printout t "| Continue the current therapy |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state tgood))) + +; Rule for box t4 not responding +(defrule ruleT4bad "not responding" + ?f1 <- (patient2 (name ?name) (done ?done) (ldl ?ldl) + (state ?state) (treatment ?treatment)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state t4))) ; state + (test (> ?ldl 160)) + => + (printout t crlf) + (printout t "Patient " ?name " is not responding well to " + ?treatment " therapy" crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| The LDL of "?ldl" is above the goal of 160 mg/dl"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (state tbad))) + + +; Rule for box t5 responding +(defrule ruleT5good "responding" + ?f1 <- (patient2 (name ?name) (done ?done) (ldl ?ldl) + (state ?state) (treatment ?treatment)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state t5))) ; state + (test (< ?ldl 130)) + => + (printout t crlf) + (printout t "Patient " ?name " is responding well to " + ?treatment " therapy" crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| The LDL of "?ldl" is below the goal of 130 mg/dl"crlf) + (printout t "| Continue the current therapy |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state tgood))) + +; Rule for box t5 not responding +(defrule ruleT5bad "not responding" + ?f1 <- (patient2 (name ?name) (done ?done) (ldl ?ldl) + (state ?state) (treatment ?treatment)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state t5))) ; state + (test (> ?ldl 130)) + => + (printout t crlf) + (printout t "Patient " ?name " is not responding well to " + ?treatment " therapy"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| The LDL of "?ldl" is above the goal of 130 mg/dl"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (state tbad))) + + +; Rule for box t6 responding +(defrule ruleT6good "responding" + ?f1 <- (patient2 (name ?name) (done ?done) (ldl ?ldl) + (state ?state) (treatment ?treatment)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state t6))) ; state + (test (< ?ldl 100)) + => + (printout t crlf) + (printout t "Patient " ?name " is responding well to " + ?treatment " therapy"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| The LDL of "?ldl" is below the goal of 100 mg/dl"crlf) + (printout t "| Continue the current therapy |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes) (state tgood))) + +; Rule for box t6 not responding +(defrule ruleT6bad "not responding" + ?f1 <- (patient2 (name ?name) (done ?done) (ldl ?ldl) + (state ?state) (treatment ?treatment)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state t6))) ; state + (test (> ?ldl 100)) + => + (printout t crlf) + (printout t "Patient " ?name " is not responding well to " + ?treatment " therapy"crlf) + (printout t "-------------------------------------------------------"crlf) + (printout t "| The LDL of "?ldl" is above the goal of 100 mg/dl"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (state tbad))) + + +; Rule for early non responders +(defrule ruleTbadearly "not responding" + ?f1 <- (patient2 (name ?name) (done ?done) (treatment-date ?treatment-date) + (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state tbad))) ; state + (test (not (six-months ?treatment-date))) + => + (printout t "| Patient has been on treatment for less than 6 months|"crlf) + (printout t "| Continue treatment for 6 months before evaluating |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)(state tz))) + +; Rule for late nonresponders to diet +(defrule ruleTbaddiet1 "no chd low risk" + ?f1 <- (patient2 (name ?name) (done ?done) (ldl ?ldl) (chd ?chd) + (treatment ?treatment) (treatment-date ?treatment-date) + (risk ?risk) (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state tbad))) ; state + (test (= 0 (str-compare ?chd no))) + (test (= 0 (str-compare ?treatment diet))) + (test (six-months ?treatment-date)) + (test (< ?risk 2)) + (test (< ?ldl 190)) + => + (printout t "| Although patient has not responded to diet, |"crlf) + (printout t "| the LDL is not high enough to justify drug therapy. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)(state tz))) + +; Rule for late nonresponders to diet +(defrule ruleTbaddiet2 "no chd high risk" + ?f1 <- (patient2 (name ?name) (done ?done) (ldl ?ldl) (chd ?chd) + (treatment ?treatment) (treatment-date ?treatment-date) + (risk ?risk) (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state tbad))) ; state + (test (= 0 (str-compare ?chd no))) + (test (= 0 (str-compare ?treatment diet))) + (test (six-months ?treatment-date)) + (test (>= ?risk 2)) + (test (< ?ldl 160)) + => + (printout t "| Although patient has not responded to diet, |"crlf) + (printout t "| the LDL is not high enough to justify drug therapy. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)(state tz))) + +; Rule for late nonresponders to diet +(defrule ruleTbaddiet3 "with chd" + ?f1 <- (patient2 (name ?name) (done ?done) (ldl ?ldl) (chd ?chd) + (treatment ?treatment) (treatment-date ?treatment-date) + (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state tbad))) ; state + (test (= 0 (str-compare ?chd yes))) + (test (= 0 (str-compare ?treatment diet))) + (test (six-months ?treatment-date)) + (test (< ?ldl 130)) + => + (printout t "| Although patient has not responded to diet, |"crlf) + (printout t "| the LDL is not high enough to justify drug therapy. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)(state tz))) + +; Rule for late nonresponders to diet who are drug candidates +(defrule ruleTbaddiet4 "candidates for drug therapy" + ?f1 <- (patient2 (name ?name) (done ?done) + (treatment ?treatment) (treatment-date ?treatment-date) + (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state tbad))) ; state + (test (= 0 (str-compare ?treatment diet))) + (test (six-months ?treatment-date)) + => + (printout t "| Consider advancing to drug therapy. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)(state tz))) + + +; Rule for late nonresponders to drug therapy +(defrule ruleTbaddrug "candidates for drug therapy" + ?f1 <- (patient2 (name ?name) (done ?done) + (treatment ?treatment) (treatment-date ?treatment-date) + (state ?state)) + (test (= 0 (str-compare ?done no))) + (test (= 0 (str-compare ?state tbad))) ; state + (test (= 0 (str-compare ?treatment drug))) + (test (six-months ?treatment-date)) + => + (printout t "| Consider advancing therapy. |"crlf) + (printout t "-------------------------------------------------------"crlf) + (modify ?f1 (done yes)(state tz))) + --- clips-6.24.orig/examples/cholesterol/date.clp +++ clips-6.24/examples/cholesterol/date.clp @@ -0,0 +1,26 @@ +; This is the date function +; for reasons of computational simplicity, the date is represented +; as an integer which represents days since jan 1 1900. + +; because CLIPS does not capture the return of system calls, the intermediate +; value is stored in a file. +(deffunction get-now () + (system "date '+%y%t%j' > datefile.dat") + (open "datefile.dat" datefile "r") + (bind ?year (read datefile)) + (bind ?day (read datefile)) + (close datefile) + ( +(div ?year 4) (* ?year 365) ?day) +) + +(deffunction elapsed-time (?date) + (- (get-now) ?date)) + +; is date more than 6 mo ago? +(deffunction six-months (?date) + (< 180 (elapsed-time ?date))) + +; is date more than 5 years ago? +(deffunction five-years (?date) + (< 1826 (elapsed-time ?date))) + --- clips-6.24.orig/debian/xclips.1x +++ clips-6.24/debian/xclips.1x @@ -0,0 +1,58 @@ +.\" Process this file with +.\" groff -man -Tascii foo.1 +.\" +.PU +.TH CLIPS 1 "July 2003" Linux "C Language Integrated Production System" +.SH NAME +xclips \- GUI for the expert system programming language +.SH SYNOPSIS +.B xclips +.SH DESCRIPTION +\fBCLIPS\fR is a productive development and delivery expert system tool which +provides a complete environment for the construction of rule and/or +object based expert systems. CLIPS is being used by numerous users +throughout the public and private community including: all NASA sites +and branches of the military, numerous federal bureaus, government +contractors, universities, and many companies. + +.B +Xclips +provides an X11-based GUI (developed with Xaw) that can be used to run +the \fBCLIPS\fR interpreter. Through the GUI you can load clips files, +run the interpreter and do tracing and debugging of \fBCLIPS\fR programs. + +.SH FILES +.TP +.I /usr/lib/clips/clips.hlp +The help for the \fBBCLIPS\fR interpreter, type in \fI(help)\fR once +the interpreter is run it to read it. +.TP +.I /etc/X11/app-defaults/Xclips +The default of the GUI setup including size, color and other Xaw attributes. + +.SH BUGS +.PP +\fBCLIPS\fR is old software so bugs are not unheard of. IF you find any +bugs please report them to the Debian developer, for more information +read \fI/usr/share/doc/debian/bug-reporting.txt\fR. + +.SH SEE ALSO +.BR clips(1) +.BR /usr/share/doc/clips-common/CLIPS-FAQ +In Debian systems, you will find the FAQ file compressed, use +zcat or zless to read it. + +.BR /usr/share/doc/clips-commo/html +You will find more documentation from upstream development in the html directoryin Debian systems. + +.BR /usr/share/doc/clips-common/examples/ +A number of examples of \fBCLIPS\fR program are available so you can test +the interpreter and learn how it works. You can, for example, load one +of them with \fB(load "/usr/share/doc/clips-common/examples/wordgame.clp")\fR +and run it using \fB(reset)\fR and \fB(run)\fR. + + +.SH COPYRIGHT +This manpage was made by Javier Fernandez-Sanguino + for Debian GNU/Linux (but may be used +by others) --- clips-6.24.orig/debian/clips.postinst +++ clips-6.24/debian/clips.postinst @@ -0,0 +1,3 @@ +#!/bin/sh + +#DEBHELPER# --- clips-6.24.orig/debian/compat +++ clips-6.24/debian/compat @@ -0,0 +1 @@ +4 --- clips-6.24.orig/debian/xclips.dirs +++ clips-6.24/debian/xclips.dirs @@ -0,0 +1,4 @@ +usr/bin +etc/X11/app-defaults +usr/share/pixmaps +usr/share/applications --- clips-6.24.orig/debian/xclips.desktop +++ clips-6.24/debian/xclips.desktop @@ -0,0 +1,20 @@ +[Desktop Entry] +# The format of this file is specified at +# http://freedesktop.org/Standards/desktop-entry-spec/ +# The entries are in the order they are listed in version 0.9.4 +Type=Application +Version=1.0 +Encoding=UTF-8 +Name=XCLIPS +GenericName=Expert system tool +GenericName[en_GB]=Expert system tool +GenericName[es]=Herramienta de sistemas expertos +Comment=Expert system tool +Comment[es]=Herramienta de sistemas expertos +Icon=clips.xpm +TryExec=xclips +Exec=xclips +Path= +Terminal=false +MimeType= +Categories=Development;Building;ArtificialIntelligence --- clips-6.24.orig/debian/postinst +++ clips-6.24/debian/postinst @@ -0,0 +1,16 @@ +#!/bin/sh +set -e + +#install-info --description='CLIPS. An expert system tool.' \ +# --quiet /usr/info/clips.info + +case "$1" in +"configure" ) + ldconfig + ;; +* ) + ;; +esac + +#DEBHELPER# + --- clips-6.24.orig/debian/libclips-dev.dirs +++ clips-6.24/debian/libclips-dev.dirs @@ -0,0 +1,2 @@ +usr/include/clips +usr/lib --- clips-6.24.orig/debian/clips.xpm +++ clips-6.24/debian/clips.xpm @@ -0,0 +1,783 @@ +/* XPM */ +static char * clips_xpm[] = { +"48 48 732 2", +" c None", +". c #5CA959", +"+ c #439C43", +"@ c #439D42", +"# c #369533", +"$ c #339632", +"% c #339534", +"& c #389636", +"* c #369736", +"= c #339233", +"- c #138414", +"; c #047A05", +"> c #007A00", +", c #007F00", +"' c #007E00", +") c #008000", +"! c #008100", +"~ c #008001", +"{ c #018001", +"] c #037E03", +"^ c #148613", +"/ c #2F9530", +"( c #218822", +"_ c #057A05", +": c #007B01", +"< c #007C00", +"[ c #008600", +"} c #008900", +"| c #008800", +"1 c #008A00", +"2 c #008300", +"3 c #067E06", +"4 c #228C24", +"5 c #369136", +"6 c #067905", +"7 c #008500", +"8 c #008C00", +"9 c #008E00", +"0 c #008F00", +"a c #009000", +"b c #009400", +"c c #078007", +"d c #3E9B3E", +"e c #218521", +"f c #017B01", +"g c #007B00", +"h c #008D00", +"i c #009300", +"j c #009500", +"k c #009600", +"l c #198819", +"m c #1F841F", +"n c #009200", +"o c #009A00", +"p c #009D00", +"q c #00A000", +"r c #009E00", +"s c #00A100", +"t c #009700", +"u c #1C8B1B", +"v c #278B26", +"w c #027902", +"x c #009B00", +"y c #00A400", +"z c #00A300", +"A c #00A700", +"B c #00A500", +"C c #00A900", +"D c #00AB00", +"E c #00A600", +"F c #009800", +"G c #228C23", +"H c #2E8B2D", +"I c #027803", +"J c #008B00", +"K c #00AC00", +"L c #018201", +"M c #248B24", +"N c #0B790C", +"O c #008400", +"P c #009900", +"Q c #009C00", +"R c #009F00", +"S c #038002", +"T c #3A9338", +"U c #268524", +"V c #007900", +"W c #008700", +"X c #09820A", +"Y c #367436", +"Z c #316D31", +"` c #366C36", +" . c #346B34", +".. c #316F31", +"+. c #326D33", +"@. c #356E36", +"#. c #317031", +"$. c #336C34", +"%. c #2F6F31", +"&. c #356C35", +"*. c #317032", +"=. c #366E36", +"-. c #336D33", +";. c #306B32", +">. c #2C772C", +",. c #029102", +"'. c #10820F", +"). c #308B2F", +"!. c #FEC837", +"~. c #FFC434", +"{. c #FDC036", +"]. c #FEBC36", +"^. c #FBB43A", +"/. c #FEB63E", +"(. c #338833", +"_. c #027703", +":. c #447E44", +"<. c #1E7F1F", +"[. c #219321", +"}. c #81AA7C", +"|. c #F7C83C", +"1. c #FBBE05", +"2. c #FAB804", +"3. c #F7AF06", +"4. c #F9AA05", +"5. c #FAA605", +"6. c #FB9E02", +"7. c #F9A623", +"8. c #0F7C11", +"9. c #008200", +"0. c #039703", +"a. c #518A51", +"b. c #F7AD3D", +"c. c #FC9E0D", +"d. c #FE9D04", +"e. c #FCA51D", +"f. c #F9B042", +"g. c #348D37", +"h. c #289E28", +"i. c #F7D784", +"j. c #FACA32", +"k. c #FAC92C", +"l. c #FBBE0C", +"m. c #F6BD0D", +"n. c #DAB044", +"o. c #F09F17", +"p. c #F9A414", +"q. c #2E832C", +"r. c #017404", +"s. c #029902", +"t. c #5E975E", +"u. c #A76D27", +"v. c #B46D14", +"w. c #986D3B", +"x. c #B56B0E", +"y. c #9C7349", +"z. c #AF6D19", +"A. c #AA732F", +"B. c #379238", +"C. c #01AA01", +"D. c #2BA62B", +"E. c #F7D381", +"F. c #FAC011", +"G. c #F7BF09", +"H. c #E8BD21", +"I. c #F5BE0E", +"J. c #F7C00D", +"K. c #F0C847", +"L. c #F7A817", +"M. c #F69B11", +"N. c #137815", +"O. c #007701", +"P. c #009100", +"Q. c #049F04", +"R. c #599559", +"S. c #383837", +"T. c #0E121B", +"U. c #181C22", +"V. c #1F242C", +"W. c #262E38", +"X. c #28313D", +"Y. c #272F3B", +"Z. c #2A343C", +"`. c #252D39", +" + c #1F252F", +".+ c #181C23", +"++ c #0E1016", +"@+ c #44484B", +"#+ c #5DA65D", +"$+ c #F4D079", +"%+ c #F8BE16", +"&+ c #F9BB08", +"*+ c #DFB437", +"=+ c #DDBD3B", +"-+ c #FBBC03", +";+ c #FCBC03", +">+ c #FDB504", +",+ c #FDB006", +"'+ c #FBA906", +")+ c #FA9D02", +"!+ c #F29F22", +"~+ c #3E8B3F", +"{+ c #027305", +"]+ c #007801", +"^+ c #04A204", +"/+ c #F6B64D", +"(+ c #896730", +"_+ c #141C24", +":+ c #1D2430", +"<+ c #25313D", +"[+ c #2D3947", +"}+ c #323B4A", +"|+ c #333D4C", +"1+ c #2F3C4D", +"2+ c #2D3846", +"3+ c #26313C", +"4+ c #1F2831", +"5+ c #161B22", +"6+ c #886335", +"7+ c #F9B448", +"8+ c #FCB84D", +"9+ c #FCC04D", +"0+ c #F7C04D", +"a+ c #F8C14C", +"b+ c #FBBC18", +"c+ c #F9B306", +"d+ c #DDB43E", +"e+ c #DDB335", +"f+ c #E1AB2C", +"g+ c #E1A42C", +"h+ c #E0A62D", +"i+ c #E0A12D", +"j+ c #E09D32", +"k+ c #288229", +"l+ c #007203", +"m+ c #00AA00", +"n+ c #02A102", +"o+ c #5EA05E", +"p+ c #FA9B09", +"q+ c #A76A0E", +"r+ c #1E222B", +"s+ c #26333F", +"t+ c #2F3C4C", +"u+ c #37475A", +"v+ c #3A4E63", +"w+ c #3B5269", +"x+ c #394C61", +"y+ c #37485C", +"z+ c #2F3B4B", +"A+ c #1F242D", +"B+ c #97570D", +"C+ c #F59506", +"D+ c #FAA204", +"E+ c #F8A305", +"F+ c #F9A504", +"G+ c #FBAF04", +"H+ c #F4AE09", +"I+ c #DCAD3D", +"J+ c #046D08", +"K+ c #007303", +"L+ c #019401", +"M+ c #04A404", +"N+ c #599D59", +"O+ c #D59C4E", +"P+ c #6E583E", +"Q+ c #212C38", +"R+ c #2C3947", +"S+ c #384658", +"T+ c #3E5368", +"U+ c #465D74", +"V+ c #465F75", +"W+ c #455E76", +"X+ c #415466", +"Y+ c #39485C", +"Z+ c #2D3847", +"`+ c #212B35", +" @ c #6F5740", +".@ c #CE9849", +"+@ c #D69F48", +"@@ c #D6A247", +"#@ c #D5A647", +"$@ c #D2A64A", +"%@ c #FAC426", +"&@ c #FCBE1E", +"*@ c #FDBB1F", +"=@ c #FCB121", +"-@ c #FEAD20", +";@ c #FEAB25", +">@ c #328233", +",@ c #006C06", +"'@ c #007502", +")@ c #1C7F1C", +"!@ c #348934", +"~@ c #329032", +"{@ c #359635", +"]@ c #2F9C2D", +"^@ c #05A205", +"/@ c #04A704", +"(@ c #599859", +"_@ c #716147", +":@ c #26323D", +"<@ c #333F4F", +"[@ c #3A4E62", +"}@ c #465D73", +"|@ c #4F6980", +"1@ c #56718D", +"2@ c #4F6983", +"3@ c #475F75", +"4@ c #3B5066", +"5@ c #354150", +"6@ c #27323B", +"7@ c #736252", +"8@ c #F7C52D", +"9@ c #FDBC01", +"0@ c #F2B710", +"a@ c #ECAA18", +"b@ c #EEA917", +"c@ c #EEA518", +"d@ c #FAA002", +"e@ c #F9A018", +"f@ c #1B771E", +"g@ c #006B06", +"h@ c #3E943F", +"i@ c #0DA70D", +"j@ c #02A602", +"k@ c #5EA55E", +"l@ c #FE9E06", +"m@ c #A96D10", +"n@ c #27333F", +"o@ c #314357", +"p@ c #415363", +"q@ c #48627A", +"r@ c #57748F", +"s@ c #5E7998", +"t@ c #5C758C", +"u@ c #486177", +"v@ c #3F5567", +"w@ c #2F4255", +"x@ c #29353E", +"y@ c #9E5910", +"z@ c #FA9702", +"A@ c #FD9C01", +"B@ c #FDA801", +"C@ c #FCA701", +"D@ c #FCB101", +"E@ c #FCB401", +"F@ c #FEBC00", +"G@ c #FEBC02", +"H@ c #FABE05", +"I@ c #FBBE03", +"J@ c #F5BF11", +"K@ c #F1A420", +"L@ c #F9A113", +"M@ c #096A0D", +"N@ c #208921", +"O@ c #249420", +"P@ c #249B22", +"Q@ c #25A125", +"R@ c #27A527", +"S@ c #06A606", +"T@ c #04A604", +"U@ c #599C59", +"V@ c #D8A24C", +"W@ c #866536", +"X@ c #24313F", +"Y@ c #334151", +"Z@ c #3F5263", +"`@ c #556F83", +" # c #587591", +".# c #516F89", +"+# c #475F76", +"@# c #405163", +"## c #334354", +"$# c #27323E", +"%# c #806035", +"&# c #D79B44", +"*# c #D6A142", +"=# c #D6A342", +"-# c #D7A343", +";# c #D5A741", +"># c #D4AA41", +",# c #D4A846", +"'# c #D6B041", +")# c #D5BB45", +"!# c #D5BC41", +"~# c #F2C51A", +"{# c #FABF08", +"]# c #F6C63C", +"^# c #FBBD26", +"/# c #F9BA2B", +"(# c #F8BB3C", +"_# c #F9A40D", +":# c #F69F10", +"<# c #2C792A", +"[# c #016505", +"}# c #006B05", +"|# c #018202", +"1# c #04A504", +"2# c #59A359", +"3# c #3F464D", +"4# c #252E36", +"5# c #2E3C4C", +"6# c #38495D", +"7# c #465667", +"8# c #4B6177", +"9# c #4B647D", +"0# c #49627A", +"a# c #44586B", +"b# c #3B4A5B", +"c# c #303D4C", +"d# c #222C35", +"e# c #475261", +"f# c #D9BF3F", +"g# c #F8BB06", +"h# c #FCB901", +"i# c #FAB002", +"j# c #FCAB01", +"k# c #FCA501", +"l# c #F89F04", +"m# c #E9A12D", +"n# c #2B762D", +"o# c #006204", +"p# c #006A07", +"q# c #007104", +"r# c #00A800", +"s# c #5BA45B", +"t# c #FCAF36", +"u# c #A07027", +"v# c #1E2733", +"w# c #2A3641", +"x# c #344151", +"y# c #394B60", +"z# c #3F5265", +"A# c #455668", +"B# c #415465", +"C# c #3B4B5E", +"D# c #37414F", +"E# c #2A3645", +"F# c #20262D", +"G# c #986428", +"H# c #F8AB36", +"I# c #FBB331", +"J# c #FBB934", +"K# c #FEBC34", +"L# c #FBBD35", +"M# c #F9C43A", +"N# c #186A19", +"O# c #006103", +"P# c #04A104", +"Q# c #5DAC5D", +"R# c #EE9B20", +"S# c #9B6616", +"T# c #161F28", +"U# c #1F2A35", +"V# c #293743", +"W# c #2D3C4C", +"X# c #364254", +"Y# c #394456", +"Z# c #374253", +"`# c #313D4D", +" $ c #293643", +".$ c #202934", +"+$ c #181E27", +"@$ c #8E5917", +"#$ c #E9981C", +"$$ c #EF9D1A", +"%$ c #EEA11A", +"&$ c #EAA51B", +"*$ c #ECA717", +"=$ c #FAB104", +"-$ c #F6BA1C", +";$ c #0A610B", +">$ c #006003", +",$ c #006806", +"'$ c #006D05", +")$ c #03A003", +"!$ c #58A358", +"~$ c #45413D", +"{$ c #0F151D", +"]$ c #151E26", +"^$ c #1E2832", +"/$ c #24303B", +"($ c #283540", +"_$ c #2B3845", +":$ c #1C2632", +"<$ c #192129", +"[$ c #0D131A", +"}$ c #4C4D4A", +"|$ c #E6AA2E", +"1$ c #F9B603", +"2$ c #FBC01D", +"3$ c #FDC011", +"4$ c #FCB90A", +"5$ c #FCB50A", +"6$ c #FEB107", +"7$ c #FDA408", +"8$ c #FDA210", +"9$ c #F6AC2D", +"0$ c #477547", +"a$ c #025802", +"b$ c #006605", +"c$ c #007403", +"d$ c #049E04", +"e$ c #5CAD5E", +"f$ c #2E3434", +"g$ c #61421F", +"h$ c #6A431C", +"i$ c #464644", +"j$ c #554F3C", +"k$ c #6B481C", +"l$ c #545141", +"m$ c #42464A", +"n$ c #66471E", +"o$ c #5E4221", +"p$ c #2D3432", +"q$ c #41A83E", +"r$ c #1CB219", +"s$ c #57BB59", +"t$ c #E3B32D", +"u$ c #FABB04", +"v$ c #FBC213", +"w$ c #FCCE45", +"x$ c #F8C327", +"y$ c #F7BE07", +"z$ c #E9B221", +"A$ c #E9AA20", +"B$ c #E9A920", +"C$ c #E5A327", +"D$ c #F7A008", +"E$ c #FBA211", +"F$ c #347535", +"G$ c #09670A", +"H$ c #035D03", +"I$ c #006906", +"J$ c #006F05", +"K$ c #007D01", +"L$ c #049D04", +"M$ c #55A155", +"N$ c #E99D30", +"O$ c #EE9311", +"P$ c #E3A348", +"Q$ c #F49207", +"R$ c #DFA958", +"S$ c #ED971B", +"T$ c #E7A13E", +"U$ c #38A238", +"V$ c #00A200", +"W$ c #0A9F0A", +"X$ c #4DB651", +"Y$ c #ECB822", +"Z$ c #F7BF08", +"`$ c #FABE03", +" % c #F5C112", +".% c #F1A623", +"+% c #F79F13", +"@% c #417740", +"#% c #4C9A4C", +"$% c #5AA459", +"%% c #368A37", +"&% c #036708", +"*% c #019701", +"=% c #319D31", +"-% c #209C20", +";% c #0B970A", +">% c #54B355", +",% c #D7B44D", +"'% c #D7BA45", +")% c #E5BF2A", +"!% c #FAC11D", +"~% c #FABC1C", +"{% c #FAB61C", +"]% c #FBB424", +"^% c #FBA105", +"/% c #F89E14", +"(% c #527F52", +"_% c #628D62", +":% c #579555", +"<% c #0D6C0E", +"[% c #007602", +"}% c #0B960A", +"|% c #3EA53B", +"1% c #40A840", +"2% c #45AC44", +"3% c #40A941", +"4% c #42AB43", +"5% c #41AA43", +"6% c #42AB40", +"7% c #40AB40", +"8% c #44AC44", +"9% c #40AA42", +"0% c #45AC45", +"a% c #3BA63B", +"b% c #30A22F", +"c% c #019801", +"d% c #078907", +"e% c #3F9A3B", +"f% c #4C9F4F", +"g% c #EDB81D", +"h% c #F0B419", +"i% c #EEAB17", +"j% c #EFAC16", +"k% c #F0A317", +"l% c #EC9D1A", +"m% c #E2A23E", +"n% c #437E44", +"o% c #026104", +"p% c #007204", +"q% c #019D01", +"r% c #017A01", +"s% c #258325", +"t% c #357936", +"u% c #005C01", +"v% c #137A15", +"w% c #3A733A", +"x% c #005A00", +"y% c #005F02", +"z% c #006706", +"A% c #007F01", +"B% c #077907", +"C% c #5A8F5A", +"D% c #3A703A", +"E% c #005600", +"F% c #007A01", +"G% c #007C01", +"H% c #008201", +"I% c #017603", +"J% c #448D45", +"K% c #396939", +"L% c #004D00", +"M% c #006505", +"N% c #08730B", +"O% c #366437", +"P% c #004300", +"Q% c #005000", +"R% c #005D01", +"S% c #006E05", +"T% c #008601", +"U% c #086D0E", +"V% c #5B7B5C", +"W% c #10550F", +"X% c #014301", +"Y% c #004F00", +"Z% c #005800", +"`% c #006304", +" & c #006907", +".& c #007D00", +"+& c #08680C", +"@& c #477D46", +"#& c #3E7E3E", +"$& c #205F20", +"%& c #136013", +"&& c #11630F", +"*& c #0E640E", +"=& c #016003", +"-& c #006A06", +";& c #007004", +">& c #007902", +",& c #006404", +"'& c #08630A", +")& c #567556", +"!& c #688968", +"~& c #81AF7F", +"{& c #8FBC8C", +"]& c #8EBB8C", +"^& c #85B884", +"/& c #217122", +"(& c #085D09", +"_& c #677767", +":& c #5D7A5F", +"<& c #607C61", +"[& c #547E54", +"}& c #166115", +"|& c #005500", +"1& c #006B07", +"2& c #006705", +"3& c #005E02", +"4& c #005900", +"5& c #085608", +"6& c #084608", +"7& c #004C00", +"8& c #005200", +"9& c #005A01", +"0& c #005B00", +"a& c #006203", +"b& c #006002", +"c& c #005700", +"d& c #005400", +"e& c #084908", +"f& c #3B7C3A", +"g& c #4C9747", +"h& c #4D9A49", +"i& c #4D9B48", +"j& c #4E9B49", +"k& c #4B9D47", +"l& c #4EA04A", +"m& c #4A9D46", +"n& c #4BA048", +"o& c #4B9F46", +"p& c #4B9F47", +"q& c #4D9F48", +"r& c #48A045", +"s& c #4CA047", +"t& c #4C9E48", +"u& c #4C9F4A", +"v& c #4C9F48", +"w& c #4B9A47", +"x& c #4C9E49", +"y& c #4D9A48", +"z& c #4B9948", +"A& c #397B37", +"B& c #6A8A68", +"C& c #83A181", +"D& c #83A083", +"E& c #81A582", +"F& c #83A683", +"G& c #84A883", +"H& c #81A981", +"I& c #83AB82", +"J& c #84AA83", +"K& c #85AB84", +"L& c #80AB80", +"M& c #84AB83", +"N& c #82AC81", +"O& c #85A984", +"P& c #82AC82", +"Q& c #86A985", +"R& c #82A682", +"S& c #83A782", +"T& c #83A283", +"U& c #83A284", +"V& c #84A183", +"W& c #6A876B", +" ", +" ", +" ", +" . + @ # $ $ % & * ", +" = - ; > , , ' ) ! ~ { ] ^ / ", +" ( _ : < ) [ [ [ } | } [ [ 1 2 ~ 3 4 ", +" 5 6 > ) 7 [ 8 9 0 a b a b b 0 1 9 } } , c d ", +" e f g ! [ 8 h i b b b j k j j b b a a 8 | 2 { l ", +" m > ' 2 8 9 n i b o p q r s s r s p t b b n } | ! u ", +" v w ' 7 1 a b k x y z A B C D E E E z z r F b i 9 [ ! G ", +" H I < 2 J i b F s y B C K K K K K K K K C B q r j a 9 | L M ", +" N > O } 0 b P x Q p z z y C C K K K A z s r s R p k b h } S T ", +" U V O W a b t X Y Z ` ...+.@.#.$.%.&.*...=.-.;.>.,.r b a h '.). !.~.{.].^./. ", +" (._.> 7 h i F k :. <.y Q j [.}. |.1.2.3.4.5.6.7. ", +" 8.> 9.} b b p 0.a. b.c. d. e.f. g.E z h. i.j.k.l.m.n. o.p. ", +" q.r.> 7 } b x z s.t. u.v. w.x.y. z.A. B.C.D. E.F.G.H.I.J.K. L.M. ", +" N.O.< W P.j r y Q.R. S.T.U.V.W.X.Y.Z.`. +.+++@+ #+ $+%+&+*+ =+-+;+>+,+'+)+!+ ", +" ~+{+]+' [ n k r C ^+R. /+(+_+:+<+[+}+|+1+2+3+4+5+6+7+8+9+0+a+b+c+d+ e+f+g+h+i+j+ ", +" k+l+> 2 h n x s m+n+o+ p+q+r+s+t+u+v+w+x+y+z+s+A+B+C+D+E+F+G+H+I+ ", +" J+K+> 2 h L+P z m+M+N+ O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@ %@&@*@=@-@;@ ", +" >@,@'@)@!@~@{@]@^@K /@(@ _@:@<@[@}@|@1@2@3@4@5@6@7@ 8@9@0@a@b@c@d@e@ ", +" f@g@K+h@ i@K j@k@ l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@A@B@C@D@E@F@G@H@F@I@J@ K@L@ ", +" M@,@K+N@O@P@Q@R@S@m+T@U@ V@W@X@Y@Z@3@`@ #.#+#@###$#%#&#*#=#-#;#>#,#'#)#!#~#{#]#^#/#(#_#:# ", +" <#[#}#K+> |#} b P s K 1#2# 3#4#5#6#7#8#9#0#a#b#c#d#e# f#g#h#i#j#k#l#m# ", +" n#o#p#q#O.2 | b F q r#T@s# t#u#v#w#x#y#z#A#B#C#D#E#F#G#H#I#J#K#L#M# ", +" N#O#p#q#O.' O a j r B P#Q# R#S#T#U#V#W#X#Y#Z#`# $.$+$@$#$$$%$&$*$=$-$ ", +" ;$>$,$'$'@: 2 0 b x s )$!$ ~${$]$^$/$($_$($6@:$<$[$}$ |$1$2$ 3$4$5$6$7$8$9$ ", +"0$a$>$b$,@c$]+9.} b j R d$e$ f$g$h$i$j$k$l$m$n$o$p$ q$r$s$ t$u$v$w$x$y$z$A$B$C$D$E$ ", +"F$G$H$[#I$J$]+K$W J b P L$M$ N$O$ P$Q$R$ S$T$ U$V$W$X$ Y$Z$I@`$ % .%+% ", +"@%#%$%%%&%,@l+V ) | i t *%=% -%r F ;%>% ,%'%)%1.!%~%{%]%^%/% ", +" (%_%:%<%p#q#[%> 2 J n b }%|%1%2%3%4%5%2%6%7%8%8%1%9%2%0%a%b%c%k t a d%e%f% g%h%i%j%k%l%m% ", +" n%o%b$,@p%]+' O J b j o r z A C C C m+m+C C C C C y q q%k b a W ! r%s% ", +" t%u%o#p#g@l+]+~ [ h b t F Q R z r#K K K K K K B z R p b b a | 9.> v% ", +" w%x%y%z%p#J$c$> A%7 | n b t p o R z V$y B R q R o P b b 9 | ! > B%C% ", +" D%E%u%y%b$p#J$c$F%G%H%W 9 n j b o t Q o x t t j t b 0 J O ) > I%J% ", +" K%L%E%u%y%M%p#J$K+]+> ) 2 W 9 9 i b b b b b b b 9 1 | 2 g > [%N% ", +" O%P%Q%E%R%>$M%p#S%q#[%> ' ' ) 7 W [ J | } 1 1 O T%) > > ]+K+J$U% ", +" V%W%X%Y%Z%u%>$`% &p#J$K+c$V > A%.&! ) H%! , < ' g > O.'@q#S%p#+& ", +" @&#&$&%&&&*&=&O#b$-&,@J$;&l+'@O.]+]+> ]+>&V ]+[%l+;&S% &b$,&'& ", +" )&!&~&{&]&^&/&u%>$,&b$p#,@,@S%;&p%q#q#q#p%;&J$,@,@I$I$`%O#y%(& ", +" _&:&<&[&}&|&u%u%y%O#`%z%I$ &-&-&1&1&1& &-&2&b$o#>$3&x%4&5& ", +" 6&7&8&E%9&0&R%y%a&o#`%`%a&,&,&b&O#a&R%R%x%c&d&Y%e& ", +" f&g&h&i&j&k&k&l&m&n&o&p&p&q&r&s&q&t&u&v&w&x&y&z&A& ", +" B&C&D&E&E&F&G&H&I&J&K&L&M&N&O&H&P&H&Q&R&S&T&U&V&W& ", +" ", +" ", +" ", +" "}; --- clips-6.24.orig/debian/libclips.prerm +++ clips-6.24/debian/libclips.prerm @@ -0,0 +1,5 @@ +#!/bin/sh + + +#DEBHELPER# + --- clips-6.24.orig/debian/clips-common.dirs +++ clips-6.24/debian/clips-common.dirs @@ -0,0 +1,2 @@ +usr/share/doc/clips-common +usr/share/clips --- clips-6.24.orig/debian/rules +++ clips-6.24/debian/rules @@ -0,0 +1,151 @@ +#!/usr/bin/make -f +# Sample debian/rules file - for GNU Hello (1.3). +# Copyright 1994,1995 by Ian Jackson. +# I hereby give you perpetual unlimited permission to copy, +# modify and relicense this file, provided that you do not remove +# my name from the file itself. (I assert my moral right of +# paternity under the Copyright, Designs and Patents Act 1988.) +# This file may have to be extensively modified + +# There used to be `source' and `diff' targets in this file, and many +# packages also had `changes' and `dist' targets. These functions +# have been taken over by dpkg-source, dpkg-genchanges and +# dpkg-buildpackage in a package-independent way, and so these targets +# are obsolete. + +#export DH_VERBOSE=1 +export DH_OPTIONS + +package=clips + +clipssrc/configure: clipssrc/configure.in + cd clipssrc && autoconf + cd clipssrc && chmod a+x ./configure ./mkinstalldirs + +x-prjct/xinterface/configure: x-prjct/xinterface/configure.in + cd x-prjct/xinterface && autoconf + +configure: clipssrc/configure.status +clipssrc/configure.status: + dh_testdir + cd clipssrc && sh ./configure --prefix=$(CURDIR)/debian/clips/usr + +configure-x: x-prjct/xinterface/configure.status +x-prjct/xinterface/configure.status: + dh_testdir + cd x-prjct/xinterface && sh ./configure \ + --prefix=$(CURDIR)/debian/clips/usr/ \ + --enable-xclips --with-clipssrc=../../clipssrc/ + cd clipssrc && sh ./configure --prefix=$(CURDIR)/debian/xclips/usr + +build: build-stamp +build-stamp: configure + dh_testdir + cd clipssrc && $(MAKE) -f Makefile clips + touch $@ + +build-x: build-x-stamp +build-x-stamp: configure-x + dh_testdir + cd x-prjct/xinterface && $(MAKE) -f Makefile xclips + touch $@ + +clean: + dh_testdir + dh_testroot + -rm -f build build-x configure configure-x + cd clipssrc && ( $(MAKE) -i distclean || $(MAKE) -f Makefile.in distclean ) + cd x-prjct/xinterface && ( $(MAKE) -i distclean || $(MAKE) -f Makefile.in distclean ) + dh_clean build-stamp build-x-stamp + +install-x: DH_OPTIONS= +install-x: build-x + cd x-prjct/xinterface && $(MAKE) -f Makefile \ + INSTALL_PROGRAM='install -c -s' \ + prefix=$(CURDIR)/debian/xclips/usr install-bin + install -m644 Xclips $(CURDIR)/debian/xclips/etc/X11/app-defaults/Xclips + # Remove empty dirs created by the install target + [ ! -d $(CURDIR)/debian/xclips/usr/share/clips ] || rmdir $(CURDIR)/debian/xclips/usr/share/clips + # Install desktop file for Xversion + install -m 644 debian/xclips.desktop $(CURDIR)/debian/xclips/usr/share/applications + +install: DH_OPTIONS= +install: build + dh_testdir + dh_testroot + dh_installdebconf + dh_clean -k + dh_installdirs -a + cd clipssrc && $(MAKE) -f Makefile INSTALL_PROGRAM='install -c -s' \ + prefix=$(CURDIR)/debian/libclips/usr install-libs + # Fix for lib files + rm `pwd`/debian/libclips/usr/lib/libclips.a + rm `pwd`/debian/libclips/usr/lib/libclips.so + cd clipssrc && $(MAKE) -f Makefile INSTALL_PROGRAM='install -c -s' \ + prefix=$(CURDIR)/debian/clips/usr install-bin + cd clipssrc && $(MAKE) -f Makefile INSTALL_PROGRAM='install -c -s' \ + prefix=$(CURDIR)/debian/libclips-dev/usr install-includes + install -m655 clipssrc/libclips.a `pwd`/debian/libclips-dev/usr/lib/ + [ ! -e `pwd`/debian/libclips-dev/usr/lib/libclips.so ] || ( cd `pwd`/debian/libclips-dev/usr/lib && ln -s libclips.so.6.24 libclips.so ) + # Remove empty dirs created by the install target + [ ! -d $(CURDIR)/debian/clips/usr/share/clips ] || rmdir $(CURDIR)/debian/clips/usr/share/clips + [ ! -d $(CURDIR)/debian/libclips-dev/usr/share/doc/clips ] || rmdir $(CURDIR)/debian/libclips-dev/usr/share/doc/clips + # Install desktop file + install -m 644 debian/clips.xpm $(CURDIR)/debian/clips/usr/share/pixmaps + install -m 644 debian/clips.desktop $(CURDIR)/debian/clips/usr/share/applications + + +binary-indep: DH_OPTIONS=-i +binary-indep: + dh_testdir + dh_testroot + dh_installdirs + dh_installdocs + dh_installdocs -pclips-common doc/* + dh_installexamples -pclips-common examples/* + # Install help + install -m644 clips.hlp debian/clips-common/usr/share/clips + dh_installman + dh_installinfo + dh_installchangelogs + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb + +binary-arch: DH_OPTIONS=-a +binary-arch: install + dh_testdir + dh_testroot + dh_installdirs + dh_installdocs + dh_installmenu + dh_installcron + dh_installman + dh_installinfo + dh_installchangelogs + dh_link + dh_strip + dh_compress + dh_fixperms + dh_makeshlibs -V + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch + +update-doc: + wget http://clipsrules.sourceforge.net/FAQ.html -O doc/CLIPS-FAQ + cd doc/html && wget -l 1 -m -k --no-parent -nd -R pdf,gif,png,jpg http://clipsrules.sourceforge.net/ + +# Examples are now at http://downloads.sourceforge.net/clipsrules/examples_624.zip +#update-examples: +# cd examples && wget --cut-dirs=4 -nH -l 1 -m -k --no-parent -nd http://www.ghg.net/clips/download/executables/examples/ +# find examples/ -name "*\?*" -exec rm -f \{\} \; + +.PHONY: build build-x clean binary binary-arch binary-indep install --- clips-6.24.orig/debian/libclips.dirs +++ clips-6.24/debian/libclips.dirs @@ -0,0 +1 @@ +usr/lib --- clips-6.24.orig/debian/clips.desktop +++ clips-6.24/debian/clips.desktop @@ -0,0 +1,20 @@ +[Desktop Entry] +# The format of this file is specified at +# http://freedesktop.org/Standards/desktop-entry-spec/ +# The entries are in the order they are listed in version 0.9.4 +Type=Application +Version=1.0 +Encoding=UTF-8 +Name=CLIPS +GenericName=Expert system tool +GenericName[en_GB]=Expert system tool +GenericName[es]=Herramienta de sistemas expertos +Comment=Expert system tool +Comment[es]=Herramienta de sistemas expertos +Icon=clips.xpm +TryExec=clips +Exec=clips +Path= +Terminal=true +MimeType= +Categories=Development;Building;ArtificialIntelligence --- clips-6.24.orig/debian/clips.dirs +++ clips-6.24/debian/clips.dirs @@ -0,0 +1,3 @@ +usr/bin +usr/share/pixmaps +usr/share/applications --- clips-6.24.orig/debian/control +++ clips-6.24/debian/control @@ -0,0 +1,73 @@ +Source: clips +Section: interpreters +Priority: optional +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Javier Fernandez-Sanguino Pen~a +Build-Depends: libncurses-dev, debhelper +Standards-Version: 3.5.7 +Homepage: http://clipsrules.sourceforge.net + +Package: clips +Architecture: any +Depends: clips-common, ${shlibs:Depends} +Suggests: clips-doc +Description: "C" Language Integrated Production System + CLIPS 6.0 is an OPS-like forward chaining production system written + in ANSI C by NASA. The CLIPS inference engine includes truth maintenance, + dynamic rule addition, and customizable conflict resolution strategies. + . + CLIPS, including the runtime version, is easily embeddable in other + applications. CLIPS includes an object-oriented language called COOL + (CLIPS Object-Oriented Language) which is directly integrated with the + inference engine. + +Package: libclips +Architecture: any +Section: libs +Depends: ${shlibs:Depends} +Description: CLIPS shared libraries + CLIPS 6.0 is an OPS-like forward chaining production system written + in ANSI C by NASA. The CLIPS inference engine includes truth maintenance, + dynamic rule addition, and customizable conflict resolution strategies. + . + CLIPS, including the runtime version, is easily embeddable in other + applications. CLIPS includes an object-oriented language called COOL + (CLIPS Object-Oriented Language) which is directly integrated with the + inference engine. + . + This package installs the required shared libraries. + +Package: libclips-dev +Architecture: any +Section: libdevel +Depends: libclips (= ${Source-Version}), libc6-dev +Recommends: clips-doc +Description: CLIPS shared libraries + CLIPS 6.0 is an OPS-like forward chaining production system written + in ANSI C by NASA. The CLIPS inference engine includes truth maintenance, + dynamic rule addition, and customizable conflict resolution strategies. + . + CLIPS, including the runtime version, is easily embeddable in other + applications. CLIPS includes an object-oriented language called COOL + (CLIPS Object-Oriented Language) which is directly integrated with the + inference engine. + . + This package installs the static libraries and headers. + +Package: clips-common +Architecture: all +Recommends: clips +Description: CLIPS common files and examples + CLIPS 6.0 is an OPS-like forward chaining production system written + in ANSI C by NASA. The CLIPS inference engine includes truth maintenance, + dynamic rule addition, and customizable conflict resolution strategies. + . + CLIPS, including the runtime version, is easily embeddable in other + applications. CLIPS includes an object-oriented language called COOL + (CLIPS Object-Oriented Language) which is directly integrated with the + inference engine. + . + This package installs the common files shared by both the text and + graphics interface, currently it includes both the help file and examples + of CLIPS programs that can be used to learn the language and test + the interfaces. --- clips-6.24.orig/debian/copyright +++ clips-6.24/debian/copyright @@ -0,0 +1,56 @@ +This is Debian GNU/Linux's prepackaged version of the NASA's CLIPS +expert system. + +This package was put together by me, Javier Fernandez-Sanguino Peña +, from the NASA sources, which I obtained from +http://www.ghg.net/clips/download/source/ +http://www.ghg.net/clips/download/executables/examples/ +(originally at http://www.ghgcorp.com/clips/download/source/) + +Newer releases are now available at Sourceforge: +http://clipsrules.sourceforge.net +The project download page is available at: +http://sourceforge.net/project/showfiles.php?group_id=215471&package_id=260062 + +---------------------------------------------------------------------------- +CLIPS, as stated in its FAQ (http://clipsrules.sourceforge.net/FAQ.html#Q4), is freely +distributable: + +" +(...) + + 4) CAN CLIPS BE REDISTRIBUTED? ARE THERE ANY LICENSING FEES? +------------------------------------------------------------- + +Copies of CLIPS executables, documentation, and source code downloaded from the +CLIPS Project on SourceForge are subject to the following license agreement: + +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, and/or sell copies of the +Software, and to permit persons to whom the Software is furnished to do so. + +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 OF THIRD PARTY RIGHTS. IN +NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR +CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + +------------------------------------------------------------------------ +" + + +Previous versions of the FAQ also included the following notice: + +CLIPS is released as public domain software and as such you are under no +obligation to pay for its use. However, if you derive commercial or +monetary benefit from use of the software or just want to show support, +please consider making a voluntary payment based on the worth of the +software to you as compensation for the time and effort required to +develop and maintain CLIPS. Payments can be made online at +http://order.kagi.com/?JKT + --- clips-6.24.orig/debian/xclips.manpages +++ clips-6.24/debian/xclips.manpages @@ -0,0 +1 @@ +debian/xclips.1x --- clips-6.24.orig/debian/libclips.postinst +++ clips-6.24/debian/libclips.postinst @@ -0,0 +1,7 @@ +#!/bin/sh +case "$1" in + configure) + ldconfig + ;; +esac +#DEBHELPER# --- clips-6.24.orig/debian/libclips.shlibs +++ clips-6.24/debian/libclips.shlibs @@ -0,0 +1 @@ +libclips 6 libclips (>=6.21-1) --- clips-6.24.orig/debian/prerm +++ clips-6.24/debian/prerm @@ -0,0 +1,5 @@ +#!/bin/sh +set -e +#install-info --quiet --remove /usr/info/clips.info + +#DEBHELPER# --- clips-6.24.orig/debian/control.X +++ clips-6.24/debian/control.X @@ -0,0 +1,81 @@ +Source: clips +Section: interpreters +Priority: optional +Maintainer: Javier Fernandez-Sanguino Pen~a +Build-Depends: libncurses-dev, libxaw7-dev, libx11-dev, libxmu-dev, libxt-dev, x-dev, xlibs-data, debhelper +Standards-Version: 3.5.7 +Homepage: http://clipsrules.sourceforge.net + +Package: clips +Architecture: any +Depends: clips-common, ${shlibs:Depends} +Suggests: clips-doc +Description: "C" Language Integrated Production System + CLIPS 6.0 is an OPS-like forward chaining production system written + in ANSI C by NASA. The CLIPS inference engine includes truth maintenance, + dynamic rule addition, and customizable conflict resolution strategies. + . + CLIPS, including the runtime version, is easily embeddable in other + applications. CLIPS includes an object-oriented language called COOL + (CLIPS Object-Oriented Language) which is directly integrated with the + inference engine. + +Package: xclips +Architecture: any +Depends: clips-common, ${shlibs:Depends} +Description: Graphic interface to the "C" Language Integrated Production System + This package provides a graphical interface to clips that allows user to + have access to many functions and easy display of the agenda, + instance, facts... The functionality provided helps in constructing + and debugging clips' programs. + +Package: libclips +Architecture: any +Section: libs +Depends: ${shlibs:Depends} +Description: CLIPS shared libraries + CLIPS 6.0 is an OPS-like forward chaining production system written + in ANSI C by NASA. The CLIPS inference engine includes truth maintenance, + dynamic rule addition, and customizable conflict resolution strategies. + . + CLIPS, including the runtime version, is easily embeddable in other + applications. CLIPS includes an object-oriented language called COOL + (CLIPS Object-Oriented Language) which is directly integrated with the + inference engine. + . + This package installs the required shared libraries. + +Package: libclips-dev +Architecture: any +Section: libdevel +Depends: libclips (= ${Source-Version}), libc6-dev +Recommends: clips-doc +Description: CLIPS shared libraries + CLIPS 6.0 is an OPS-like forward chaining production system written + in ANSI C by NASA. The CLIPS inference engine includes truth maintenance, + dynamic rule addition, and customizable conflict resolution strategies. + . + CLIPS, including the runtime version, is easily embeddable in other + applications. CLIPS includes an object-oriented language called COOL + (CLIPS Object-Oriented Language) which is directly integrated with the + inference engine. + . + This package installs the static libraries and headers. + +Package: clips-common +Architecture: all +Recommends: clips | xclips +Description: CLIPS common files and examples + CLIPS 6.0 is an OPS-like forward chaining production system written + in ANSI C by NASA. The CLIPS inference engine includes truth maintenance, + dynamic rule addition, and customizable conflict resolution strategies. + . + CLIPS, including the runtime version, is easily embeddable in other + applications. CLIPS includes an object-oriented language called COOL + (CLIPS Object-Oriented Language) which is directly integrated with the + inference engine. + . + This package installs the common files shared by both the text and + graphics interface, currently it includes both the help file and examples + of CLIPS programs that can be used to learn the language and test + the interfaces. --- clips-6.24.orig/debian/TODO +++ clips-6.24/debian/TODO @@ -0,0 +1,8 @@ + +TODO file for CLIPS: + +- The configure.in does not properly test for ncurses vs. termcap +libraries. + +------------------------------ +Javier Fernandez-Sanguino Peña --- clips-6.24.orig/debian/README.Debian +++ clips-6.24/debian/README.Debian @@ -0,0 +1,46 @@ + +README for Clips +---------------- + +The clips-common package for Debian provides some examples +of expert system to play with. These have been downloaded from +the sourceforge page +(http://sourceforge.net/project/showfiles.php?group_id=215471&package_id=260062) +and are available under /usr/share/doc/clips-common/examples +(you need to, of course, install the 'clips-common' package) + +Here you have asample session that shows you how to load any of these +(note: some are provided compressed so you'll need to uncompress +them before loading the file into clips): + +---------------------------------------------------------------- +$ clips + CLIPS (V6.10 07/01/98) +CLIPS> (load /usr/share/doc/clips-doc/examples/wordgame.clp) +Defining defrule: startup +j +Defining defrule: generate-combinations +j+j +Defining defrule: find-solution +j+j+j+j+j+j+j+j+j+j +TRUE +CLIPS> (reset) +CLIPS> (run) + +The problem is +(program output omitted) + = 723970 + +CLIPS> (exit) +$ +---------------------------------------------------------------- + +If you want to provide some of your own examples (if they are distributed +with a free license) please send them to the package maintainer or +submit them as 'wishlist' bugs (to submit bugs use 'reportbug' or +'bug' in any Debian system). + +For more information on Expert System shells (including CLIPS) read +http://www.faqs.org/faqs/ai-faq/expert/part1/ + +Have fun! + +--- Javier Fernández-Sanguino Peña , Wed, 16 Apr 2008 16:53:19 +0200 + --- clips-6.24.orig/debian/changelog +++ clips-6.24/debian/changelog @@ -0,0 +1,292 @@ +clips (6.24-3ubuntu1) natty; urgency=low + + * clips-6.24/clipssrc/Makefile.in: libraries moved to the end. + (Closes: #616327, LP: #728438) + + -- Tarun Kumar Mall Thu, 03 Mar 2011 14:53:47 +0000 + +clips (6.24-3) unstable; urgency=low + + * Change the upstream page, as it is now http://clipsrules.sourceforge.net/: + - change the Clips help documentation + - updated the debian/copyright + * Update the FAQ and documentation based on the contents online + * Remove the (unused) debian/clips-doc directory + * Fix the debian/README file as it asked users to install the clips-doc + package, examples are actually in the clips-common package + * Comment the update-examples code in debian/rules + * Create a desktop file and convert CLIP's gif file into a 48x48 xpm icon + * Modify debian/rules to create an install target + * Remove the xclips package since there is no way I can fix its use of + (possibly deprecated) Xaw3d functions and newer Clips releases look like + they will not to support Xwindows anymore. + - "Fixes" the segmentation fault issue with Xaw3d (Closes: #165758, #200478) + - Removes xlibs-data from the package Build-Deps (Closes: 419014) + * Include an (empty) usrsetup.h header file for applications that do not + provide one to build (Closes: #385607) + + -- Javier Fernandez-Sanguino Pen~a Wed, 16 Apr 2008 18:50:35 +0200 + +clips (6.24-2) unstable; urgency=low + + * Make clips-common Arch: all + * Write a proper binary-indep target for clips-common + * Lintian fixes: + - Move the Homepage to a debian/control header + - UTF-8 encode debian/copyright + - Fix error in changelog entry + - Do not create dirs that are empty in binary packages + - Fix call to dh_installman so now the manpages are properly installed + (previously they were not) + * Change Maintainer's email address + + -- Javier Fernandez-Sanguino Pen~a Sat, 05 Jan 2008 09:12:54 +0100 + +clips (6.24-1) unstable; urgency=low + + * New upstream release (Closes: #326231) + * Update debian/copyright with upstream's new license (still in the public + domain) + * Remove .DS_Store binary files from the sources + * Update clips.hlp, FAQ and HTML documentation under doc/ + * Update homepage in debian/copyright + * Add Homepage: location to debian/control + * Acknowledge NMUs (Closes: #367087) + * Switch to use dh_installman + * [clipssrc/Makefile.in] based on upstream's Makefile (expaned OBJS) + * [clipssrc/Makefile.in] added -lrt to compiler flags (clock_gettime is + provied by /lib/librt.so.1) + * [clipssrc/setup.h.in] Add a #define intBool to get it to compile + + -- Javier Fernandez-Sanguino Pen~a Sun, 1 Apr 2007 21:53:40 +0200 + +clips (6.21-6.2) unstable; urgency=low + + * Brown-paper-bag NMU. + * Tweak debian/rules to ensure that autobuilders don't accidentally try + to run autoconf. + + -- Aaron M. Ucko Sat, 13 May 2006 11:42:02 -0400 + +clips (6.21-6.1) unstable; urgency=low + + * NMU with maintainer's permission. + * Update for X11R7 transition, facing the possibility that configure's + x_includes and x_libraries variables may now be empty. (Closes: #365284) + + -- Aaron M. Ucko Sat, 13 May 2006 10:20:28 -0400 + +clips (6.21-6) unstable; urgency=low + + * Removed xlibs-dev from Build-Depends and add new build-depends (Closes: #346638) + * Fix bug in configure.in which introduced a parse error in the generated + configure + + -- Javier Fernandez-Sanguino Pen~a Sat, 14 Jan 2006 18:34:06 +0100 + +clips (6.21-5) unstable; urgency=low + + * Added missing headers + + -- Javier Fernandez-Sanguino Pen~a Sun, 25 Sep 2005 07:28:07 +0200 + +clips (6.21-4) unstable; urgency=low + + * Fix bad symlink in libclips-dev, patch provided by Alejandro + Enrique (Closes: #329408) + * Fix typos in debian/clips.1 manpage when using .IP + * "Fix" my name in debian/clips.1 and debian/xclips.1x to prevent + having ISO-8859-1 chars + * Use debhelper compatibility version 4 + * Remove clips.prerm + + -- Javier Fernandez-Sanguino Pen~a Wed, 21 Sep 2005 19:41:16 +0200 + +clips (6.21-3) unstable; urgency=low + + * Fixed FTFBFS errors when compiling with gcc-4 (in amd64) with + patch from Andreas Jochens (Closes: #298439) + + -- Javier Fernandez-Sanguino Pen~a Thu, 7 Apr 2005 00:29:31 +0200 + +clips (6.21-2) unstable; urgency=low + + * Added -Xlibclips to dh_makeshlibs to avoid duplicate dependancies + * Change section of libclips-dev to libdevel + * Wrote a manpage for xclips. + * Moved documentation to the clips-common package. + * Small changes to the clips.1 manpage. + * Removed the /usr/doc symlink from the clips postinst + * Marked /etc/X11/app-defaults/Xclips as a conffile. + + -- Javier Fernandez-Sanguino Pen~a Sun, 27 Jul 2003 13:22:35 +0200 + +clips (6.21-1) unstable; urgency=low + + * New upstream release (#200478) + - changed the way the package is built to make it easier to build + - re-applied the patches done to the previous versions + - added Xclips to the examples in the xclips package (even if the + xclips color version is not being built yet) + - modified the sources to make it compile properly with the code in + different directories + * Moved to examples to the clips-common package (a mistake in the + debian/rules file moved them to a non-existant package) + * Force compilation against libXaw7 since it seems that both + libXaw6 and libXaw3d are broken in sid and segfault with xclips. + This is related to bug #165758, which will be reassigned to libXaw6. + * Added mising shlib:Depends to clips and xclips + * Make clips-commond recommend clips | xclips + + -- Javier Fernandez-Sanguino Pen~a Tue, 8 Jul 2003 18:18:39 +0200 + +clips (6.10-13) unstable; urgency=low + + * Included missing .h files in the INSTHEADERS directive of + Makefile.in (memalloc.h userdata.h), these are called by other .h + files. I'm leaving out for the moment some other headers which + do not seem necessary and are not in INSTHEADERS + (ed.h parsefun.h proflfun.h sortfun.h) (Closes: #178579) + + -- Javier Fernandez-Sanguino Pen~a Fri, 14 Feb 2003 15:32:04 +0100 + +clips (6.10-12) unstable; urgency=low + + * Recompiled in sid to fix lintian errors + * Now Build-depends on xlibs-dev and xaw3g-dev (Closes: #170118) + * Still, this does not fix bug 165758 which still stands (will have + to trace it....) + * Improved configuration build in debian/rules and removed config.* from + xinterface when distcleaning + * Fixed many lintian warn/errors. + + -- Javier Fernandez-Sanguino Pen~a Sat, 18 Jan 2003 11:35:43 +0100 + +clips (6.10-11) unstable; urgency=low + + * Fixed copyright spelling (Closes: #127119) + * Fixed xclips description (Closes: #130972) + * Updated Standards Version + * Provided some examples so people can test CLIPS + * Added a README.Debian file for starters. + * Fixed location of manpages for xclips and clips + + -- Javier Fernandez-Sanguino Pen~a Mon, 14 Oct 2002 14:43:19 +0200 + +clips (6.10-10) unstable; urgency=low + + * Added debhelper in Build Depends (Closes 70210) + + -- Javier Fernandez-Sanguino Pen~a Mon, 11 Jun 2001 21:00:09 +0200 + +clips (6.10-9) unstable; urgency=low + + * Fixed help location in setup.h.in, this should had been fixed since + 6.10-1 :( (Closes: #96875) + + -- Javier Fernandez-Sanguino Pen~a Wed, 9 May 2001 16:51:52 +0200 + +clips (6.10-8) unstable; urgency=low + + * Removed libclips.so from libclips-dev (Closes: #96363) + + -- Javier Fernandez-Sanguino Pen~a Tue, 8 May 2001 17:46:06 +0200 + +clips (6.10-7) unstable; urgency=low + + * Fixed sections in packages, no more overrides :) + + -- Javier Fernandez-Sanguino Pen~a Wed, 21 Mar 2001 18:06:33 +0100 + +clips (6.10-6) unstable; urgency=low + + * Moved manpage clips.1 to clips-common (Closes: #87521) + * Added information to the manpage regarding the FAQ location (Closes: #87503) + + -- Javier Fernandez-Sanguino Pen~a Mon, 19 Mar 2001 20:40:55 +0100 + +clips (6.10-5) unstable; urgency=low + + * Added build-depends (Closes: #84646) + + -- Javier Fernandez-Sanguino Pen~a Sun, 4 Feb 2001 11:54:55 +0100 + +clips (6.10-4) unstable; urgency=low + + * Fixed url in copyright file + + -- Javier Fernandez-Sanguino Pen~a Thu, 11 Jan 2001 03:14:28 +0100 + +clips (6.10-3) unstable; urgency=low + + * The package now can compile the Xclips interface cleanly, which + is provided by a new package 'xclips' (closes: Bug#33582) + * There are now new packages available: libclips, libclips-dev, + clips-common + and xclips. These major rewrite of the package allows easy installation + of the interpreter and shared libraries. + * Still not yet lintian clean but getting close to it. There is only + one pending lintian bug regarding shared libraries which I do not + know how to handle. + + -- Javier Fernandez-Sanguino Pen~a Sat, 30 Dec 2000 03:10:06 +0100 + +clips (6.10-2) unstable; urgency=low + + * The package now can compile the Xclips interface cleanly, which + is provided by a new package 'xclips' (closes: Bug#33582) + * There are now new packages available: libclips, libclips-dev, clips-common + and xclips. These major rewrite of the package allows easy installation + of the interpreter and shared libraries. + * Still not yet lintian clean but getting close to it. There is only + one pending lintian bug regarding shared libraries which I do not + know how to handle. + + -- Javier Fernandez-Sanguino Pen~a Thu, 24 Feb 2000 21:33:47 +0100 + +clips (6.10-1) unstable; urgency=low + + * Upgraded to new upstream sources. + + -- Javier Fernandez-Sanguino Pen~a Wed, 11 Aug 1999 19:35:37 +0200 + +clips (6.0-4) unstable; urgency=low + + * Added new Makefile + * Prepared to add the Xclips interface (currently does not compile correctly) + * new upstream upload (fixes bug #31787) + + -- Javier Fernandez-Sanguino Pen~a Fri, 6 Aug 1999 19:14:52 +0200 + +clips (6.0-3.1) frozen; urgency=low + + * non-maintainer (binary-only) upload for Alpha + * building failed for clips.info, as there isn't any clips.texi. Removed the + bogus dependency. Perhaps a source package problem? + * couple of other things to fix (harmless?) warnings on Alpha + + -- Paul Slootman Tue, 12 Jan 1999 21:31:44 +0100 + +clips (6.0-3) frozen; urgency=low + + * Skipped new version due to conflicts in potato archive. + + -- Javier Fernandez-Sanguino Pen~a Tue, 5 Jan 1999 16:12:00 +0100 + +clips (6.0-2) unstable; urgency=low + + * Added sh ./configure to debian/rules (diff does not keep executable bit) (fixes bug #28974, and partially #28668) + * Addded chmod +x to configure and mkinstall (same bugs) + * NOTE: was not added correctly in Debian potato's archive + + -- Javier Fernandez-Sanguino Pen~a Fri, 6 Nov 1998 03:58:51 +0100 + +clips (6.0-1) unstable; urgency=low + + * First Release + * Changed in makefile -ltermcap to -lncurses + * Changed default location of help file to /usr/lib/clips + * Added documentation found at www.ghgcorp.com/clips/ (need to check HTML) + + -- Javier Fernandez-Sanguino Pen~a Thu, 3 Sep 1998 15:42:12 +0200 + --- clips-6.24.orig/debian/clips.1 +++ clips-6.24/debian/clips.1 @@ -0,0 +1,244 @@ +.\" Process this file with +.\" groff -man -Tascii foo.1 +.\" +.PU +.TH CLIPS 1 "July 2003" Linux "C Language Integrated Production System" +.SH NAME +clips \- an expert system programming language +.SH SYNOPSIS +.B clips [ +.I file.clp +.B ] +.SH DESCRIPTION +\fBCLIPS\fR is a productive development and delivery expert system tool which +provides a complete environment for the construction of rule and/or +object based expert systems. CLIPS is being used by numerous users +throughout the public and private community including: all NASA sites +and branches of the military, numerous federal bureaus, government +contractors, universities, and many companies. +The key features of +CLIPS are: + +.IP Knowledge\ Representation +\fBCLIPS\fR provides a cohesive tool for handling a wide variety of +knowledge with support for three different programming paradigms: +rule-based, object-oriented and procedural. Rule-based programming +allows knowledge to be represented as heuristics, or "rules of thumb," +which specify a set of actions to be performed for a given +situation. Object-oriented programming allows complex systems to be +modeled as modular components (which can be easily reused to model +other systems or to create new components). The procedural programming +capabilities provided by \fBCLIPS\fR are similar to capabilities found in +languages such as C, Pascal, Ada, and LISP. + +.IP Portability +\fBCLIPS\fR is written in C for portability and speed and has been installed +on many different computers without code changes. Computers on which +\fBCLIPS\fR has been tested include an IBM PC running DOS and Windows 95 and +a Macintosh running MacOS and Mach. +\fBCLIPS\fR can be ported to any system +which has an ANSI compliant C compiler. \fBCLIPS\fR comes with all source +code which can be modified or tailored to meet a user's specific +needs. + +.IP Integration/Extensibility +\fBCLIPS\fR can be embedded within procedural code, called as a subroutine, +and integrated with languages such as C, FORTRAN and ADA. +\fBCLIPS\fR can be easily extended by a user through the use of several +well-defined protocols. + +.IP Interactive\ Development +The standard version of \fBCLIPS\fR provides an interactive, text oriented +development environment, including debugging aids, on-line help, and +an integrated editor. Interfaces providing features such as pulldown +menus, integrated editors, and multiple windows have been developed +for the Macintosh, Windows 95, and X Window environments. + +.IP Verification/Validation + +\fBCLIPS\fR includes a number of features to support the verification and +validation of expert systems including support for modular design and +partitioning of a knowledge base, static and dynamic constraint +checking of slot values and function arguments, and semantic analysis +of rule patterns to determine if inconsistencies could prevent a rule +from firing or generate an error. + +.IP Fully\ Documented +\fBCLIPS\fR comes with extensive documentation including a Reference Manual +and a User's Guide. (provided in the Debian +\fBclips-doc\fR package) + +.SH FILES +.TP +/usr/lib/clips/clips.hlp +The help for the \fBCLIPS\fR interpreter, type in \fI(help)\fR +once the interpreter is run it to read it. + +.SH BUGS +\fBCLIPS\fR is old software so bugs are not unheard of. + +.SH HISTORY + +The origins of the C Language Integrated Production System (CLIPS) +date back to 1984 at NASA's Johnson Space Center. At this time, the +Artificial Intelligence Section (later the Software Technology Branch, +Client/Server Systems Branch, and now the Information Technology +Office) had developed over a dozen prototype expert systems +applications using state-of-the-art hardware and software. However, +despite extensive demonstrations of the potential of expert systems, +few of these applications were put into regular use. This failure to +provide expert systems technology within NASA's operational computing +constraints could largely be traced to the use of LISP as the base +language for nearly all expert system software tools at that time. In +particular, three problems hindered the use of LISP based expert +system tools within NASA: the low availability of LISP on a wide +variety of conventional computers, the high cost of state-of-the-art +LISP tools and hardware, and the poor integration of LISP with other +languages (making embedded applications difficult). + +The Artificial Intelligence Section felt that the use of a +conventional language, such as C, would eliminate most of these +problems, and initially looked to the expert system tool vendors to +provide an expert system tool written using a conventional +language. Although a number of tool vendors started converting their +tools to run in C, the cost of each tool was still very high, most +were restricted to a small variety of computers, and the projected +availability times were discouraging. To meet all of its needs in a +timely and cost effective manner, it became evident that the +Artificial Intelligence Section would have to develop its own C based +expert system tool. + +The prototype version of \fBCLIPS\fR was developed in the spring of 1985 in +a little over two months. Particular attention was given to making the +tool compatible with expert systems under development at that time by +the Artificial Intelligence Section. Thus, the syntax of \fBCLIPS\fR +was made to very closely resemble the syntax of a subset of the ART expert +system tool developed by Inference Corporation. Although originally +modelled from ART, \fBCLIPS\fR was developed entirely without assistance +from Inference or access to the ART source code. + +The original intent for \fBCLIPS\fR was to gain useful insight and knowledge +about the construction of expert system tools and to lay the +groundwork for the construction of a replacement tool for the +commercial tools currently being used. Version 1.0 demonstrated the +feasibility of the project concept. After additional development, it +became apparent that \fBCLIPS\fR would be a low cost expert system tool +ideal for the purposes of training. Another year of development and +internal use went into \fBCLIPS\fR improving its portability, performance, +functionality, and supporting documentation. Version 3.0 of +\fBCLIPS\fR was made available to groups outside of NASA in the summer of 1986. + +Further enhancements transformed \fBCLIPS\fR from a training tool into a +tool useful for the development and delivery of expert systems as +well. Versions 4.0 and 4.1 of \fBCLIPS\fR, released respectively in the +summer and fall of 1987, featured greatly improved performance, +external language integration, and delivery capabilities. Version 4.2 +of \fBCLIPS\fR, released in the summer of 1988, was a complete rewrite of + +\fBCLIPS\fR for code modularity. Also included with this release were an +architecture manual providing a detailed description of the \fBCLIPS\fR +software architecture and a utility program for aiding in the +verification and validation of rule-based programs. Version 4.3 of +\fBCLIPS\fR, released in the summer of 1989, added still more functionality. + +Originally, the primary representation methodology in \fBCLIPS\fR was a +forward chaining rule language based on the Rete algorithm (hence the +Production System part of the \fBCLIPS\fR acronym). Version 5.0 of +\fBCLIPS\fR, released in the spring of 1991, introduced two new programming +paradigms: procedural programming (as found in languages such as C and +Ada;) and object-oriented programming (as found in languages such as +the Common Lisp Object System and Smalltalk). The object-oriented +programming language provided within \fBCLIPS\fR is called the +\fBCLIPS\fR Object-Oriented Language (COOL). Version 5.1 of +\fBCLIPS\fR, released in the fall of 1991, was primarily a +software maintenance upgrade required to support the newly +developed and/or enhanced X Window, +MS-DOS, and Macintosh interfaces. Version 6.0, released in the Spring +of 1993, added fully integrated object/rule pattern matching and +support features for rule-based software engineering. Version 6.1, +released in the Summer of 1998, added C++ compatibility and functions +for profiling performance. + +Because of its portability, extensibility, capabilities, and low-cost, +\fBCLIPS\fR has received widespread acceptance throughout the government, +industry, and academia. The development of \fBCLIPS\fR +has helped to improve the ability to deliver expert system technology +throughout the public and private sectors for a wide range of applications +and diverse computing environments. \fBCLIPS\fR is being used by over +5,000 users throughout the public and private community including: +all NASA sites +and branches of the military, numerous federal bureaus, government +contractors, universities, and many private companies. + + +\fBCLIPS\fR is now maintained as public domain software by the main program +authors who no longer work for NASA. + +There have appeared also derivative works from \fBCLIPS\fR like: +.IP JESS +The Java Expert System Shell, which provides a +\fBCLIPS\fR interpreter for the Java programming language. + +.IP fuzzyCLIPS +A fuzzy extension of \fBCLIPS\fR. + +.IP bw +\fBCLIPS\fR A version of \fBCLIPS\fR using backward chains. + + +.SH AUTHOR +As with any large project, \fBCLIPS\fR is the result of the efforts of +numerous people. The primary contributors have been: Robert Savely, +previous branch chief of the STB and now chief scientist of advanced +software technology at JSC, who conceived the project and provided +overall direction and support; Chris Culbert, current chief of the +Information Technology Office, who managed the project, wrote the +original \fBCLIPS\fR Reference Manual, and designed the original version of +CRSV; Gary Riley, who designed and developed the rule-based portion of + +\fBCLIPS\fR , coauthored the \fBCLIPS\fR Reference Manual and \fBCLIPS\fR +Architecture Manual, and developed the Macintosh interface for +\fBCLIPS\fR ; Brian Donnell, who designed and developed the +\fBCLIPS\fR Object Oriented Language (COOL), coauthored the +\fBCLIPS\fR Reference Manual and \fBCLIPS\fR +Architecture Manual, and developed the previous MS-DOS interfaces for +\fBCLIPS\fR ; Bebe Ly, who was responsible for maintenance and enhancements +to CRSV and is now responsible for developing the X Window interface for +\fBCLIPS\fR; Chris Ortiz, who developed the Windows 3.1 interface for +\fBCLIPS\fR; Dr. Joseph Giarratano of the University of Houston-Clear Lake, +who wrote the \fBCLIPS\fR User's Guide; and Frank Lopez, who designed and +developed \fBCLIPS\fR version 1.0 and wrote the \fBCLIPS\fR 1.0 User's Guide. + +Many other individuals contributed to the design, development, review, +and general support of \fBCLIPS\fR, including: Jack Aldridge, Carla +Armstrong, Paul Baffes, Ann Baker, Stephen Baudendistel, Les Berke, +Tom Blinn, Marlon Boarnet, Dan Bochsler, Bob Brown, Barry Cameron, Tim +Cleghorn, Major Paul Condit, Major Steve Cross, Andy Cunningham, Dan +Danley, Mark Engelberg, Kirt Fields, Ken Freeman, Kevin Greiner, Ervin +Grice, Sharon Hecht, Patti Herrick, Mark Hoffman, Grace Hua, Gordon +Johnson, Phillip Johnston, Sam Juliano, Ed Lineberry, Bowen Loftin, +Linda Martin, Daniel McCoy, Terry McGregor, Becky McGuire, Scott +Meadows, C. J. Melebeck, Paul Mitchell, Steve Mueller, Bill Paseman, +Cynthia Rathjen, Eric Raymond, Reza Razavipour, Marsha Renals, Monica +Rua, Tim Saito, Gregg Swietek, Eric Taylor, James Villarreal, Lui +Wang, Bob Way, Jim Wescott, Charlie Wheeler, and Wes White. + +.SH SEE ALSO +.BR /usr/share/doc/clips-common/CLIPS-FAQ +In Debian systems, you will find the FAQ file compressed, use +zcat or zless to read it. + +.BR /usr/share/doc/clips-common/html/ +You will find more documentation from upstream development in the html directoryin Debian systems. + +.BR /usr/share/doc/clips-common/examples/ +A number of examples of \fBCLIPS\fR program are available so you can test +the interpreter and learn how it works. You can, for example, load one +of them with \fB(load "/usr/share/doc/clips-common/examples/wordgame.clp")\fR +and run it using \fB(reset)\fR and \fB(run)\fR. + + +.SH COPYRIGHT +This manpage was made by Javier Fernandez-Sanguino + for Debian GNU/Linux (but may be used +by others) --- clips-6.24.orig/debian/clips.manpages +++ clips-6.24/debian/clips.manpages @@ -0,0 +1 @@ +debian/clips.1 --- clips-6.24.orig/debian/dirs +++ clips-6.24/debian/dirs @@ -0,0 +1,2 @@ +usr/bin +usr/share/doc/clips --- clips-6.24.orig/clipssrc/evaluatn.c +++ clips-6.24/clipssrc/evaluatn.c @@ -917,7 +917,7 @@ case INSTANCE_ADDRESS: #endif case EXTERNAL_ADDRESS: - tvalue = (unsigned int) value; + tvalue = (unsigned int)(unsigned long) value; break; case STRING: --- clips-6.24.orig/clipssrc/.stamp-h.in +++ clips-6.24/clipssrc/.stamp-h.in @@ -0,0 +1 @@ +timestamp --- clips-6.24.orig/clipssrc/clips.h +++ clips-6.24/clipssrc/clips.h @@ -21,6 +21,7 @@ /* */ /*************************************************************/ +#include "clips_config.h" #ifndef _H_API #define _H_API --- clips-6.24.orig/clipssrc/clips.info +++ clips-6.24/clipssrc/clips.info @@ -0,0 +1,3 @@ +This is Info file clips.info, produced by Makeinfo version 1.68 from +the input file ./clips.texi. + --- clips-6.24.orig/clipssrc/configure.in +++ clips-6.24/clipssrc/configure.in @@ -0,0 +1,209 @@ +dnl $Id: $ + +dnl PURPOSE: configure clips package for unix systems. +dnl AUTHOR: Javier Fernandez-Sanguino Pen~a + + +dnl Process this file with autoconf to produce a configure script. + +AC_REVISION($Revision: $) + +AC_INIT(configure.in) + +VERSION_MAJOR="6" +VERSION_MINOR="21" +VERSION="${VERSION_MAJOR}.${VERSION_MINOR}" +AC_SUBST(VERSION_MAJOR) +AC_SUBST(VERSION_MINOR) +AC_SUBST(VERSION) + +HAVE_GENERIC=0 +HAVE_UNIX_V=0 +HAVE_UNIX_7=0 +WANT_EMACS_EDITOR=0 +WANT_WINDOW_INTERFACE=0 +AC_SUBST(HAVE_GENERIC) +AC_SUBST(HAVE_UNIX_V) +AC_SUBST(HAVE_UNIX_7) +AC_SUBST(WANT_EMACS_EDITOR) +AC_SUBST(WANT_WINDOW_INTERFACE) + +dnl Create config files +AC_CONFIG_HEADER(clips_config.h) + +dnl Checks for editor support (like emacs) +AC_ARG_ENABLE(emeditor, +[ --enable-emeditor build internal (like emacs) editor]) +if test "$enable_emeditor" = yes; then + WANT_EMACS_EDITOR=1 + AC_CHECK_LIB(termcap, main) +fi + +dnl Checks for X support (xclips) +AC_ARG_ENABLE(xclips, +[ --enable-xclips build xclips instead clips]) +if test "$enable_xclips" = yes; then + WANT_WINDOW_INTERFACE=1 +fi + +dnl ---------------------------- +dnl Checks for programs. +dnl + +AC_PATH_PROGS(SH, sh) +AC_PROG_CC +AC_PROG_RANLIB +AC_PROG_LN_S +AC_PROG_INSTALL +AC_CHECK_PROGS(MKINSTALLDIRS,mkinstalldirs,no) +if test $MKINSTALLDIRS = no; then + AC_MSG_WARN(You need 'mkinstalldirs' utility to build binary distributions.) +fi +AC_CHECK_PROG(HAVE_AUTOCONF, autoconf, yes) + +dnl ---------------------------- +dnl Checks for libraries. +dnl + +AC_CHECK_LIB(m,main) + +dnl This is a litle strange. It must place next line before call +dnl AC_PATH_X macro (AC_PATH_aunAC_PATH_os 5.5.1) ?;-\ to avoid further +dnl configure problems +AC_CHECK_HEADERS( stdio.h ) + +if (test "${WANT_WINDOW_INTERFACE}" = 1); then + dnl Checks for X-files. + AC_CHECK_LIB(socket,socket) + AC_PATH_X + AC_SUBST(x_libraries) + LDFLAGS="$LDFLAGS ${x_libraries:+-L$x_libraries}" + + dnl WARNING: library search ORDER is very important !!!! + + AC_CHECK_LIB(X11,main,,,${x_libraries:+-L$x_libraries}) + AC_CHECK_LIB(Xext,main,,,${x_libraries:+-L$x_libraries}) + AC_CHECK_LIB(ICE,main,,,${x_libraries:+-L$x_libraries}) + AC_CHECK_LIB(SM,main,,,${x_libraries:+-L$x_libraries}) + AC_CHECK_LIB(Xt,main,,,${x_libraries:+-L$x_libraries}) + AC_CHECK_LIB(Xmu,main,,,${x_libraries:+-L$x_libraries}) + AC_CHECK_LIB(Xaw3d, main,, + AC_CHECK_LIB(Xaw, main,,, + ${x_libraries:+-L$x_libraries}), + ${x_libraries:+-L$x_libraries}) +fi + +dnl ---------------------------- +dnl Checks for header files. +dnl + +AC_HEADER_DIRENT +AC_HEADER_STDC +AC_CHECK_HEADERS( fcntl.h limits.h malloc.h sgtty.h strings.h ) + + +dnl ---------------------------- +dnl Checks for typedefs, structures, and compiler characteristics. +dnl + +dnl AC_TYPE_SIZE_T +AC_STRUCT_TM + + +dnl ---------------------------- +dnl Checks for library functions. +dnl + +AC_TYPE_SIGNAL +AC_CHECK_FUNCS(ftime getwd) + + +dnl ---------------------------- +dnl Check for system characteristics. +dnl + +AC_MSG_CHECKING([system version]) +system=`uname -s`-`uname -r` +if test "$?" -ne 0 ; then + AC_MSG_RESULT([unknown (can't find uname command)]) + system=unknown +else + # Special check for weird MP-RAS system (uname returns weird + # results, and the version is kept in special file). + + if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then + system=MP-RAS-`awk '{print $3}' /etc/.relid` + fi + if test "`uname -s`" = "AIX" ; then + system=AIX-`uname -v`.`uname -r` + fi + AC_MSG_RESULT($system) +fi +case $system in + BSD/OS-2.1*|BSD/OS-3*) + HAVE_UNIX_V=1 + ;; + HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*) + HAVE_UNIX_V=1 + ;; + Linux*) + HAVE_UNIX_V=1 + ;; + NetBSD-*|FreeBSD-*|OpenBSD-*) + HAVE_UNIX_V=1 + ;; + SunOS-4*) + HAVE_UNIX_7=1 + AC_DEFINE(SOLARIS) + ;; + UNIX_SV*) + HAVE_UNIX_V=1 + ;; + *) + HAVE_GENERIC=1 + ;; +esac + +# +# Debido al uso indiscriminado de globales y su utilización como +# arrays en funciones como "getwd", el no forzar -fno-common +# es motivo de una gran inestabilidad, sobre todo en ciertas funciones +# definidas en "xmenu_file.c". +# + +CFLAGS="$CFLAGS -fno-common" + +dnl Checks for statically linked clips +AC_ARG_ENABLE(static-clips, +[ --enable-static-clips build statically linked clips]) +if test "$enable_static_clips" = yes; then + WANT_STATIC_CLIPS=yes + AC_SUBST(WANT_STATIC_CLIPS) +fi + +dnl Checks for debug +AC_ARG_ENABLE(debug, +[ --enable-debug enable debugging ]) +if test "$enable_debug" = yes; then + AC_DEFINE(DEBUG) + CFLAGS="$CFLAGS -g -Wall" + CXXFLAGS="$CXXFLAGS -g -Wall" + AC_CHECK_LIB(efence, malloc, LIBS="$LIBS -lefence") +fi + +dnl Checks for no compiler optimization +AC_ARG_ENABLE(nooptimize, +[ --enable-nooptimize enable don't optimize]) +if test "$enable_nooptimize" = yes; then + CFLAGS="$CFLAGS -O0" + CXXFLAGS="$CXXFLAGS -O0" +fi + +if test `expr "$CFLAGS" : ".*-g"` -eq 0 ; then + CFLAGS="$CFLAGS -fomit-frame-pointer" +fi + +AC_OUTPUT([ + Makefile + setup.h], + echo timestamp > .stamp-h.in) --- clips-6.24.orig/clipssrc/install-sh +++ clips-6.24/clipssrc/install-sh @@ -0,0 +1,238 @@ +#! /bin/sh +# +# install - install a program, script, or datafile +# This comes from X11R5. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. +# + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +transformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + true +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + else + instcmd=mkdir + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f $src -o -d $src ] + then + true + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + true + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + true + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' +' +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + true + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + true + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 --- clips-6.24.orig/clipssrc/setup.h +++ clips-6.24/clipssrc/setup.h @@ -1,7 +1,7 @@ /*******************************************************/ /* "C" Language Integrated Production System */ /* */ - /* CLIPS Version 6.24 06/12/06 */ + /* CLIPS Version 6.21 06/15/03 */ /* */ /* SETUP HEADER FILE */ /*******************************************************/ @@ -20,18 +20,6 @@ /* Contributing Programmer(s): */ /* */ /* Revision History: */ -/* 6.24: Default locale modification. */ -/* */ -/* Removed CONFLICT_RESOLUTION_STRATEGIES, */ -/* DYNAMIC_SALIENCE, INCREMENTAL_RESET, */ -/* LOGICAL_DEPENDENCIES, IMPERATIVE_METHODS, */ -/* INSTANCE_PATTERN_MATCHING, and */ -/* IMPERATIVE_MESSAGE_HANDLERS, and */ -/* AUXILIARY_MESSAGE_HANDLERS compilation flags. */ -/* */ -/* Removed the SHORT_LINK_NAMES compilation flag. */ -/* */ -/* Renamed BOOLEAN macro type to intBool. */ /* */ /*************************************************************/ @@ -47,19 +35,22 @@ /* Only one of these flags should be turned on (set to 1) at a time. */ /*********************************************************************/ -#define GENERIC 1 /* Generic (any machine) */ -#define UNIX_V 0 /* UNIX System V, 4.2bsd, HP Unix, Darwin */ +#define GENERIC 0 /* Generic (any machine) */ +#define UNIX_V 1 /* UNIX System V or 4.2bsd or HP Unix */ #define UNIX_7 0 /* UNIX System III Version 7 or Sun Unix */ -#define MAC_MCW 0 /* Apple Macintosh, with CodeWarrior 9.6 */ -#define MAC_XCD 0 /* Apple Macintosh, with Xcode 2.3 */ -#define IBM_MCW 0 /* IBM PC, with CodeWarrior 9.4 */ -#define IBM_MSC 0 /* IBM PC, with Microsoft VC++ .NET 2003 */ +#define MAC_MCW 0 /* Apple Macintosh, with Code Warrior 7.0 */ +#define IBM_MCW 0 /* IBM PC, with CodeWarrior 3.2 */ +#define IBM_MSC 0 /* IBM PC, with Microsoft Visual C++ 6.0 */ #define IBM_TBC 0 /* IBM PC, with Borland C++ 5.0 */ #define IBM_GCC 0 /* IBM PC, with DJGPP 3.21 */ /* The following are unsupported: */ #define IBM_ZTC 0 /* IBM PC, with Zortech C++ 3.1 */ #define IBM_ICB 0 /* IBM PC, with Intel C Code Builder 1.0 */ #define IBM_SC 0 /* IBM PC, with Symantec C++ 6.1 */ +#define MAC_SC6 0 /* Apple Macintosh, with Symantec C 6.0 */ +#define MAC_SC7 0 /* Apple Macintosh, with Symantec C 7.0 */ +#define MAC_SC8 0 /* Apple Macintosh, with Symantec C 8.0 */ +#define MAC_MPW 0 /* Apple Macintosh, with MPW 3.2 C */ #define VAX_VMS 0 /* VAX VMS */ #if IBM_ZTC || IBM_MSC || IBM_TBC || IBM_ICB || IBM_SC || IBM_MCW @@ -68,12 +59,37 @@ #define IBM 0 #endif -#if MAC_MCW || MAC_XCD +#if MAC_SC6 || MAC_SC7 || MAC_SC8 +#define MAC_SC 1 +#else +#define MAC_SC 0 +#endif + +#if MAC_SC || MAC_MPW || MAC_MCW #define MAC 1 #else #define MAC 0 #endif +/************************************************************/ +/* ANSI_COMPILER: Set this flag to 1 if the compiler being */ +/* used follows the draft proposed ANSI C standards */ +/* (including the ANSI C libraries). Set this flag to 0, */ +/* if the compiler being used follows the K & R standard. */ +/************************************************************/ + +#define ANSI_COMPILER 1 + +#if ANSI_COMPILER +#define VOID void +#define VOID_ARG void +#define CLIPS_STD_SIZE size_t +#else +#define VOID char +#define VOID_ARG +#define CLIPS_STD_SIZE int +#endif + /***********************************************/ /* Some definitions for use with declarations. */ /***********************************************/ @@ -82,6 +98,7 @@ #define VOID_ARG void #define STD_SIZE size_t +#define BOOLEAN int #define intBool int #define globle @@ -101,6 +118,22 @@ #define DEFRULE_CONSTRUCT 1 +#define CONFLICT_RESOLUTION_STRATEGIES 1 +#define DYNAMIC_SALIENCE 1 +#define INCREMENTAL_RESET 1 +#define LOGICAL_DEPENDENCIES 1 + +#if ! DEFRULE_CONSTRUCT +#undef CONFLICT_RESOLUTION_STRATEGIES +#undef DYNAMIC_SALIENCE +#undef INCREMENTAL_RESET +#undef LOGICAL_DEPENDENCIES +#define CONFLICT_RESOLUTION_STRATEGIES 0 +#define DYNAMIC_SALIENCE 0 +#define INCREMENTAL_RESET 0 +#define LOGICAL_DEPENDENCIES 0 +#endif + /************************************************/ /* DEFMODULE_CONSTRUCT: Determines whether the */ /* defmodule construct is included. */ @@ -120,18 +153,6 @@ #define DEFTEMPLATE_CONSTRUCT 0 #endif -/************************************************************/ -/* FACT_SET_QUERIES: Determines if fact-set query functions */ -/* such as any-factp and do-for-all-facts are included. */ -/************************************************************/ - -#define FACT_SET_QUERIES 1 - -#if ! DEFTEMPLATE_CONSTRUCT -#undef FACT_SET_QUERIES -#define FACT_SET_QUERIES 0 -#endif - /****************************************************/ /* DEFFACTS_CONSTRUCT: Determines whether deffacts */ /* construct is included. */ @@ -165,6 +186,18 @@ #define DEFGENERIC_CONSTRUCT 1 +/******************************************************************/ +/* IMPERATIVE_METHODS: Determines if call-next-method and */ +/* override-next-method can be used to execute shadowed methods */ +/******************************************************************/ + +#define IMPERATIVE_METHODS 1 + +#if ! DEFGENERIC_CONSTRUCT +#undef IMPERATIVE_METHODS +#define IMPERATIVE_METHODS 0 +#endif + /*****************************************************************/ /* OBJECT_SYSTEM: Determines whether object system is included. */ /* The MULTIFIELD_FUNCTIONS flag should also be on if you want */ @@ -178,13 +211,34 @@ /* construct is enabled. */ /*****************************************************************/ -#define DEFINSTANCES_CONSTRUCT 1 +#define DEFINSTANCES_CONSTRUCT 1 /* sed */ #if ! OBJECT_SYSTEM #undef DEFINSTANCES_CONSTRUCT #define DEFINSTANCES_CONSTRUCT 0 #endif +/******************************************************************/ +/* IMPERATIVE_MESSAGE_HANDLERS: Determines if "around" message- */ +/* handlers are allowed. Also determines if call-next-handler */ +/* and override-next-handler can be used to execute shadowed */ +/* handlers */ +/* AUXILIARY_MESSAGE_HANDLERS: Determines if "before" and "after" */ +/* message-handlers are allowed. */ +/* Turning both flags off can increase the speed of message */ +/* dispatch. */ +/******************************************************************/ + +#define IMPERATIVE_MESSAGE_HANDLERS 1 +#define AUXILIARY_MESSAGE_HANDLERS 1 + +#if ! OBJECT_SYSTEM +#undef IMPERATIVE_MESSAGE_HANDLERS +#undef AUXILIARY_MESSAGE_HANDLERS +#define IMPERATIVE_MESSAGE_HANDLERS 0 +#define AUXILIARY_MESSAGE_HANDLERS 0 +#endif + /********************************************************************/ /* INSTANCE_SET_QUERIES: Determines if instance-set query functions */ /* such as any-instancep and do-for-all-instances are included. */ @@ -197,15 +251,38 @@ #define INSTANCE_SET_QUERIES 0 #endif +/********************************************************************/ +/* INSTANCE_PATTERN_MATCHING: Determines if direct pattern-matching */ +/* on objects on the LHS of rules is allowed. */ +/********************************************************************/ + +#define INSTANCE_PATTERN_MATCHING 1 + +#if (! OBJECT_SYSTEM) || (! DEFRULE_CONSTRUCT) +#undef INSTANCE_PATTERN_MATCHING +#define INSTANCE_PATTERN_MATCHING 0 +#endif + /******************************************************************/ /* Check for consistencies associated with the defrule construct. */ /******************************************************************/ -#if (! DEFTEMPLATE_CONSTRUCT) && (! OBJECT_SYSTEM) +#if (! DEFTEMPLATE_CONSTRUCT) && (! INSTANCE_PATTERN_MATCHING) #undef DEFRULE_CONSTRUCT #define DEFRULE_CONSTRUCT 0 #endif +#if (! DEFRULE_CONSTRUCT) +#undef CONFLICT_RESOLUTION_STRATEGIES +#define CONFLICT_RESOLUTION_STRATEGIES 0 +#undef DYNAMIC_SALIENCE +#define DYNAMIC_SALIENCE 0 +#undef INCREMENTAL_RESET +#define INCREMENTAL_RESET 0 +#undef LOGICAL_DEPENDENCIES +#define LOGICAL_DEPENDENCIES 0 +#endif + /*******************************************************************/ /* BLOAD/BSAVE_INSTANCES: Determines if the save/restore-instances */ /* functions can be enhanced to perform more quickly by using */ @@ -248,7 +325,7 @@ #define HELP_FUNCTIONS 1 #if HELP_FUNCTIONS -#define HELP_DEFAULT "clips.hlp" +#define HELP_DEFAULT "/usr/share/clips/clips.hlp" #endif /*************************************************************************/ @@ -340,9 +417,10 @@ /************************************************************************/ /* BLOCK_MEMORY: Causes memory to be allocated in large blocks. */ -/* INITBUFFERSIZE and BLOCKSIZE should both be set to less than the */ +/* INITBUFFERSIZE and BLOCKSIZE should both be set to less than the */ /* maximum size of a signed integer. On a 16-bit machine, they should */ -/* be less than 32768. */ +/* be less than 32768. If a LightSpeed (Think) C version 2.x or 3.x */ +/* compiler is being used, then this option should be turned on. */ /************************************************************************/ #define BLOCK_MEMORY 0 @@ -372,6 +450,19 @@ #define EMACS_EDITOR 0 /* windowed interface */ #endif +/*****************************************************************/ +/* SHORT_LINK_NAMES: Converts some function and global variable */ +/* names to 6 characters. Use with linkers that recognize */ +/* fewer significant characters than the C compiler generating */ +/* the object code. */ +/*****************************************************************/ + +#define SHORT_LINK_NAMES 0 + +#if SHORT_LINK_NAMES +#include "shrtlnkn.h" +#endif + /*********************************************************/ /* ENVIRONMENT_API_ONLY: If enabled, only the enviroment */ /* API may be used to interface with CLIPS. */ @@ -447,12 +538,3 @@ #endif /* _H_setup */ - - - - - - - - - --- clips-6.24.orig/clipssrc/envrnmnt.h +++ clips-6.24/clipssrc/envrnmnt.h @@ -70,7 +70,7 @@ #define GetEnvironmentData(theEnv,position) (((struct environmentData *) theEnv)->theData[position]) #define SetEnvironmentData(theEnv,position,value) (((struct environmentData *) theEnv)->theData[position] = value) - LOCALE intBool AllocateEnvironmentData(void *,unsigned int,unsigned long,void (*)(void *)); + intBool AllocateEnvironmentData(void *,unsigned int,unsigned long,void (*)(void *)); LOCALE intBool DeallocateEnvironmentData(void); #if ALLOW_ENVIRONMENT_GLOBALS LOCALE void SetCurrentEnvironment(void *); --- clips-6.24.orig/clipssrc/Makefile.in +++ clips-6.24/clipssrc/Makefile.in @@ -0,0 +1,456 @@ +# Makefile for CLIPS. -*- Indented-Text -*- +#----------------------------------------------------------------------------- +# CLIPS 6.21 +#----------------------------------------------------------------------------- +# +# FILE : Makefile +# +# PURPOSE : Makefile to buid fzclips package. +# +# USAGE : +# make all: build the platform +# make install: move the platform files to the system directories +# make install-strip: like make install but without debugging information +# make clean: remove the object files +# +# AUTHOR : Javier Fernández-Sanguino Peña +# Based on the original clips file +# with changes provided by Jose Luis Marquez Regueiro +# (jmarreg@etsi.tel.uva.es) originally made to the fzclips program) +# VERSION : 1.1 +# DATE : 11 August 1999 +#----------------------------------------------------------------- +# Copyright (C) 1998, 1999 Javier Fernández-Sanguino Peña + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#### Start of system configuration section. #### + +VPATH = @srcdir@ +srcdir = $(VPATH) +SHELL = /bin/sh +# Local directories +thsrcdir = $(shell pwd) + +VERSION_MAJOR = @VERSION_MAJOR@ +VERSION_MINOR = @VERSION_MINOR@ +VERSION = @VERSION@ + + +C = @CC@ +CXX = @CXX@ +RANLIB = @RANLIB@ +CPPFLAGS = @CPPFLAGS@ +ifeq ($(WANT_WINDOW_INTERFACE),1) +LDFLAGS = @LDFLAGS@ +else +LDFLAGS = @LDFLAGS@ -L$(srcdir) -g -lm -lncurses -lrt +#LDFLAGS = @LDFLAGS@ -L$(srcdir) -g -lm -ltermcap +endif + +CFLAGS = -Wall -Wundef -Wpointer-arith -Wshadow -Wcast-qual \ + -Wcast-align -Winline -Wmissing-declarations -Wredundant-decls \ + -Wmissing-prototypes -Wnested-externs \ + -Wstrict-prototypes -Waggregate-return -Wno-implicit \ + @CFLAGS@ -I$(srcdir) + +ARFLAGS = rc + + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +LN_S = @LN_S@ +HAVE_TAR = @HAVE_TAR@ +MKINSTALLDIRS = $(srcdir)/@MKINSTALLDIRS@ +MAKEINFO = makeinfo +TEXI2DVI = texi2dvi + + +# Common prefix for installation directories. +# NOTE: This directory must exist when you start the install. +srcdir = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ +bindir = @bindir@ +libdir = @libdir@ +includedir = @includedir@ +mandir = @mandir@ + +WANT_EMACS_EDITOR = @WANT_EMACS_EDITOR@ +WANT_STATIC_CLIPS = @WANT_STATIC_CLIPS@ +WANT_WINDOW_INTERFACE = @WANT_WINDOW_INTERFACE@ +HAVE_AUTOCONF = @HAVE_AUTOCONF@ + + +# Prefix to be prepended to each installed program, normally empty or `g'. +binprefix = + +DEFS = @DEFS@ +LIBS = @LIBS@ + + + + + +#### End of system configuration section. #### + +OBJS = agenda.o analysis.o argacces.o bload.o bmathfun.o bsave.o \ + classcom.o classexm.o classfun.o classinf.o classini.o \ + classpsr.o clsltpsr.o commline.o conscomp.o constrct.o \ + constrnt.o crstrtgy.o cstrcbin.o cstrccom.o cstrcpsr.o \ + cstrnbin.o cstrnchk.o cstrncmp.o cstrnops.o cstrnpsr.o \ + cstrnutl.o default.o defins.o developr.o dffctbin.o dffctbsc.o \ + dffctcmp.o dffctdef.o dffctpsr.o dffnxbin.o dffnxcmp.o \ + dffnxexe.o dffnxfun.o dffnxpsr.o dfinsbin.o dfinscmp.o drive.o \ + edbasic.o edmain.o edmisc.o edstruct.o edterm.o emathfun.o \ + engine.o envrnmnt.o evaluatn.o expressn.o exprnbin.o exprnops.o \ + exprnpsr.o extnfunc.o factbin.o factbld.o factcmp.o factcom.o \ + factfun.o factgen.o facthsh.o factlhs.o factmch.o factmngr.o \ + factprt.o factqpsr.o factqury.o factrete.o factrhs.o filecom.o filertr.o \ + generate.o genrcbin.o genrccmp.o genrccom.o genrcexe.o genrcfun.o \ + genrcpsr.o globlbin.o globlbsc.o globlcmp.o globlcom.o \ + globldef.o globlpsr.o immthpsr.o incrrset.o inherpsr.o \ + inscom.o insfile.o insfun.o insmngr.o insmoddp.o insmult.o \ + inspsr.o insquery.o insqypsr.o iofun.o lgcldpnd.o main.o \ + memalloc.o miscfun.o modulbin.o modulbsc.o modulcmp.o moduldef.o \ + modulpsr.o modulutl.o msgcom.o msgfun.o msgpass.o msgpsr.o \ + multifld.o multifun.o objbin.o objcmp.o objrtbin.o objrtbld.o \ + objrtcmp.o objrtfnx.o objrtgen.o objrtmch.o parsefun.o pattern.o \ + pprint.o prccode.o prcdrfun.o prcdrpsr.o prdctfun.o prntutil.o \ + proflfun.o reorder.o reteutil.o retract.o router.o rulebin.o \ + rulebld.o rulebsc.o rulecmp.o rulecom.o rulecstr.o ruledef.o \ + ruledlt.o rulelhs.o rulepsr.o scanner.o sortfun.o strngfun.o \ + strngrtr.o symblbin.o symblcmp.o symbol.o sysdep.o textpro.o \ + tmpltbin.o tmpltbsc.o tmpltcmp.o tmpltdef.o tmpltfun.o tmpltlhs.o \ + tmpltpsr.o tmpltrhs.o tmpltutl.o userdata.o userfunctions.o utility.o watch.o + +HDRS = clips_config.h setup.h watch.h sysdep.h textpro.h tmpltbin.h \ + tmpltbsc.h tmpltcmp.h tmpltdef.h tmpltfun.h tmpltlhs.h tmpltpsr.h \ + tmpltrhs.h tmpltutl.h userdata.h utility.h scanner.h shrtlnkn.h \ + sortfun.h strngfun.h strngrtr.h symblbin.h symblcmp.h symbol.h \ + router.h rulebin.h rulebld.h rulebsc.h rulecmp.h rulecom.h \ + rulecstr.h ruledef.h ruledlt.h rulelhs.h rulepsr.h prccode.h \ + prcdrfun.h prcdrpsr.h prdctfun.h prntutil.h proflfun.h reorder.h \ + reteutil.h retract.h objcmp.h object.h objrtbin.h objrtbld.h \ + objrtcmp.h objrtfnx.h objrtgen.h objrtmch.h parsefun.h pattern.h \ + pprint.h modulpsr.h modulutl.h msgcom.h msgfun.h msgpass.h msgpsr.h \ + multifld.h multifun.h network.h objbin.h insquery.h insqypsr.h \ + iofun.h lgcldpnd.h match.h memalloc.h miscfun.h modulbin.h \ + modulbsc.h modulcmp.h moduldef.h genrcpsr.h globlbin.h globlbsc.h \ + globlcmp.h globlcom.h globldef.h globlpsr.h immthpsr.h incrrset.h \ + inherpsr.h inscom.h insfile.h insfun.h insmngr.h insmoddp.h \ + insmult.h inspsr.h factrete.h factrhs.h filecom.h filertr.h \ + generate.h genrcbin.h genrccmp.h genrccom.h genrcexe.h genrcfun.h \ + evaluatn.h expressn.h exprnbin.h exprnops.h exprnpsr.h extnfunc.h \ + extobj.h factbin.h factbld.h factcmp.h factcom.h factfun.h factgen.h \ + facthsh.h factlhs.h factmch.h factmngr.h factprt.h dffctcmp.h \ + dffctdef.h dffctpsr.h dffnxbin.h dffnxcmp.h dffnxexe.h dffnxfun.h \ + dffnxpsr.h dfinsbin.h dfinscmp.h drive.h ed.h emathfun.h engine.h \ + constant.h constrct.h constrnt.h crstrtgy.h cstrcbin.h cstrccmp.h \ + cstrccom.h cstrcpsr.h cstrnbin.h cstrnchk.h cstrncmp.h cstrnops.h \ + cstrnpsr.h cstrnutl.h default.h defins.h developr.h dffctbin.h \ + dffctbsc.h analysis.h argacces.h bload.h bmathfun.h bsave.h \ + classcom.h classexm.h classfun.h classinf.h classini.h classpsr.h \ + clips.h clsltpsr.h cmptblty.h commline.h conscomp.h agenda.h \ + usrsetup.h + +LIBSOURCES = \ + agenda.c analysis.c bsave.c conscomp.c engine.c evaluatn.c \ + exprnbin.c factbld.c factcom.c factgen.c facthsh.c factmch.c \ + factmngr.c factprt.c factrete.c factrhs.c prntutil.c \ + reorder.c rulebin.c rulecmp.c ruledlt.c rulelhs.c rulepsr.c \ + scanner.c symblbin.c symblcmp.c symbol.c sysdep.c tmpltbin.c \ + tmpltcmp.c tmpltdef.c tmpltlhs.c tmpltpsr.c tmpltutl.c \ + argacces.c bload.c bmathfun.c classcom.c classexm.c \ + classfun.c classinf.c classini.c classpsr.c clsltpsr.c commline.c \ + constrct.c constrnt.c crstrtgy.c cstrcbin.c cstrccom.c cstrcpsr.c \ + cstrnbin.c cstrnchk.c cstrncmp.c cstrnops.c cstrnpsr.c cstrnutl.c \ + default.c defins.c developr.c dffctbin.c dffctbsc.c dffctcmp.c \ + dffctdef.c dffctpsr.c dffnxbin.c dffnxcmp.c dffnxexe.c dffnxfun.c \ + dffnxpsr.c dfinsbin.c dfinscmp.c drive.c emathfun.c \ + expressn.c exprnops.c exprnpsr.c extnfunc.c factbin.c factcmp.c \ + factfun.c factlhs.c filecom.c filertr.c generate.c genrcbin.c \ + genrccmp.c genrccom.c genrcexe.c genrcfun.c genrcpsr.c globlbin.c \ + globlbsc.c globlcmp.c globlcom.c globldef.c globlpsr.c immthpsr.c \ + incrrset.c inherpsr.c inscom.c insfile.c insfun.c insmngr.c \ + insmoddp.c insmult.c inspsr.c insquery.c insqypsr.c iofun.c lgcldpnd.c \ + miscfun.c modulbin.c modulbsc.c modulcmp.c moduldef.c \ + modulpsr.c modulutl.c msgcom.c msgfun.c msgpass.c msgpsr.c multifld.c \ + multifun.c objbin.c objcmp.c objrtbin.c objrtbld.c objrtcmp.c \ + objrtfnx.c objrtgen.c objrtmch.c pattern.c pprint.c prccode.c \ + prcdrfun.c prcdrpsr.c prdctfun.c reteutil.c retract.c router.c \ + rulebld.c rulebsc.c rulecom.c rulecstr.c ruledef.c strngfun.c \ + strngrtr.c textpro.c tmpltbsc.c tmpltfun.c tmpltrhs.c utility.c \ + watch.c memalloc.c proflfun.c parsefun.c sortfun.c userdata.c \ + envrnmnt.c userfunctions.c + +INSTHEADERS = agenda.h analysis.h argacces.h bload.h bmathfun.h bsave.h \ + classcom.h classexm.h classfun.h classinf.h classini.h \ + classpsr.h clips.h clsltpsr.h cmptblty.h commline.h \ + conscomp.h constant.h constrct.h constrnt.h crstrtgy.h cstrcbin.h \ + cstrccmp.h cstrccom.h cstrcpsr.h cstrnbin.h cstrnchk.h cstrncmp.h \ + cstrnops.h cstrnpsr.h cstrnutl.h default.h defins.h developr.h \ + dffctbin.h dffctbsc.h dffctcmp.h dffctdef.h dffctpsr.h dffnxbin.h \ + dffnxcmp.h dffnxexe.h dffnxfun.h dffnxpsr.h dfinsbin.h dfinscmp.h \ + drive.h emathfun.h engine.h evaluatn.h expressn.h exprnbin.h \ + exprnops.h exprnpsr.h extnfunc.h extobj.h factbin.h factbld.h \ + factcmp.h factcom.h factfun.h factgen.h facthsh.h factlhs.h factmch.h \ + factmngr.h factprt.h factrete.h factrhs.h filecom.h filertr.h \ + generate.h genrcbin.h genrccmp.h \ + genrccom.h genrcexe.h genrcfun.h genrcpsr.h globlbin.h globlbsc.h \ + globlcmp.h globlcom.h globldef.h globlpsr.h immthpsr.h incrrset.h \ + inherpsr.h inscom.h insfile.h insfun.h insmngr.h insmoddp.h \ + insmult.h inspsr.h insquery.h insqypsr.h iofun.h lgcldpnd.h \ + match.h miscfun.h modulbin.h modulbsc.h modulcmp.h moduldef.h \ + modulpsr.h modulutl.h msgcom.h msgfun.h msgpass.h msgpsr.h \ + multifld.h multifun.h network.h objbin.h objcmp.h object.h \ + objrtbin.h objrtbld.h objrtcmp.h objrtfnx.h objrtgen.h objrtmch.h \ + pattern.h pprint.h prccode.h prcdrfun.h prcdrpsr.h prdctfun.h \ + prntutil.h reorder.h reteutil.h retract.h router.h rulebin.h \ + rulebld.h rulebsc.h rulecmp.h rulecom.h rulecstr.h ruledef.h \ + ruledlt.h rulelhs.h rulepsr.h scanner.h setup.h shrtlnkn.h \ + strngfun.h strngrtr.h symblbin.h symblcmp.h symbol.h sysdep.h \ + textpro.h tmpltbin.h tmpltbsc.h tmpltcmp.h tmpltdef.h tmpltfun.h \ + tmpltlhs.h tmpltpsr.h watch.h tmpltrhs.h tmpltutl.h utility.h \ + userdata.h memalloc.h envrnmnt.h \ + clips_config.h usrsetup.h + +XSOURCES = \ + xclips.c xclipstext.c xedit.c xmenu.c xmenu_file.c xmenu_exec.c \ + xmenu_watch.c xmenu_opt.c xmenu_wind.c + +EDSOURCES = edmain.c edmisc.c edstruct.c edterm.c + + +LIBOBJS = $(LIBSOURCES:.c=.o) +SRCS = $(OBJS:.o=.c) +#SOURCES = $(LIBSOURCES) $(EDSOURCES) $(XSOURCES) +SOURCES = $(HRDS) $(SRCS) +DISTFILES = $(SRCS) $(HDRS) COPYING ChangeLog NEWS Makefile.in \ + README INSTALL clips.texi \ + configure configure.in \ + mkinstalldirs texinfo.tex clips.info testdata TAGS + + + +help: + @echo "" + @echo " CLIPS Makefile" + @echo "" + @echo "Usage: " + @echo "" + @echo " * Build clips: 'make clips' or 'make xclips'" + @echo " * Build libraries: 'make libs'" + @echo " * Build both, clips & libraries: 'make all'" + @echo " * Install all: 'make install'" + @echo " * Install libraries only: 'make install-libs'" + @echo " * Install clips: 'make install-clips'" + @echo " * Clean sources: 'make clean'" + @echo " * Full clean: 'make distclean'" + @echo "" + @echo " If you wish compile clips with Xwindow suport; you sould" + @echo " comunicate it to 'configure' doing:" + @echo "" + @echo " configure --enable-xclips && make xclips" + @echo "" + @echo " You can build clips statically linked to clips library doing:" + @echo "" + @echo " configure --enable-static-clips && make clips" + @echo "" + + + +all: libs $(CLIPS_NAME) + +ifeq ($(WANT_WINDOW_INTERFACE),1) +EXTRAOBJS += $(XSOURCES:.c=.o) $(srcdir)/xmain.o +CLIPS_NAME = xclips +else +EXTRAOBJS += $(srcdir)/main.o +CLIPS_NAME = clips +endif + +ifeq ($(WANT_EMACS_EDITOR),1) +EXTRAOBJS += $(EDSOURCES::.c=.o) +endif +info: clips.info +dvi: clips.dvi + +%.o: %.c + $(CC) -c $(CPPFLAGS) $(DEFS) -fPIC $(CFLAGS) $< + +install: installdirs install-bin install-libs install-includes + +installdirs: + ${srcdir}/mkinstalldirs $(bindir) $(infodir) + +install-bin: $(CLIPS_NAME) + $(INSTALL_PROGRAM) clips $(bindir)/$(binprefix)clips + +#install-data: clips.info +# -$(INSTALL_DATA) $(srcdir)/clips.info $(infodir)/clips.info + +# Like install, but striping binaries. +install-strip : + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \ + install + +# Install libraries into standard location. +install-libs : libs + $(INSTALL_PROGRAM) -s libclips.a $(libdir)/ + $(INSTALL_PROGRAM) -s libclips.so.$(VERSION) $(libdir)/ + cp -a libclips.so.$(VERSION_MAJOR) $(libdir)/ + cp -a libclips.so $(libdir)/ +# -ldconfig -vl $(libdir)/libclips.so.$(VERSION) + +install-includes : + @if [ -d $(includedir)/clips ]; then true; \ + else mkdir $(includedir)/clips; \ + fi + @echo "Installing headers in $(includedir)" + @for file in $(INSTHEADERS); do \ + echo "Installing header: $${file}"...; \ + $(INSTALL_DATA) $${file} $(includedir)/clips/$${file}; \ + done + +ifdef WANT_STATIC_CLIPS +$(CLIPS_NAME) : depend $(OBJS) + $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(LIBS) $(OBJS) -o $@ +else +$(CLIPS_NAME) : $(EXTRAOBJS) libclips.so + $(CC) $(CPPFLAGS) $(CFLAGS) $(EXTRAOBJS) -lclips -o $@ $(LDFLAGS) $(LIBS) +endif + +#clips: depend $(OBJS) +# $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) + +clips.o getopt.o getopt1.o: getopt.h + +clips.info: clips.texi + $(MAKEINFO) -I$(srcdir) -o clips.info $(srcdir)/clips.texi +clips.dvi: clips.texi + $(TEXI2DVI) $(srcdir)/clips.texi + +libs : libclips.a libclips.so + +libclips.a : depend $(LIBOBJS) + $(AR) $(ARFLAGS) $@ $(LIBOBJS) + $(RANLIB) $@ + +libclips.so : depend $(LIBOBJS) + $(CC) -fPIC -shared -Wl,-soname,$@.$(VERSION_MAJOR) -o $@.$(VERSION) $(LIBOBJS) + $(LN_S) -sf $@.$(VERSION) $@.$(VERSION_MAJOR) + $(LN_S) -sf $@.$(VERSION) $@ + +TAGS: $(SRCS) + etags $(SRCS) + + +clean: + -$(RM) -f confdefs* conftest* core core.* *.core *~ *.d *.o *.output \ + *.tab.* DEADJOE \\#*\\# \ + +mostlyclean: clean + +distclean: clean + -$(RM) -f Makefile clips xclips clips.dvi libclips.a libclips.so* \ + clips_config.h config.log config.status config.cache .tmpdepend + +realclean: distclean + -$(RM) -f TAGS hello.info* + +maintainer-clean : distclean + +realclean: distclean + +dist: $(DISTFILES) + echo clips-`sed -e '/version/!d' -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q version.c` > .fname + rm -rf `cat .fname` + mkdir `cat .fname` + ln $(DISTFILES) `cat .fname` + tar chozf `cat .fname`.tar.z `cat .fname` + rm -rf `cat .fname` .fname + +.PHONY: help all libs clean mostlyclean distclean realclean maintainer-clean realclean depend dep + +check: clips +# To be done... +# @echo expect no output from diff +# ./hello > test.out +# diff -c $(srcdir)/testdata test.out +# rm -f test.out + + +ifdef HAVE_AUTOCONF +## +## For automatic remaking ... + +${srcdir}/configure : configure.in + cd ${srcdir} && autoconf + +${srcdir}/clips_config.h.in : .stamp-h.in +${srcdir}/.stamp-h.in : configure.in + cd ${srcdir} && autoheader + echo timestamp > ${srcdir}/.stamp-h.in + +clips_config.h: .stamp.h +.stamp.h : clips_config.h.in config.status + ./config.status + + +Makefile : Makefile.in config.status + ./config.status + +config.status : configure + @if test -f config.status ; then \ + echo "./config.status --recheck" ; \ + ./config.status --recheck ; \ + else \ + echo "" ; \ + echo "" ; \ + echo " You must run ./configure before typing 'make'." ; \ + echo "" ; \ + exit 1 ; \ + fi + +build-makefiles : Makefile.in config.status + ./config.status +else +config.status : configure + echo "" + @echo "" + echo " You must run ./configure before typing 'make'." + echo "" + @exit 1 + +endif + + + +.tmpdepend : $(SOURCES) + $(CC) -MM $(CFLAGS) $(SOURCES) > .tmpdepend + +depend : .tmpdepend + +dep : depend + +ifeq (.tmpdepend,$(wildcard .tmpdepend)) +include .tmpdepend +endif + +# Prevent GNU make v3 from overflowing arg limit on SysV. +.NOEXPORT: + --- clips-6.24.orig/clipssrc/configure +++ clips-6.24/clipssrc/configure @@ -0,0 +1,2804 @@ +#! /bin/sh + +# From configure.in Revision: + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-emeditor build internal (like emacs) editor" +ac_help="$ac_help + --enable-xclips build xclips instead clips" +ac_help="$ac_help + --with-x use the X Window System" +ac_help="$ac_help + --enable-static-clips build statically linked clips" +ac_help="$ac_help + --enable-debug enable debugging " +ac_help="$ac_help + --enable-nooptimize enable don't optimize" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=configure.in + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +VERSION_MAJOR="6" +VERSION_MINOR="21" +VERSION="${VERSION_MAJOR}.${VERSION_MINOR}" + + + + +HAVE_GENERIC=0 +HAVE_UNIX_V=0 +HAVE_UNIX_7=0 +WANT_EMACS_EDITOR=0 +WANT_WINDOW_INTERFACE=0 + + + + + + + + +# Check whether --enable-emeditor or --disable-emeditor was given. +if test "${enable_emeditor+set}" = set; then + enableval="$enable_emeditor" + : +fi + +if test "$enable_emeditor" = yes; then + WANT_EMACS_EDITOR=1 + echo $ac_n "checking for main in -ltermcap""... $ac_c" 1>&6 +echo "configure:569: checking for main in -ltermcap" >&5 +ac_lib_var=`echo termcap'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ltermcap $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo termcap | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + +fi + +# Check whether --enable-xclips or --disable-xclips was given. +if test "${enable_xclips+set}" = set; then + enableval="$enable_xclips" + : +fi + +if test "$enable_xclips" = yes; then + WANT_WINDOW_INTERFACE=1 +fi + + +for ac_prog in sh +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:629: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_SH'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$SH" in + /*) + ac_cv_path_SH="$SH" # Let the user override the test with a path. + ;; + ?:/*) + ac_cv_path_SH="$SH" # Let the user override the test with a dos path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_path_SH="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + ;; +esac +fi +SH="$ac_cv_path_SH" +if test -n "$SH"; then + echo "$ac_t""$SH" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$SH" && break +done + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:667: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:697: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test -z "$CC"; then + case "`uname -s`" in + *win32* | *WIN32*) + # Extract the first word of "cl", so it can be a program name with args. +set dummy cl; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:748: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="cl" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + ;; + esac + fi + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:780: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +cat > conftest.$ac_ext << EOF + +#line 791 "configure" +#include "confdefs.h" + +main(){return(0);} +EOF +if { (eval echo configure:796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cc_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +if test $ac_cv_prog_cc_works = no; then + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } +fi +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:822: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +cross_compiling=$ac_cv_prog_cc_cross + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:827: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +else + GCC= +fi + +ac_test_CFLAGS="${CFLAGS+set}" +ac_save_CFLAGS="$CFLAGS" +CFLAGS= +echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:855: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi + +# Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:889: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 +echo "configure:917: checking whether ln -s works" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + rm -f conftestdata +if ln -s X conftestdata 2>/dev/null +then + rm -f conftestdata + ac_cv_prog_LN_S="ln -s" +else + ac_cv_prog_LN_S=ln +fi +fi +LN_S="$ac_cv_prog_LN_S" +if test "$ac_cv_prog_LN_S" = "ln -s"; then + echo "$ac_t""yes" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +ac_aux_dir= +for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:968: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +for ac_prog in mkinstalldirs +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1025: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_MKINSTALLDIRS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$MKINSTALLDIRS"; then + ac_cv_prog_MKINSTALLDIRS="$MKINSTALLDIRS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_MKINSTALLDIRS="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +MKINSTALLDIRS="$ac_cv_prog_MKINSTALLDIRS" +if test -n "$MKINSTALLDIRS"; then + echo "$ac_t""$MKINSTALLDIRS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$MKINSTALLDIRS" && break +done +test -n "$MKINSTALLDIRS" || MKINSTALLDIRS="no" + +if test $MKINSTALLDIRS = no; then + echo "configure: warning: You need 'mkinstalldirs' utility to build binary distributions." 1>&2 +fi +# Extract the first word of "autoconf", so it can be a program name with args. +set dummy autoconf; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1061: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_HAVE_AUTOCONF'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$HAVE_AUTOCONF"; then + ac_cv_prog_HAVE_AUTOCONF="$HAVE_AUTOCONF" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_HAVE_AUTOCONF="yes" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +HAVE_AUTOCONF="$ac_cv_prog_HAVE_AUTOCONF" +if test -n "$HAVE_AUTOCONF"; then + echo "$ac_t""$HAVE_AUTOCONF" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 +echo "configure:1090: checking for main in -lm" >&5 +ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lm $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo m | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + +echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 +echo "configure:1134: checking how to run the C preprocessor" >&5 +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then +if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + # This must be in double quotes, not single quotes, because CPP may get + # substituted into the Makefile and "${CC-cc}" will confuse make. + CPP="${CC-cc} -E" + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1155: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP="${CC-cc} -E -traditional-cpp" + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1172: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP="${CC-cc} -nologo -E" + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1189: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP=/lib/cpp +fi +rm -f conftest* +fi +rm -f conftest* +fi +rm -f conftest* + ac_cv_prog_CPP="$CPP" +fi + CPP="$ac_cv_prog_CPP" +else + ac_cv_prog_CPP="$CPP" +fi +echo "$ac_t""$CPP" 1>&6 + +for ac_hdr in stdio.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:1217: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1227: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + + +if (test "${WANT_WINDOW_INTERFACE}" = 1); then + echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 +echo "configure:1256: checking for socket in -lsocket" >&5 +ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lsocket $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo socket | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + # If we find X, set shell vars x_includes and x_libraries to the +# paths, otherwise set no_x=yes. +# Uses ac_ vars as temps to allow command line to override cache and checks. +# --without-x overrides everything else, but does not touch the cache. +echo $ac_n "checking for X""... $ac_c" 1>&6 +echo "configure:1307: checking for X" >&5 + +# Check whether --with-x or --without-x was given. +if test "${with_x+set}" = set; then + withval="$with_x" + : +fi + +# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +if test "x$with_x" = xno; then + # The user explicitly disabled X. + have_x=disabled +else + if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then + # Both variables are already set. + have_x=yes + else +if eval "test \"`echo '$''{'ac_cv_have_x'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + # One or both of the vars are not set, and there is no cached value. +ac_x_includes=NO ac_x_libraries=NO +rm -fr conftestdir +if mkdir conftestdir; then + cd conftestdir + # Make sure to not put "make" in the Imakefile rules, since we grep it out. + cat > Imakefile <<'EOF' +acfindx: + @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' +EOF + if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering...", which would confuse us. + eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl; do + if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && + test -f $ac_im_libdir/libX11.$ac_extension; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case "$ac_im_incroot" in + /usr/include) ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes="$ac_im_incroot" ;; + esac + case "$ac_im_usrlibdir" in + /usr/lib | /lib) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries="$ac_im_usrlibdir" ;; + esac + fi + cd .. + rm -fr conftestdir +fi + +if test "$ac_x_includes" = NO; then + # Guess where to find include files, by looking for this one X11 .h file. + test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h + + # First, try using that file with no special directory specified. +cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1374: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + # We can compile using X headers with no special include directory. +ac_x_includes= +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + # Look for the header file in a standard set of common directories. +# Check X11 before X11Rn because it is often a symlink to the current release. + for ac_dir in \ + /usr/X11/include \ + /usr/X11R6/include \ + /usr/X11R5/include \ + /usr/X11R4/include \ + \ + /usr/include/X11 \ + /usr/include/X11R6 \ + /usr/include/X11R5 \ + /usr/include/X11R4 \ + \ + /usr/local/X11/include \ + /usr/local/X11R6/include \ + /usr/local/X11R5/include \ + /usr/local/X11R4/include \ + \ + /usr/local/include/X11 \ + /usr/local/include/X11R6 \ + /usr/local/include/X11R5 \ + /usr/local/include/X11R4 \ + \ + /usr/X386/include \ + /usr/x386/include \ + /usr/XFree86/include/X11 \ + \ + /usr/include \ + /usr/local/include \ + /usr/unsupported/include \ + /usr/athena/include \ + /usr/local/x11r5/include \ + /usr/lpp/Xamples/include \ + \ + /usr/openwin/include \ + /usr/openwin/share/include \ + ; \ + do + if test -r "$ac_dir/$x_direct_test_include"; then + ac_x_includes=$ac_dir + break + fi + done +fi +rm -f conftest* +fi # $ac_x_includes = NO + +if test "$ac_x_libraries" = NO; then + # Check for the libraries. + + test -z "$x_direct_test_library" && x_direct_test_library=Xt + test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc + + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS="$LIBS" + LIBS="-l$x_direct_test_library $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + LIBS="$ac_save_LIBS" +# We can link X programs with no special library path. +ac_x_libraries= +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + LIBS="$ac_save_LIBS" +# First see if replacing the include by lib works. +# Check X11 before X11Rn because it is often a symlink to the current release. +for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \ + /usr/X11/lib \ + /usr/X11R6/lib \ + /usr/X11R5/lib \ + /usr/X11R4/lib \ + \ + /usr/lib/X11 \ + /usr/lib/X11R6 \ + /usr/lib/X11R5 \ + /usr/lib/X11R4 \ + \ + /usr/local/X11/lib \ + /usr/local/X11R6/lib \ + /usr/local/X11R5/lib \ + /usr/local/X11R4/lib \ + \ + /usr/local/lib/X11 \ + /usr/local/lib/X11R6 \ + /usr/local/lib/X11R5 \ + /usr/local/lib/X11R4 \ + \ + /usr/X386/lib \ + /usr/x386/lib \ + /usr/XFree86/lib/X11 \ + \ + /usr/lib \ + /usr/local/lib \ + /usr/unsupported/lib \ + /usr/athena/lib \ + /usr/local/x11r5/lib \ + /usr/lpp/Xamples/lib \ + /lib/usr/lib/X11 \ + \ + /usr/openwin/lib \ + /usr/openwin/share/lib \ + ; \ +do + for ac_extension in a so sl; do + if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done +fi +rm -f conftest* +fi # $ac_x_libraries = NO + +if test "$ac_x_includes" = NO || test "$ac_x_libraries" = NO; then + # Didn't find X anywhere. Cache the known absence of X. + ac_cv_have_x="have_x=no" +else + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" +fi +fi + fi + eval "$ac_cv_have_x" +fi # $with_x != no + +if test "$have_x" != yes; then + echo "$ac_t""$have_x" 1>&6 + no_x=yes +else + # If each of the values was on the command line, it overrides each guess. + test "x$x_includes" = xNONE && x_includes=$ac_x_includes + test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$x_includes ac_x_libraries=$x_libraries" + echo "$ac_t""libraries $x_libraries, headers $x_includes" 1>&6 +fi + + + LDFLAGS="$LDFLAGS ${x_libraries:+-L$x_libraries}" + + + echo $ac_n "checking for main in -lX11""... $ac_c" 1>&6 +echo "configure:1541: checking for main in -lX11" >&5 +ac_lib_var=`echo X11'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lX11 ${x_libraries:+-L$x_libraries} $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo X11 | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + echo $ac_n "checking for main in -lXext""... $ac_c" 1>&6 +echo "configure:1584: checking for main in -lXext" >&5 +ac_lib_var=`echo Xext'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lXext ${x_libraries:+-L$x_libraries} $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo Xext | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + echo $ac_n "checking for main in -lICE""... $ac_c" 1>&6 +echo "configure:1627: checking for main in -lICE" >&5 +ac_lib_var=`echo ICE'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lICE ${x_libraries:+-L$x_libraries} $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo ICE | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + echo $ac_n "checking for main in -lSM""... $ac_c" 1>&6 +echo "configure:1670: checking for main in -lSM" >&5 +ac_lib_var=`echo SM'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lSM ${x_libraries:+-L$x_libraries} $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo SM | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + echo $ac_n "checking for main in -lXt""... $ac_c" 1>&6 +echo "configure:1713: checking for main in -lXt" >&5 +ac_lib_var=`echo Xt'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lXt ${x_libraries:+-L$x_libraries} $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo Xt | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + echo $ac_n "checking for main in -lXmu""... $ac_c" 1>&6 +echo "configure:1756: checking for main in -lXmu" >&5 +ac_lib_var=`echo Xmu'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lXmu ${x_libraries:+-L$x_libraries} $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo Xmu | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + echo $ac_n "checking for main in -lXaw3d""... $ac_c" 1>&6 +echo "configure:1799: checking for main in -lXaw3d" >&5 +ac_lib_var=`echo Xaw3d'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lXaw3d ${x_libraries:+-L$x_libraries} $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo Xaw3d | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +echo $ac_n "checking for main in -lXaw""... $ac_c" 1>&6 +echo "configure:1840: checking for main in -lXaw" >&5 +ac_lib_var=`echo Xaw'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lXaw ${x_libraries:+-L$x_libraries} $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo Xaw | sed -e 's/^a-zA-Z0-9_/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + +fi + +fi + + +ac_header_dirent=no +for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 +echo "configure:1892: checking for $ac_hdr that defines DIR" >&5 +if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include <$ac_hdr> +int main() { +DIR *dirp = 0; +; return 0; } +EOF +if { (eval echo configure:1905: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + eval "ac_cv_header_dirent_$ac_safe=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_dirent_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_dirent_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done +# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. +if test $ac_header_dirent = dirent.h; then +echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 +echo "configure:1930: checking for opendir in -ldir" >&5 +ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldir $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBS="$LIBS -ldir" +else + echo "$ac_t""no" 1>&6 +fi + +else +echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 +echo "configure:1971: checking for opendir in -lx" >&5 +ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lx $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBS="$LIBS -lx" +else + echo "$ac_t""no" 1>&6 +fi + +fi + +echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 +echo "configure:2013: checking for ANSI C header files" >&5 +if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#include +#include +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:2026: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + ac_cv_header_stdc=yes +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "memchr" >/dev/null 2>&1; then + : +else + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "free" >/dev/null 2>&1; then + : +else + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. +if test "$cross_compiling" = yes; then + : +else + cat > conftest.$ac_ext < +#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int main () { int i; for (i = 0; i < 256; i++) +if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); +exit (0); } + +EOF +if { (eval echo configure:2093: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_header_stdc=no +fi +rm -fr conftest* +fi + +fi +fi + +echo "$ac_t""$ac_cv_header_stdc" 1>&6 +if test $ac_cv_header_stdc = yes; then + cat >> confdefs.h <<\EOF +#define STDC_HEADERS 1 +EOF + +fi + +for ac_hdr in fcntl.h limits.h malloc.h sgtty.h strings.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:2120: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:2130: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + + + + +echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 +echo "configure:2160: checking whether struct tm is in sys/time.h or time.h" >&5 +if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +int main() { +struct tm *tp; tp->tm_sec; +; return 0; } +EOF +if { (eval echo configure:2173: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_struct_tm=time.h +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_struct_tm=sys/time.h +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_struct_tm" 1>&6 +if test $ac_cv_struct_tm = sys/time.h; then + cat >> confdefs.h <<\EOF +#define TM_IN_SYS_TIME 1 +EOF + +fi + + + + +echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 +echo "configure:2197: checking return type of signal handlers" >&5 +if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#ifdef signal +#undef signal +#endif +#ifdef __cplusplus +extern "C" void (*signal (int, void (*)(int)))(int); +#else +void (*signal ()) (); +#endif + +int main() { +int i; +; return 0; } +EOF +if { (eval echo configure:2219: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_type_signal=void +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_type_signal=int +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_type_signal" 1>&6 +cat >> confdefs.h <&6 +echo "configure:2240: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + + + + +echo $ac_n "checking system version""... $ac_c" 1>&6 +echo "configure:2296: checking system version" >&5 +system=`uname -s`-`uname -r` +if test "$?" -ne 0 ; then + echo "$ac_t""unknown (can't find uname command)" 1>&6 + system=unknown +else + # Special check for weird MP-RAS system (uname returns weird + # results, and the version is kept in special file). + + if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then + system=MP-RAS-`awk '{print $3}' /etc/.relid` + fi + if test "`uname -s`" = "AIX" ; then + system=AIX-`uname -v`.`uname -r` + fi + echo "$ac_t""$system" 1>&6 +fi +case $system in + BSD/OS-2.1*|BSD/OS-3*) + HAVE_UNIX_V=1 + ;; + HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*) + HAVE_UNIX_V=1 + ;; + Linux*) + HAVE_UNIX_V=1 + ;; + NetBSD-*|FreeBSD-*|OpenBSD-*) + HAVE_UNIX_V=1 + ;; + SunOS-4*) + HAVE_UNIX_7=1 + cat >> confdefs.h <<\EOF +#define SOLARIS 1 +EOF + + ;; + UNIX_SV*) + HAVE_UNIX_V=1 + ;; + *) + HAVE_GENERIC=1 + ;; +esac + +# +# Debido al uso indiscriminado de globales y su utilización como +# arrays en funciones como "getwd", el no forzar -fno-common +# es motivo de una gran inestabilidad, sobre todo en ciertas funciones +# definidas en "xmenu_file.c". +# + +CFLAGS="$CFLAGS -fno-common" + +# Check whether --enable-static-clips or --disable-static-clips was given. +if test "${enable_static_clips+set}" = set; then + enableval="$enable_static_clips" + : +fi + +if test "$enable_static_clips" = yes; then + WANT_STATIC_CLIPS=yes + +fi + +# Check whether --enable-debug or --disable-debug was given. +if test "${enable_debug+set}" = set; then + enableval="$enable_debug" + : +fi + +if test "$enable_debug" = yes; then + cat >> confdefs.h <<\EOF +#define DEBUG 1 +EOF + + CFLAGS="$CFLAGS -g -Wall" + CXXFLAGS="$CXXFLAGS -g -Wall" + echo $ac_n "checking for malloc in -lefence""... $ac_c" 1>&6 +echo "configure:2375: checking for malloc in -lefence" >&5 +ac_lib_var=`echo efence'_'malloc | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lefence $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBS="$LIBS -lefence" +else + echo "$ac_t""no" 1>&6 +fi + +fi + +# Check whether --enable-nooptimize or --disable-nooptimize was given. +if test "${enable_nooptimize+set}" = set; then + enableval="$enable_nooptimize" + : +fi + +if test "$enable_nooptimize" = yes; then + CFLAGS="$CFLAGS -O0" + CXXFLAGS="$CXXFLAGS -O0" +fi + +if test `expr "$CFLAGS" : ".*-g"` -eq 0 ; then + CFLAGS="$CFLAGS -fomit-frame-pointer" +fi + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +DEFS=-DHAVE_CONFIG_H + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS </dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo " + Makefile + setup.h clips_config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@VERSION_MAJOR@%$VERSION_MAJOR%g +s%@VERSION_MINOR@%$VERSION_MINOR%g +s%@VERSION@%$VERSION%g +s%@HAVE_GENERIC@%$HAVE_GENERIC%g +s%@HAVE_UNIX_V@%$HAVE_UNIX_V%g +s%@HAVE_UNIX_7@%$HAVE_UNIX_7%g +s%@WANT_EMACS_EDITOR@%$WANT_EMACS_EDITOR%g +s%@WANT_WINDOW_INTERFACE@%$WANT_WINDOW_INTERFACE%g +s%@SH@%$SH%g +s%@CC@%$CC%g +s%@RANLIB@%$RANLIB%g +s%@LN_S@%$LN_S%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@MKINSTALLDIRS@%$MKINSTALLDIRS%g +s%@HAVE_AUTOCONF@%$HAVE_AUTOCONF%g +s%@CPP@%$CPP%g +s%@x_libraries@%$x_libraries%g +s%@WANT_STATIC_CLIPS@%$WANT_STATIC_CLIPS%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where +# NAME is the cpp macro being defined and VALUE is the value it is being given. +# +# ac_d sets the value in "#define NAME VALUE" lines. +ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' +ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' +ac_dC='\3' +ac_dD='%g' +# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". +ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_uB='\([ ]\)%\1#\2define\3' +ac_uC=' ' +ac_uD='\4%g' +# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". +ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_eB='$%\1#\2define\3' +ac_eC=' ' +ac_eD='%g' + +if test "${CONFIG_HEADERS+set}" != set; then +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +fi +for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + echo creating $ac_file + + rm -f conftest.frag conftest.in conftest.out + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + cat $ac_file_inputs > conftest.in + +EOF + +# Transform confdefs.h into a sed script conftest.vals that substitutes +# the proper values into config.h.in to produce config.h. And first: +# Protect against being on the right side of a sed subst in config.status. +# Protect against being in an unquoted here document in config.status. +rm -f conftest.vals +cat > conftest.hdr <<\EOF +s/[\\&%]/\\&/g +s%[\\$`]%\\&%g +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp +s%ac_d%ac_u%gp +s%ac_u%ac_e%gp +EOF +sed -n -f conftest.hdr confdefs.h > conftest.vals +rm -f conftest.hdr + +# This sed command replaces #undef with comments. This is necessary, for +# example, in the case of _POSIX_SOURCE, which is predefined and required +# on some systems where configure will not decide to define it. +cat >> conftest.vals <<\EOF +s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */% +EOF + +# Break up conftest.vals because some shells have a limit on +# the size of here documents, and old seds have small limits too. + +rm -f conftest.tail +while : +do + ac_lines=`grep -c . conftest.vals` + # grep -c gives empty output for an empty file on some AIX systems. + if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi + # Write a limited-size here document to conftest.frag. + echo ' cat > conftest.frag <> $CONFIG_STATUS + sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS + echo 'CEOF + sed -f conftest.frag conftest.in > conftest.out + rm -f conftest.in + mv conftest.out conftest.in +' >> $CONFIG_STATUS + sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail + rm -f conftest.vals + mv conftest.tail conftest.vals +done +rm -f conftest.vals + +cat >> $CONFIG_STATUS <<\EOF + rm -f conftest.frag conftest.h + echo "/* $ac_file. Generated automatically by configure. */" > conftest.h + cat conftest.in >> conftest.h + rm -f conftest.in + if cmp -s $ac_file conftest.h 2>/dev/null; then + echo "$ac_file is unchanged" + rm -f conftest.h + else + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + fi + rm -f $ac_file + mv conftest.h $ac_file + fi +fi; done + +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +echo timestamp > .stamp-h.in +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + --- clips-6.24.orig/clipssrc/mkinstalldirs +++ clips-6.24/clipssrc/mkinstalldirs @@ -0,0 +1,40 @@ +#! /bin/sh +# mkinstalldirs --- make directory hierarchy +# Author: Noah Friedman +# Created: 1993-05-16 +# Public domain + +# $Id: mkinstalldirs,v 1.1.1.1 1997/10/17 17:05:54 jose Exp $ + +errstatus=0 + +for file +do + set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + shift + + pathcomp= + for d + do + pathcomp="$pathcomp$d" + case "$pathcomp" in + -* ) pathcomp=./$pathcomp ;; + esac + + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" 1>&2 + + mkdir "$pathcomp" || lasterr=$? + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + fi + fi + + pathcomp="$pathcomp/" + done +done + +exit $errstatus + +# mkinstalldirs ends here --- clips-6.24.orig/clipssrc/clips_config.h.in +++ clips-6.24/clipssrc/clips_config.h.in @@ -0,0 +1,90 @@ +/* clips_config.h.in. Generated automatically from configure.in by autoheader. */ + +/* Define as the return type of signal handlers (int or void). */ +#undef RETSIGTYPE + +/* Define if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define if your declares struct tm. */ +#undef TM_IN_SYS_TIME + +/* Define if the X Window System is missing or not being used. */ +#undef X_DISPLAY_MISSING + +/* Define if you want for aditional degugging info */ +#undef DEBUG + +/* Define if you have the header files. */ +#undef HAVE_LIBXAW3D_H + +/* SOLARIS flag added at NRC 96.2.9 to allow customization for Solaris systems +#undef SOLARIS + +/* Define if you have the ftime function. */ +#undef HAVE_FTIME + +/* Define if you have the getwd function. */ +#undef HAVE_GETWD + +/* Define if you have the header file. */ +#undef HAVE_DIRENT_H + +/* Define if you have the header file. */ +#undef HAVE_FCNTL_H + +/* Define if you have the header file. */ +#undef HAVE_LIMITS_H + +/* Define if you have the header file. */ +#undef HAVE_MALLOC_H + +/* Define if you have the header file. */ +#undef HAVE_NDIR_H + +/* Define if you have the header file. */ +#undef HAVE_SGTTY_H + +/* Define if you have the header file. */ +#undef HAVE_STDIO_H + +/* Define if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_DIR_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_NDIR_H + +/* Define if you have the ICE library (-lICE). */ +#undef HAVE_LIBICE + +/* Define if you have the SM library (-lSM). */ +#undef HAVE_LIBSM + +/* Define if you have the X11 library (-lX11). */ +#undef HAVE_LIBX11 + +/* Define if you have the Xaw3d library (-lXaw3d). */ +#undef HAVE_LIBXAW3D + +/* Define if you have the Xext library (-lXext). */ +#undef HAVE_LIBXEXT + +/* Define if you have the Xmu library (-lXmu). */ +#undef HAVE_LIBXMU + +/* Define if you have the Xt library (-lXt). */ +#undef HAVE_LIBXT + +/* Define if you have the m library (-lm). */ +#undef HAVE_LIBM + +/* Define if you have the termcap library (-ltermcap). */ +#undef HAVE_LIBTERMCAP + +/* New in clips 6.2 still to be defined */ +#define ENVIRONMENT_API_ONLY 0 +#define ALLOW_ENVIRONMENT_GLOBALS 1 + --- clips-6.24.orig/clipssrc/setup.h.in +++ clips-6.24/clipssrc/setup.h.in @@ -0,0 +1,540 @@ + /*******************************************************/ + /* "C" Language Integrated Production System */ + /* */ + /* CLIPS Version 6.21 06/15/03 */ + /* */ + /* SETUP HEADER FILE */ + /*******************************************************/ + +/*************************************************************/ +/* Purpose: This file is the general header file included by */ +/* all of the .c source files. It contains global */ +/* definitions and the compiler flags which must be edited */ +/* to create a version for a specific machine, operating */ +/* system, or feature set. */ +/* */ +/* Principal Programmer(s): */ +/* Gary D. Riley */ +/* Brian L. Donnell */ +/* */ +/* Contributing Programmer(s): */ +/* */ +/* Revision History: */ +/* */ +/*************************************************************/ + +#ifndef _H_setup +#define _H_setup + +/****************************************************************/ +/* -------------------- COMPILER FLAGS ------------------------ */ +/****************************************************************/ + +/*********************************************************************/ +/* Flag denoting the environment in which the executable is to run. */ +/* Only one of these flags should be turned on (set to 1) at a time. */ +/*********************************************************************/ + +#define GENERIC 0 /* Generic (any machine) */ +#define UNIX_V 1 /* UNIX System V or 4.2bsd or HP Unix */ +#define UNIX_7 0 /* UNIX System III Version 7 or Sun Unix */ +#define MAC_MCW 0 /* Apple Macintosh, with Code Warrior 7.0 */ +#define IBM_MCW 0 /* IBM PC, with CodeWarrior 3.2 */ +#define IBM_MSC 0 /* IBM PC, with Microsoft Visual C++ 6.0 */ +#define IBM_TBC 0 /* IBM PC, with Borland C++ 5.0 */ +#define IBM_GCC 0 /* IBM PC, with DJGPP 3.21 */ + /* The following are unsupported: */ +#define IBM_ZTC 0 /* IBM PC, with Zortech C++ 3.1 */ +#define IBM_ICB 0 /* IBM PC, with Intel C Code Builder 1.0 */ +#define IBM_SC 0 /* IBM PC, with Symantec C++ 6.1 */ +#define MAC_SC6 0 /* Apple Macintosh, with Symantec C 6.0 */ +#define MAC_SC7 0 /* Apple Macintosh, with Symantec C 7.0 */ +#define MAC_SC8 0 /* Apple Macintosh, with Symantec C 8.0 */ +#define MAC_MPW 0 /* Apple Macintosh, with MPW 3.2 C */ +#define VAX_VMS 0 /* VAX VMS */ + +#if IBM_ZTC || IBM_MSC || IBM_TBC || IBM_ICB || IBM_SC || IBM_MCW +#define IBM 1 +#else +#define IBM 0 +#endif + +#if MAC_SC6 || MAC_SC7 || MAC_SC8 +#define MAC_SC 1 +#else +#define MAC_SC 0 +#endif + +#if MAC_SC || MAC_MPW || MAC_MCW +#define MAC 1 +#else +#define MAC 0 +#endif + +/************************************************************/ +/* ANSI_COMPILER: Set this flag to 1 if the compiler being */ +/* used follows the draft proposed ANSI C standards */ +/* (including the ANSI C libraries). Set this flag to 0, */ +/* if the compiler being used follows the K & R standard. */ +/************************************************************/ + +#define ANSI_COMPILER 1 + +#if ANSI_COMPILER +#define VOID void +#define VOID_ARG void +#define CLIPS_STD_SIZE size_t +#else +#define VOID char +#define VOID_ARG +#define CLIPS_STD_SIZE int +#endif + +/***********************************************/ +/* Some definitions for use with declarations. */ +/***********************************************/ + +#define VOID void +#define VOID_ARG void +#define STD_SIZE size_t + +#define BOOLEAN int +#define intBool int +#define globle + +/*******************************************/ +/* RUN_TIME: Specifies whether a run-time */ +/* module is being created. */ +/*******************************************/ + +#ifndef RUN_TIME +#define RUN_TIME 0 +#endif + +/*************************************************/ +/* DEFRULE_CONSTRUCT: Determines whether defrule */ +/* construct is included. */ +/*************************************************/ + +#define DEFRULE_CONSTRUCT 1 + +#define CONFLICT_RESOLUTION_STRATEGIES 1 +#define DYNAMIC_SALIENCE 1 +#define INCREMENTAL_RESET 1 +#define LOGICAL_DEPENDENCIES 1 + +#if ! DEFRULE_CONSTRUCT +#undef CONFLICT_RESOLUTION_STRATEGIES +#undef DYNAMIC_SALIENCE +#undef INCREMENTAL_RESET +#undef LOGICAL_DEPENDENCIES +#define CONFLICT_RESOLUTION_STRATEGIES 0 +#define DYNAMIC_SALIENCE 0 +#define INCREMENTAL_RESET 0 +#define LOGICAL_DEPENDENCIES 0 +#endif + +/************************************************/ +/* DEFMODULE_CONSTRUCT: Determines whether the */ +/* defmodule construct is included. */ +/************************************************/ + +#define DEFMODULE_CONSTRUCT 1 + +/****************************************************/ +/* DEFTEMPLATE_CONSTRUCT: Determines whether facts */ +/* and the deftemplate construct are included. */ +/****************************************************/ + +#define DEFTEMPLATE_CONSTRUCT 1 + +#if ! DEFRULE_CONSTRUCT +#undef DEFTEMPLATE_CONSTRUCT +#define DEFTEMPLATE_CONSTRUCT 0 +#endif + +/****************************************************/ +/* DEFFACTS_CONSTRUCT: Determines whether deffacts */ +/* construct is included. */ +/****************************************************/ + +#define DEFFACTS_CONSTRUCT 1 + +#if ! DEFTEMPLATE_CONSTRUCT +#undef DEFFACTS_CONSTRUCT +#define DEFFACTS_CONSTRUCT 0 +#endif + +/************************************************/ +/* DEFGLOBAL_CONSTRUCT: Determines whether the */ +/* defglobal construct is included. */ +/************************************************/ + +#define DEFGLOBAL_CONSTRUCT 1 + +/**********************************************/ +/* DEFFUNCTION_CONSTRUCT: Determines whether */ +/* deffunction construct is included. */ +/**********************************************/ + +#define DEFFUNCTION_CONSTRUCT 1 + +/*********************************************/ +/* DEFGENERIC_CONSTRUCT: Determines whether */ +/* generic functions are included. */ +/*********************************************/ + +#define DEFGENERIC_CONSTRUCT 1 + +/******************************************************************/ +/* IMPERATIVE_METHODS: Determines if call-next-method and */ +/* override-next-method can be used to execute shadowed methods */ +/******************************************************************/ + +#define IMPERATIVE_METHODS 1 + +#if ! DEFGENERIC_CONSTRUCT +#undef IMPERATIVE_METHODS +#define IMPERATIVE_METHODS 0 +#endif + +/*****************************************************************/ +/* OBJECT_SYSTEM: Determines whether object system is included. */ +/* The MULTIFIELD_FUNCTIONS flag should also be on if you want */ +/* to be able to manipulate multi-field slots. */ +/*****************************************************************/ + +#define OBJECT_SYSTEM 1 + +/*****************************************************************/ +/* DEFINSTANCES_CONSTRUCT: Determines whether the definstances */ +/* construct is enabled. */ +/*****************************************************************/ + +#define DEFINSTANCES_CONSTRUCT 1 /* sed */ + +#if ! OBJECT_SYSTEM +#undef DEFINSTANCES_CONSTRUCT +#define DEFINSTANCES_CONSTRUCT 0 +#endif + +/******************************************************************/ +/* IMPERATIVE_MESSAGE_HANDLERS: Determines if "around" message- */ +/* handlers are allowed. Also determines if call-next-handler */ +/* and override-next-handler can be used to execute shadowed */ +/* handlers */ +/* AUXILIARY_MESSAGE_HANDLERS: Determines if "before" and "after" */ +/* message-handlers are allowed. */ +/* Turning both flags off can increase the speed of message */ +/* dispatch. */ +/******************************************************************/ + +#define IMPERATIVE_MESSAGE_HANDLERS 1 +#define AUXILIARY_MESSAGE_HANDLERS 1 + +#if ! OBJECT_SYSTEM +#undef IMPERATIVE_MESSAGE_HANDLERS +#undef AUXILIARY_MESSAGE_HANDLERS +#define IMPERATIVE_MESSAGE_HANDLERS 0 +#define AUXILIARY_MESSAGE_HANDLERS 0 +#endif + +/********************************************************************/ +/* INSTANCE_SET_QUERIES: Determines if instance-set query functions */ +/* such as any-instancep and do-for-all-instances are included. */ +/********************************************************************/ + +#define INSTANCE_SET_QUERIES 1 + +#if ! OBJECT_SYSTEM +#undef INSTANCE_SET_QUERIES +#define INSTANCE_SET_QUERIES 0 +#endif + +/********************************************************************/ +/* INSTANCE_PATTERN_MATCHING: Determines if direct pattern-matching */ +/* on objects on the LHS of rules is allowed. */ +/********************************************************************/ + +#define INSTANCE_PATTERN_MATCHING 1 + +#if (! OBJECT_SYSTEM) || (! DEFRULE_CONSTRUCT) +#undef INSTANCE_PATTERN_MATCHING +#define INSTANCE_PATTERN_MATCHING 0 +#endif + +/******************************************************************/ +/* Check for consistencies associated with the defrule construct. */ +/******************************************************************/ + +#if (! DEFTEMPLATE_CONSTRUCT) && (! INSTANCE_PATTERN_MATCHING) +#undef DEFRULE_CONSTRUCT +#define DEFRULE_CONSTRUCT 0 +#endif + +#if (! DEFRULE_CONSTRUCT) +#undef CONFLICT_RESOLUTION_STRATEGIES +#define CONFLICT_RESOLUTION_STRATEGIES 0 +#undef DYNAMIC_SALIENCE +#define DYNAMIC_SALIENCE 0 +#undef INCREMENTAL_RESET +#define INCREMENTAL_RESET 0 +#undef LOGICAL_DEPENDENCIES +#define LOGICAL_DEPENDENCIES 0 +#endif + +/*******************************************************************/ +/* BLOAD/BSAVE_INSTANCES: Determines if the save/restore-instances */ +/* functions can be enhanced to perform more quickly by using */ +/* binary files */ +/*******************************************************************/ + +#define BLOAD_INSTANCES 1 +#define BSAVE_INSTANCES 1 + +#if ! OBJECT_SYSTEM +#undef BLOAD_INSTANCES +#undef BSAVE_INSTANCES +#define BLOAD_INSTANCES 0 +#define BSAVE_INSTANCES 0 +#endif + +/****************************************************************/ +/* EXTENDED MATH PACKAGE FLAG: If this is on, then the extended */ +/* math package functions will be available for use, (normal */ +/* default). If this flag is off, then the extended math */ +/* functions will not be available, and the 30K or so of space */ +/* they require will be free. Usually a concern only on PC type */ +/* machines. */ +/****************************************************************/ + +#define EX_MATH 1 + +/****************************************************************/ +/* TEXT PROCESSING : Turn on this flag for support of the */ +/* hierarchical lookup system. */ +/****************************************************************/ + +#define TEXTPRO_FUNCTIONS 1 + +/****************************************************************/ +/* HELP: To implement the help facility, set the flag below and */ +/* specify the path and name of the help data file your system. */ +/****************************************************************/ + +#define HELP_FUNCTIONS 1 + +#if HELP_FUNCTIONS +#define HELP_DEFAULT "/usr/share/clips/clips.hlp" +#endif + +/*************************************************************************/ +/* BLOAD_ONLY: Enables bload command and disables the load command. */ +/* BLOAD: Enables bload command. */ +/* BLOAD_AND_BSAVE: Enables bload, and bsave commands. */ +/*************************************************************************/ + +#define BLOAD_ONLY 0 +#define BLOAD 0 +#define BLOAD_AND_BSAVE 1 + +#if RUN_TIME +#undef BLOAD_ONLY +#define BLOAD_ONLY 0 +#undef BLOAD +#define BLOAD 0 +#undef BLOAD_AND_BSAVE +#define BLOAD_AND_BSAVE 0 +#endif + +/****************************************************************/ +/* EMACS_EDITOR: If this flag is turned on, an integrated EMACS */ +/* style editor can be utilized on supported machines. */ +/****************************************************************/ + +#define EMACS_EDITOR 1 + +#if GENERIC || MAC +#undef EMACS_EDITOR /* Editor can't be used */ +#define EMACS_EDITOR 0 /* with Generic or Mac */ +#endif + +/********************************************************************/ +/* CONSTRUCT COMPILER: If this flag is turned on, you can generate */ +/* C code representing the constructs in the current environment. */ +/* With the RUN_TIME flag set, this code can be compiled and */ +/* linked to create a stand-alone run-time executable. */ +/********************************************************************/ + +#define CONSTRUCT_COMPILER 1 + +#if CONSTRUCT_COMPILER +#define API_HEADER "clips.h" +#endif + +/*******************************************/ +/* BASIC_IO: Includes printout, fprintout, */ +/* read, open, and close functions. */ +/*******************************************/ + +#define BASIC_IO 1 + +/***************************************************/ +/* EXT_IO: Includes format and readline functions. */ +/***************************************************/ + +#define EXT_IO 1 + +/************************************************/ +/* STRING_FUNCTIONS: Includes string functions: */ +/* str-length, str-compare, upcase, lowcase, */ +/* sub-string, str-index, and eval. */ +/************************************************/ + +#define STRING_FUNCTIONS 1 + +/*********************************************/ +/* MULTIFIELD_FUNCTIONS: Includes multifield */ +/* functions: mv-subseq, mv-delete, */ +/* mv-append, str-explode, str-implode. */ +/*********************************************/ + +#define MULTIFIELD_FUNCTIONS 1 + +/****************************************************/ +/* DEBUGGING_FUNCTIONS: Includes functions such as */ +/* rules, facts, matches, ppdefrule, etc. */ +/****************************************************/ + +#define DEBUGGING_FUNCTIONS 1 + +/***************************************************/ +/* PROFILING_FUNCTIONS: Enables code for profiling */ +/* constructs and user functions. */ +/***************************************************/ + +#define PROFILING_FUNCTIONS 1 + +/************************************************************************/ +/* BLOCK_MEMORY: Causes memory to be allocated in large blocks. */ +/* INITBUFFERSIZE and BLOCKSIZE should both be set to less than the */ +/* maximum size of a signed integer. On a 16-bit machine, they should */ +/* be less than 32768. If a LightSpeed (Think) C version 2.x or 3.x */ +/* compiler is being used, then this option should be turned on. */ +/************************************************************************/ + +#define BLOCK_MEMORY 0 + +#if BLOCK_MEMORY + +#define INITBLOCKSIZE 32000 +#define BLOCKSIZE 32000 + +#endif + +/*****************************************************************/ +/* WINDOW_INTERFACE : Set this flag if you are recompiling the */ +/* IBM-PC MS-DOS Window Interface or the Macintosh LSC Window */ +/* Interface. Currently, when enabled, this flag disables the */ +/* more processing used by the help system. */ +/* This flag also prevents any input or output being directly */ +/* sent to stdin or stdout. */ +/*****************************************************************/ + +#ifndef WINDOW_INTERFACE +#define WINDOW_INTERFACE 1 +#endif + +#if WINDOW_INTERFACE +#undef EMACS_EDITOR /* Editor can't be used with */ +#define EMACS_EDITOR 0 /* windowed interface */ +#endif + +/*****************************************************************/ +/* SHORT_LINK_NAMES: Converts some function and global variable */ +/* names to 6 characters. Use with linkers that recognize */ +/* fewer significant characters than the C compiler generating */ +/* the object code. */ +/*****************************************************************/ + +#define SHORT_LINK_NAMES 0 + +#if SHORT_LINK_NAMES +#include "shrtlnkn.h" +#endif + +/*********************************************************/ +/* ENVIRONMENT_API_ONLY: If enabled, only the enviroment */ +/* API may be used to interface with CLIPS. */ +/*********************************************************/ + +#define ENVIRONMENT_API_ONLY 0 + +/*************************************************************/ +/* ALLOW_ENVIRONMENT_GLOBALS: If enabled, tracks the current */ +/* environment and allows environments to be referred to */ +/* by index. If disabled, CLIPS makes no use of global */ +/* variables. */ +/*************************************************************/ + +#define ALLOW_ENVIRONMENT_GLOBALS 1 + +#if ! ALLOW_ENVIRONMENT_GLOBALS +#undef ENVIRONMENT_API_ONLY /* Environment API must be used */ +#define ENVIRONMENT_API_ONLY 1 /* if no environment globals */ + +#undef EMACS_EDITOR /* Editor can't be used without */ +#define EMACS_EDITOR 0 /* environment globals */ +#endif + +/********************************************/ +/* DEVELOPER: Enables code for debugging a */ +/* development version of the executable. */ +/********************************************/ + +#ifndef DEVELOPER +#define DEVELOPER 0 +#endif + +#if DEVELOPER +#include +#define Bogus(x) assert(! (x)) +#else +#define Bogus(x) +#endif + +/***************************/ +/* Environment Definitions */ +/***************************/ + +#include "envrnmnt.h" + +/******************************/ +/* Compatibilty Redefinitions */ +/******************************/ + +#define PrintCLIPS(x,y) EnvPrintRouter(GetCurrentEnvironment(),x,y) +#define GetcCLIPS(x,y) EnvGetcRouter(GetCurrentEnvironment(),x) +#define UngetcCLIPS(x,y) EnvUngetcRouter(GetCurrentEnvironment(),x,y) +#define ExitCLIPS(x) EnvExitRouter(GetCurrentEnvironment(),x) +#define CLIPSSystemError(x,y) SystemError(x,y) +#define CLIPSFunctionCall(x,y,z) FunctionCall(x,y,z) +#define InitializeCLIPS() InitializeEnvironment() +#define WCLIPS WPROMPT +#define CLIPSTrueSymbol SymbolData(GetCurrentEnvironment())->TrueSymbol +#define CLIPSFalseSymbol SymbolData(GetCurrentEnvironment())->FalseSymbol +#define EnvCLIPSTrueSymbol(theEnv) SymbolData(theEnv)->TrueSymbol +#define EnvCLIPSFalseSymbol(theEnv) SymbolData(theEnv)->FalseSymbol +#define CLIPS_FALSE 0 +#define CLIPS_TRUE 1 + +/*************************************************/ +/* Any user defined global setup information can */ +/* be included in the file usrsetup.h which is */ +/* an empty file in the baseline version. */ +/*************************************************/ + +#include "usrsetup.h" + +#endif /* _H_setup */ + --- clips-6.24.orig/clipssrc/router.h +++ clips-6.24/clipssrc/router.h @@ -85,6 +85,7 @@ #define LOCALE extern #endif + #if ENVIRONMENT_API_ONLY #define ExitRouter(theEnv,a) EnvExitRouter(theEnv,a) #define GetcRouter(theEnv,a) EnvGetcRouter(theEnv,a) --- clips-6.24.orig/doc/CLIPS-FAQ +++ clips-6.24/doc/CLIPS-FAQ @@ -0,0 +1 @@ + Frequently Asked Questions

Frequently Asked Questions

  1. What is CLIPS?
  2. Where Can I Get a Copy of CLIPS?
  3. What's New in Version 6.2 of CLIPS?
  4. Can CLIPS Be Redistributed? Are There Any Licensing Fees?
  5. What Forums Are Available For Answering Questions About CLIPS?
  6. Are There Any Sources Describing Applications Built Using CLIPS?
  7. Are There Any Textbooks Using CLIPS?
  8. Are There Any Special Versions of CLIPS?
  9. Can CLIPS be Integrated with C++ Code?
  10. Is a Dynamic Link Library Available for CLIPS?
  11. What are the Origins of CLIPS?
  12. Are There Any Languages Similar to CLIPS?
  13. What are the Future Plans for CLIPS?
  14. Can CLIPS be Used for Real Time Applications?
  15. Are There Any Examples of User Defined Functions Other Than the Ones in the Advanced Programming Guide?
  16. Does a Run-Time Program Generated Using the Constructs-To-C Command Run any Faster Than a Program Loaded Using the Load or Bload Commands?
  17. Is the CLIPS 6.X Architecture Manual Available?
  18. Are Consulting/Training Services Available for CLIPS?
  1. What is CLIPS?

    CLIPS is a productive development and delivery expert system tool which provides a complete environment for the construction of rule and/or object based expert systems. Created in 1985, CLIPS is now widely used throughout the government, industry, and academia. Its key features are:

    • Knowledge Representation: CLIPS provides a cohesive tool for handling a wide variety of knowledge with support for three different programming paradigms: rule-based, object-oriented and procedural. Rule-based programming allows knowledge to be represented as heuristics, or "rules of thumb," which specify a set of actions to be performed for a given situation. Object-oriented programming allows complex systems to be modeled as modular components (which can be easily reused to model other systems or to create new components). The procedural programming capabilities provided by CLIPS are similar to capabilities found in languages such as C, Java, Ada, and LISP.

    • Portability: CLIPS is written in C for portability and speed and has been installed on many different operating systems without code changes. Operating systems on which CLIPS has been tested include Windows XP, MacOS X, and Unix. CLIPS can be ported to any system which has an ANSI compliant C or C++ compiler. CLIPS comes with all source code which can be modified or tailored to meet a user's specific needs.

    • Integration/Extensibility: CLIPS can be embedded within procedural code, called as a subroutine, and integrated with languages such as C, Java, FORTRAN and ADA. CLIPS can be easily extended by a user through the use of several well-defined protocols.

    • Interactive Development: The standard version of CLIPS provides an interactive, text oriented development environment, including debugging aids, on-line help, and an integrated editor. Interfaces providing features such as pulldown menus, integrated editors, and multiple windows have been developed for the Mac OS X, Windows XP, and X Window environments.

    • Verification/Validation: CLIPS includes a number of features to support the verification and validation of expert systems including support for modular design and partitioning of a knowledge base, static and dynamic constraint checking of slot values and function arguments, and semantic analysis of rule patterns to determine if inconsistencies could prevent a rule from firing or generate an error.

    • Fully Documented: CLIPS comes with extensive documentation including a Reference Manual and a User's Guide.

    • Low Cost: CLIPS is maintained as public domain software.

  2. Where Can I Get a Copy of CLIPS?

    CLIPS executables, documentation, source code, and examples can be downloaded from the Download Page of the CLIPS Project on SourceForge.

  3. What's New in Version 6.2 of CLIPS?
    • CLIPS now provides a mechanism which allows an embedded application to create multiple environments into which programs can be loaded.

    • An improved Windows XP CLIPS interface is now available and the Macintosh CLIPS interface has been enhanced to support Mac OS X.

  4. Can CLIPS Be Redistributed? Are There Any Licensing Fees?

    Copies of CLIPS executables, documentation, and source code downloaded from the CLIPS Project on SourceForge are subject to the following license agreement:

    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, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.

    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 OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

  5. What Forums Are Available For Answering Questions About CLIPS?
    • The CLIPS Expert System Group is a forum for the discussion of CLIPS related topics.

    • Questions regarding CLIPS can be sent via electronic mail to clipsYYYY@swbell.net where YYYY is the current year (for example, 2008). Include the words 'CLIPS USER' in the subject line.

    • The CLIPS Project on SourceForge also has a Forums Page.

  6. Are There Any Sources Describing Applications Built Using CLIPS?

    There are a number of sources describing applications built using CLIPS:

    • A bibliography list of CLIPS related books, papers, and articles is contained in Appendix J of the CLIPS Basic Programming Guide.

    • Proceedings of the Third CLIPS Conference, held in 1994, are available in PDF.

    • The Proceedings of the First, Fourth, and Fifth Innovative Applications of Artificial Intelligence also contain descriptions of applications built using CLIPS ("An Intelligent Training System for Space Shuttle Flight Controllers" and "Space Shuttle Telemetry Monitoring" in the First, "HUB SIAASHING: A Knowledge-Based System for Severe, Temporary Airline Schedule Reduction" in the Fourth, and "PI-in-a-Box: A Knowledge-based System for Space Science Experimentation" and "The DRAIR Advisor: A Knowledge-Based System for Materiel Deficiency Analysis" in the Fifth).

  7. Are There Any Textbooks Using CLIPS?

    Expert Systems: Principles and Programming, 4th Edition, by Giarratano and Riley (ISBN 0-534-38447-1), comes with a CD-ROM containing CLIPS 6.22 executables, source code, and documentation. The first half of the book is theory oriented and the second half covers rule-based, procedural, and object-oriented programming using CLIPS. For more information, contact Course Technology.

    Introduction To Expert Systems, 3rd Edition, by Jackson (ISBN 0-201-87686-8), contains numerous CLIPS examples and exercises throughout the book. For more information, contact Addison Wesley.

    The Engineering of Knowledge-based Systems: Theory and Practice, by Gonzalez and Dankel (ISBN 0132 769 409), comes with an MS-DOS executable of version 5.1 of CLIPS. The use of CLIPS isn't integrated throughout the book, but there is a 25 page appendix that describes the fundamentals of using the CLIPS executable bundled with the book. For more information, contact Prentice Hall.

  8. Are There Any Special Versions of CLIPS?
    • AdaClips is a semi-thick Ada (95) binding to CLIPS.

    • CLIPS/Ada version 4.4, available from the Open Channel Foundation, is a version of CLIPS developed entirely in Ada and containing a subset of the features found in the C version of CLIPS. CLIPS/Ada version 4.4 contains all of the features found in CLIPS/C version 4.3, and with the exception of the CLIPS Object-Oriented Language, all of the features found in CLIPS/C version 5.0. There are no plans to update CLIPS/Ada to a more recent version of CLIPS/C.

    • CAPE is a programming environment that combines the CLIPS rule-based system with the Perl procedural programming language.

    • The clipsmm library is a C++ interface to CLIPS.

    • ClipsNet integrates CLIPS projects into the .Net framework by making the CLIPS environment available through both managed and unmanaged code.

    • The Clips .NET Lib integrates .NET and CLIPS. This library is distributed with source code.

    • FuzzyCLIPS 1.5 is an extension of CLIPS incorporating fuzzy logic. FuzzyCLIPS includes all CLIPS 5.1 capabilities and adds the fuzzy logic processing capability.

    • FuzzyCLIPS 6.04 is an extended version of CLIPS 6.04 for representing and manipulating fuzzy facts and rules. In addition to the CLIPS functionality, FuzzyCLIPS can deal with exact, fuzzy (or inexact), and combined reasoning, allowing fuzzy and normal terms to be freely mixed in the rules and facts of an expert system. The system uses two basic inexact concepts, fuzziness and uncertainty. It was developed by the Knowledge Systems Laboratory of the National Research Council of Canada (and is a different tool than the previously mentioned FuzzyCLIPS 1.5 developed by Togai InfraLogic).

    • KAPICLIPS is A KQML (Knowledge Query & Manipulation Language) API for CLIPS, developed by Ernest Friedman-Hill.

    • LuaCLIPS combines Lua, an open source scripting language, with CLIPS in a Lua accessible Windows DLL.

    • ObjectiveCLIPS, a framework that lets you build Mac GUIs on top of CLIPS deftemplates which are derived from persistent Core Data objects.

    • PerlCLIPS is an integration between Perl and CLIPS.

    • PHLIPS is a PHP extension that provides a basic interface to the CLIPS environment.

    • PyCLIPS is a Python module that integrates CLIPS into Python.

    • TclCLIPS provides a Tcl interface to CLIPS

    • wxCLIPS, developed by Julian Smart, provides a simple graphical front end to CLIPS 5.1/6.0, and in addition contains a suite of extra functions for creating GUI applications in CLIPS.

    • ZClips allows Zope to interact with CLIPS.

  9. Can CLIPS be Integrated with C++ Code?

    Yes. Version 6.1 and later can be compiled with either an ANSI C or C++ compiler. However, the CLIPS source code only uses features that are available in both the ANSI C and C++ standards. Since the object extensions of C++ are not part of the ANSI C standard, they are not utilized in the CLIPS source code. CLIPS 6.3 comes with starter projects which demonstrate how to build a C++ library.

    The clipsmm library is a C++ interface to CLIPS.

  10. Is a Dynamic Link Library Available for CLIPS?

    There are several DLLs available for use with CLIPS:

    • The Clips .NET Lib integrates .NET and CLIPS. This library is distributed with source code.

    • CLIPS 6.3 comes with starter projects that demonstrate how to build a DLL.

    • ClipsNet integrates CLIPS projects into the .Net framework by making the CLIPS environment available through both managed and unmanaged code.

    • A DLL, ActiveX Control, and other items of interest for CLIPS 6.2 are available here.

  11. What are the Origins of CLIPS?

    The origins of CLIPS date back to 1984 at NASA's Johnson Space Center. At this time, the Artificial Intelligence Section had developed over a dozen prototype expert systems applications using state-of-the-art hardware and software. However, despite extensive demonstrations of the potential of expert systems, few of these applications were put into regular use. This failure to provide expert systems technology within NASA's operational computing constraints could largely be traced to the use of LISP as the base language for nearly all expert system software tools at that time.

    The Artificial Intelligence Section felt that the use of a conventional language, such as C, would eliminate most of these problems. Although a number of tool vendors started converting their tools to run in C, the cost of each tool was still very high, most were restricted to a small variety of computers, and the projected availability times were discouraging. To meet all of its needs in a timely and cost effective manner, it became evident that the Artificial Intelligence Section would have to develop its own C based expert system tool.

    The prototype version of CLIPS was developed in 1985. Particular attention was given to making the tool compatible with expert systems under development at that time. Thus, the syntax of CLIPS was made to very closely resemble the syntax of a subset of the ART expert system tool developed by Inference Corporation. Although originally modelled from ART, CLIPS was developed entirely without assistance from Inference or access to the ART source code.

    The original intent for CLIPS was to gain useful insight and knowledge about the construction of expert system tools and to lay the groundwork for the construction of a replacement tool for the commercial tools currently being used. Version 1.0 demonstrated the feasibility of the project concept. After additional development, it became apparent that CLIPS would be a low cost expert system tool ideal for the purposes of training. Another year of development and internal use went into CLIPS improving its portability, performance, functionality, and supporting documentation. Version 3.0 of CLIPS was made available to groups outside of NASA in the summer of 1986.

    Further enhancements transformed CLIPS from a training tool into a tool useful for the development and delivery of expert systems as well. Versions 4.0 and 4.1 of CLIPS, released respectively in the summer and fall of 1987, featured greatly improved performance, external language integration, and delivery capabilities. Version 4.2 of CLIPS, released in the summer of 1988, was a complete rewrite of CLIPS for code modularity. Also included with this release were an architecture manual providing a detailed description of the CLIPS software architecture and a utility program for aiding in the verification and validation of rule-based programs. Version 4.3 of CLIPS, released in the summer of 1989, added still more functionality.

    Originally, the primary representation methodology in CLIPS was a forward chaining rule language based on the Rete algorithm (hence the Production System part of the CLIPS acronym). Version 5.0 of CLIPS, released in the spring of 1991, introduced two new programming paradigms: procedural programming (as found in languages such as C and Ada;) and object-oriented programming (as found in languages such as the Common Lisp Object System and Smalltalk). The object-oriented programming language provided within CLIPS is called the CLIPS Object-Oriented Language (COOL). Version 5.1 of CLIPS, released in the fall of 1991, was primarily a software maintenance upgrade required to support the newly developed and/or enhanced X Window, MS-DOS, and Macintosh interfaces. Version 6.0, released in the Spring of 1993, added fully integrated object/rule pattern matching and support features for rule-based software engineering.

    In the mid 1990s the focus of the Artifical Intelligence Section (now the Software Technology Branch) shifted away from expert system technology. The principle developers subsequently left NASA. CLIPS is now maintained independently from NASA as public domain software by one of the original program authors. The first public domain release of CLIPS, version 6.1 in 1998, removed support for older non-ANSI C Compilers and added support for C++ compilers. Commands to profile the time spent in constructs and user-defined functions were also added. Version 6.2, released in the Spring of 2002, added support for multiple environments into which programs can be loaded and improved Windows XP and MacOS development interfaces.

  12. Are There Any Languages Similar to CLIPS?

    CLIPS is an interesting example of technology transfer between the government and private sectors. Syntactically, CLIPS traces its origins to Inference's ART which traced the origins of its rule-based language to OPS5. Later, CLIPS was used by Inference to develop ART-IM (which later became ARTEnterprise, by The Haley Enterprise to develop Eclipse (which later became HaleyRules), and by Production Systems Technology to develop CLIPS/R2. Other languages, such as Jess, adopted syntax similar to ART and CLIPS. This has created a family of tools that share the same basic syntax for the definition of rules. While the features and capabilities of these tools has diverged sufficiently that porting an application taking full advantage of a tool's complete feature set is non-trivial, it's still possible if one uses a restricted subset of features to write portable programs that will run with few if any simple changes.

  13. What are the Future Plans for CLIPS?

    Version 6.3 will target rule performance, improved integration with other languages (such as C++, .NET, and Java), and examples for common use cases. Version 6.4 will target unicode support.

  14. Can CLIPS be Used for Real Time Applications?

    Yes and no. It depends on what you mean by a real time application.

    If you want guaranteed response time, then the answer is no. Generally speaking, the more robust the pattern matching capabilities of a tool, the more difficult it is to guarantee real time response.

    If you need built-in functionality that allows you reason about events as they occur over time, then the answer is no. Many tools designed for real time applications provide features that allow you (among other things) to schedule rules to be checked at a particular time or on a particular time interval, specify how long data is valid, determine trends in data (such as whether it's increasing or decreasing), and synchronize the execution of tasks. In addition, some tools provide extensive facilities for the "non AI" related aspects of developing a real time application such as the graphical interface, simulation, and data acquisition. It's possible to use CLIPS to reason about events as they occur over time--It's just not a built-in feature. You can, for example, add an additional slot to facts which stores their creation time and then use rules which reason based on the contents of this slot.

    If by real time you mean that the application is able to keep up with the data as it is received, then the answer is maybe. Almost all expert system tools can keep up with a real time system that only requires decisions to be made in minutes/hours/days. Response time tends to become an issue only when large amounts of data are being processed or decisions are required in seconds or fractions of a second.

    CLIPS is based on the Rete pattern matching algorithm. The efficiency of this algorithm is based on the assumption that data changes slowly over time (e.g. a single rule firing affects < 5% of all facts). This assumption would appear to fail miserably for monitoring applications (as well as other applications where rapid data change can occur). If, for example, you have 100 facts representing various sensor values and the sensor values change every second, you have very rapid data changes (assuming you don't have thousands and thousands of facts of other types). It's often possible to comply with the Rete assumption by preprocessing data. For example, if a sensor value changes from 10 to 10.1 and this change is not significant, then it's not necessary to retract the old fact and assert a new fact with the changed sensor value. Another preprocessing approach would be to convert numeric values to symbolic values such as low, nominal, and high and then to retract the old fact and assert a new one only if the symbolic value changed. The major drawback to this approach is that you generally have to write C code to preprocess the data and keep track of pointers to facts so that facts can later be retracted by the preprocessor--Of course if you're dealing with real-time data, you're probably writing some C code anyway.

  15. Are There Any Examples of User Defined Functions Other Than the Ones in the Advanced Programming Guide?

    Virtually all of the system defined functions that come ready to use with CLIPS utilize the same programming interface that you have to use to define your own functions. Look through files in the CLIPS source code such as bmathfun.c, iofun.c, miscfun.c, prdctfun.c, emathfun.c, filecom.c, and multifun.c for examples.

  16. Does a Run-Time Program Generated Using the Constructs-To-C Command Run any Faster Than a Program Loaded Using the Load or Bload Commands?

    A run-time program will not run any faster than a program loaded using the load or bload commands. The constructs-to-c command used to generate a run-time program creates files containing the C data structures that would dynamically be allocated if the load or bload command was used. With the exception of some initialization routines, the constructs-to-c command does not generate any executable code. The primary benefits of creating a run-time program are: applications can be delivered as a single executable file; loading constructs as part of an executable is faster than loading them from an text or binary file; the CLIPS portion of the run-time program is smaller because the code needed to parse constructs can be discarded; and less memory is required to represent your program's constructs since memory for them is statically rather than dynamically allocated.

  17. Is the CLIPS 6.X Architecture Manual Available?

    There are no plans to write a 6.X Architecture Manual. Copies of the CLIPS 5.1 Architecture Manual are still bundled with the CLIPS documentation.

  18. Are Consulting/Training Services Available for CLIPS?

    Inquiries about consulting, training, or other employment opportunities can be sent to gdrworkYYYY@swbell.net or clipsYYYY@swbell.net where YYYY is the current year (for example, 2008).

Back to CLIPS Home Page.


SourceForge.net Logo
Last Update January 25, 2008 Gary Riley
\ No newline at end of file --- clips-6.24.orig/doc/html/ListServer.html +++ clips-6.24/doc/html/ListServer.html @@ -0,0 +1,49 @@ + + + + CLIPS List Server + + + + +

CLIPS List Server

+ +

An electronic conferencing facility, sponsored by Distributed +Computing Systems, is also available to CLIPS users. Subscribers to +this facility may send questions, observations, answers, editorials, etc., +in the form of electronic mail to the conference. All subscribers will have +a copy of these messages reflected back to them at their respective electronic +mail addresses. To subscribe, send a single line message to clips-request@discomsys.com +containing the word "subscribe". The subject field is ignored +but the address found in the 'Reply:', 'Reply to:', or 'From:' field will +be entered in the distribution list. Upon subscription you will receive +a mail message instructing you how to participate in the conference from +that point forward.

+ +

To send your own messages to members of the conference you need simply +address your mail to clips@discomsys.com. +Your message will be reflected to all other members of the conference.

+ +

If you wish to remove yourself from the conference and discontinue receiving +mail simply send a message to clips-request@discomsys.com +with "unsubscribe" being the text of the message. If you want +to unsubscribe using another email account than the one you subscribed with, +then append the original subscribing email account to the text of the message. +For example: "unsubscribe john.doe@account.net". If you need to +get in contact contact with the list administrator (for trouble unsubscribing +or other questions about the list), send email to clips-owner@discomsys.com.
+

+ +

Intelligent Software Professionals +has made available the CLIPS-LIST +archive, a WWW-based full text searchable archive containing several +years of question and answers directed to the CLIPS List Server.

+ +

Back to CLIPS Home Page.

+ +


+Last Update May 22, 2004 Gary Riley + + --- clips-6.24.orig/doc/html/index.html +++ clips-6.24/doc/html/index.html @@ -0,0 +1 @@ + CLIPS: A Tool for Building Expert Systems

 

 

A Tool for Building Expert Systems


SourceForge.net Logo
Last Update April 7, 2008 Gary Riley
\ No newline at end of file --- clips-6.24.orig/doc/html/CLIPS.html +++ clips-6.24/doc/html/CLIPS.html @@ -0,0 +1,37 @@ + + + + CLIPS: A Tool for Building Expert Systems + + + + +

+ + + +
 
+

 

+ + +
+

+ +

A Tool for Building Expert Systems

+ +

+Last Update June 15, 2006 Gary Riley + + --- clips-6.24.orig/doc/html/CLIPSJNIBeta.html +++ clips-6.24/doc/html/CLIPSJNIBeta.html @@ -0,0 +1 @@ + CLIPSJNI Version 0.2 Beta

CLIPSJNI Version 0.2 Beta

A beta version of CLIPSJNI, a Java Native Interface for CLIPS, is available for download on the SourceForge CLIPS Download Page.

Version 0.1 demonstrates basic techniques for integrating CLIPS with a GUI and comes with three examples of CLIPS programs integrated with a Swing front end.

Version 0.2 adds an additional example and demonstrates how to build a GUI using languages other than English. Example software generated translations are provided for Spanish, Japanese, Russian, and Arabic.

Back to CLIPS Home Page.


SourceForge.net Logo
Last Update February 7, 2008 Gary Riley
\ No newline at end of file --- clips-6.24.orig/doc/html/WhereCopy.html +++ clips-6.24/doc/html/WhereCopy.html @@ -0,0 +1,110 @@ + + + + Obtaining a Copy of CLIPS + + + + +

Obtaining a Copy of CLIPS

+ +

CLIPS Download Site

+ +

CLIPS 6.1 executables, documentation, and +source code are available at http://www.ghgcorp.com/clips/download/. +This is the primary site for obtaining the latest release of CLIPS. Most +of the documentation at this site is stored in Portable Document Format +(PDF) which requires Adobe Acrobat Reader. This program can be downloaded +from http://www.adobe.com/prodindex/acrobat/readstep.html. +Compressed files at the CLIPS web set are stored in several formats: zip +(primarily for PC users), sea.hqx (for MacOS users), and tar.Z (for Unix +users). Utilities for unzipping zip files can be found at http://www.shareware.com/. +Select the appropriate operating system and search for unzip. For sea.hqx +files, select Macintosh and search for stuffit-expander. For Unix users, +the Unix uncompress and tar commands should be used for extracting files +from tar.Z archives.

+ +

Usage Restrictions

+ +

Copies of CLIPS executables, source code, and documentation obtained +from the CLIPS download site can be freely used and redistributed without +restrictions.

+ +

Other Sources for Obtaining CLIPS

+ +

Expert +Systems: Principles and Programming, 3rd Edition, by Giarratano and +Riley (ISBN 0-534-95053-1 from Thomson +Learning) comes with a CD-ROM containing CLIPS 6.05 executables, source +code, and documentation. The first half of the book is theory oriented and +the second half covers rule-based programming using CLIPS.

+ +

 

+ +

The CLIPS 6.0 UNIX, PC, and Macintosh distribution packages are available +by anonymous ftp from the CMU +AI repository at cs.cmu.edu +and can be found in the /afs/cs.cmu.edu/project/ai-repository/ai/areas/expert/systems/clips +directory. Other versions of CLIPS and CLIPS related files are also available +at this ftp site.

+ +

 

+ +

CLIPS version 6.0 is available from The +Austin Code Works for $50. For more information, contact
+
+The Austin Code Works
+11100 Leafwood Lane
+Austin, Texas 78750-3409
+Phone: (512) 258-0785
+Fax: (512) 258-1342
+EMail: info@acw.com

+ +

 

+ +

CLIPS version 6.0 is available on an ISO-9660 format +CD-ROM from Prime Time Freeware. It +comes as part of an AI package based on the CMU +AI repository and consists of two CD-ROMs bound into a 224-page book. +Each CD-ROM contains approximately 600 megabytes of gzipped archives (more +than 5 gigabytes uncompressed and unpacked). It sells for $60 plus applicable +sales tax and shipping and handling charges. For more information, contact
+
+Prime Time Freeware
+370 Altair Way, Suite 150
+Sunnyvale, CA 94086 USA
+Phone: (408) 433-9662
+Fax: (408)433-0727
+Email: ptf@cfcl.com

+ +

 

+ +

CLIPS version 6.0 is available on the AI CD-ROM Revision 3, an ISO-9660 +format CD-ROM from the Network Cybernetics Corporation. Over 3,000 AI related +files are included on the CD-ROM. The cost is $89 + $3 (domestic) / $8(foreign) +shipping. For more information, contact
+
+Network Cybernetics Corporation
+4201 Wingren Rd., Suite 202
+Irving, TX 75062-2763
+Phone: (214) 650-2002
+Fax: (214) 650-1929
+Email: info@ncc.com

+ +

 

+ +

CLIPS version 6.0 with some changes for Debian GNU/Linux is available +from http://packages.debian.org/clips.
+

+ +

 

+ +

Back to CLIPS Home +Page.

+ +

+Last Update September 27, 2000 Gary Riley
+ + --- clips-6.24.orig/doc/html/OnlineDocs.html +++ clips-6.24/doc/html/OnlineDocs.html @@ -0,0 +1,67 @@ + + + CLIPS Online Documentation + + + +

CLIPS Online Documentation

+ +

Version 6.30 Beta

+ +
    +
  • User's Guide + ( HTML ) + ( PDF ) +
  • Basic Programming Guide + ( HTML ) + ( PDF ) +
  • Advanced Programming Guide + ( HTML ) + ( PDF ) +
  • Interfaces Guide + ( HTML ) + ( PDF ) +
+ +

Version 6.24

+ +
    +
  • User's Guide + ( HTML ) + ( PDF ) +
  • Basic Programming Guide + ( HTML ) + ( PDF ) +
  • Advanced Programming Guide + ( HTML ) + ( PDF ) +
  • Interfaces Guide + ( HTML ) + ( PDF ) +
+ +

Miscellaneous

+ +
    +
  • Third CLIPS Conference Proceedings + ( PDF ) +
  • CLIPS Version 5.1 Architecture Manual + ( PDF ) +
+ +

Back to CLIPS Home Page.

+ +
+ + + + + + +
+SourceForge.net Logo
+
Last Update March 8, 2008 Gary Riley
+ + + --- clips-6.24.orig/doc/html/Version62.html +++ clips-6.24/doc/html/Version62.html @@ -0,0 +1,35 @@ + + + Version 6.2 of CLIPS + + + +

Version 6.2 of CLIPS

+ +

CLIPS version 6.2 is currently available in the CLIPS Download Page. +It contains the following major enhancements and changes:

+ +
    +
  • CLIPS now provides a mechanism which allows an embedded application to + create multiple environments into which programs can be loaded.
    + +
  • An improved Windows XP CLIPS interface is now available and + the Macintosh CLIPS interface has been enhanced to support MacOS X.
    +
+ +

Back to CLIPS Home Page.

+ +
+ + + + + + +
+SourceForge.net Logo
+
Last Update January 24, 2008 Gary Riley
+ + + --- clips-6.24.orig/doc/html/JobOffers.html +++ clips-6.24/doc/html/JobOffers.html @@ -0,0 +1,118 @@ + + + + Support Services for CLIPS + + + + +

CLIPS Job Offerings

+ +

December 23, 1999

+ +

S&K Electronics is a small technology firm specializing in intelligent +automation and robotics. We are located just outside NASA Johnson Space +Center in the Houston/Clear Lake area. We are looking talented software +engineer to work on two exciting CLIPS-related projects. One project involves +developing a real-time CLIPS component to run under a powerful control application +development tool. The other project involves developing a knowledge capture +tool.

+ +

Ideal candidate should have the following qualifications:

+ +
    +
  • BS/MS +
  • 5+ years of software experience +
  • strong CLIPS, CLIPS internals, and C/C++ +
  • strong Visual C++/MFC/ActiveX experience +
  • embedded system/RTOS (VxWorks preferred) +
  • U.S Citizen or Permanent Resident +
+ +

For more information, visit our web site at: http://www.sk-tech.com

+ +

For immediate consideration, submit your resume to:

+ +

Larry C. Li
+S&K Electronics
+1016 Hercules
+Houston, TX 77058
+Tel: (281) 461-3890
+Fax: (281) 461-6203
+E-mail: larryli@ghg.net

+ +

September 1, 1999

+ +

My name is Dick Smith and I work for Ajilon, Inc., in our Raleigh-Durham, +NC district office. Ajilon is a world class provider of IT consulting services. +We adhere to the highest ISO9001 standards in all our business practices, +are financially sound and strategically positioned to deliver high quality +solutions through our supplemental staffing and managed services programs.

+ +

We are actively seeking several professional resources with strong analytical +ability and technical depth to support a major client project in Research +Triangle Park, NC. You will be part of a team supporting a provisioning +pricing rules application. Position requires BS CIS or equivalent with ability +to understand pricing rules requirements (embedded C). Must have at least +2 years of solid analysis, design and C/UNIX background combined with CLIPS +expertise. Must also have at least 1 year Oracle background with 3 years +minimum overall experience. Any knowledge of LISP would be helpful.

+ +

If you're aware of anyone we should be talking with I'd appreciate you +letting me know.

+ +

Dick Smith
+Ajilon, Inc.
+1000 Park Forty Plaza, Suite 300
+Durham, NC 27713
+888-296-7575
+dsmith@ral.ajilon.com
+

+ +


+

+ +

August 28, 1999

+ +

Renaissance is the global provider of integrated business and technology +consulting services. We are looking for talent to take on a project role +as Programmer/Analyst. Looking for 8-10 people with CLIPS experience. Here +is the description:

+ +
    +
  • Project Description Analyze, code and test CLIPS pricing and contract + rules in a pricing system. This is for 8 to 10 people. +
  • Education Description Must be a CLIPS trained team. College degree. + This is a 6 month + assignment. Must be able to understand pricing rules + requirements. +
  • Must have at least 1 year of CLIPS and UNIX experience.Must have good + written and oral communication skills. Must be able to work in a team environment.Must + have 3 years of overall experience in Information Services. LISP knowledge + would be helpful. Skill Area and Competency Level Operating System UNIX + Proficient +
  • Programming Languages: CLIPS Proficient +
+ +

Qualified individuals should forward Resume (preferably via e-mail in +MS Word 7.0 or text format), Professional References (Managerial) and Salary +History for immediate attention. E-mail your resume to: bhaas@rens.com +Or Contact: Beth Haas, Resource Manager, Renaissance Worldwide, Inc. 1-800-338-9119, +(Fax) 919-678-0704

+ +

For more information about Renaissance Worldwide, Inc. and to conduct +your own search for other opportunities in over 100 offices worldwide, visit +our web site at: http://www.rens.com

+ +


+

+ +

Back to CLIPS Home Page.

+ +

+Last Update December 23, 1999 Gary Riley
+ + --- clips-6.24.orig/doc/html/WhereCLIPS.html +++ clips-6.24/doc/html/WhereCLIPS.html @@ -0,0 +1,157 @@ + + +Obtaining a Copy of CLIPS + + + +

+Obtaining a Copy of CLIPS +

+ + + +
    + +
  • + CLIPS version 6.0 is available at no cost via ftp to NASA and its + contractors for use on NASA projects. If you are a NASA employee, + you may request the user name and password required for access to + download the CLIPS software via ftp by sending an email message + to stbprod@fdr.jsc.nasa.gov. Your subject line should be CLIPS + REQUESTED and the body of the message should contain your name, + mailing address, and voice and fax numbers. NASA contractors + should have their NASA contract manager request the user name and + password information. [Note that the most recent version of CLIPS + is available by anonymous ftp from cs.cmu.edu (see below), + so there's not much point in requesting the user name and + password to access the restricted portions of the ITO ftp site at + hubble.jsc.nasa.gov. Bug fixes and other CLIPS related files are + still available by anonymous ftp at thise site.] For more information, + contact

    + + Information Technology Office Help Desk
    + + NASA/Johnson + Space Center
    + Mail Stop PT4
    + Houston, TX 77058
    + Fax: (713) 483-5200
    + EMail: stbprod@fdr.jsc.nasa.gov

    + +

  • + CLIPS version 6.0 is available from + COSMIC. + For new orders, the cost is + $350 for the program and $115 for printed documentation. For update + orders, the cost is $100 for the program or $200 for the program and + printed documentation. Price discounts are available to U.S. academic + institutions. For more information, contact

    + + COSMIC
    + 382 E. Broad St.
    + Athens, GA 30602
    + Phone: (706) 542-3265
    + Fax: (706) 542-4807
    + EMail: service@cosmic.uga.edu

    + +

  • + CLIPS version 6.0 is available on the AI CD-ROM Revision 3, an ISO-9660 + format CD-ROM from the Network Cybernetics Corporation. Over 3,000 AI + related files are included on the CD-ROM. The cost is $89 + $3 (domestic) + / $8(foreign) shipping. For more information, contact

    + + Network Cybernetics Corporation
    + 4201 Wingren Rd., Suite 202
    + Irving, TX 75062-2763
    + Phone: (214) 650-2002
    + Fax: (214) 650-1929
    + Email: info@ncc.com

    + +

  • + + CLIPS version 6.0 is available on an ISO-9660 format CD-ROM from + Prime Time Freeware. It + comes as part of an AI package based + on the CMU AI repository + and consists of two CD-ROMs bound into + a 224-page book. Each CD-ROM contains approximately 600 + megabytes of gzipped archives (more than 5 gigabytes uncompressed + and unpacked). It sells for $60 plus applicable sales tax and + shipping and handling charges. For more information, contact

    + + Prime Time Freeware
    + 370 Altair Way, Suite 150
    + Sunnyvale, CA 94086 USA
    + Phone: (408) 433-9662
    + Fax: (408)433-0727
    + Email: ptf@cfcl.com

    + +

  • + CLIPS version 6.0 is available from + The Austin Code Works + for $50. + For more information, contact

    + + The Austin Code Works
    + 11100 Leafwood Lane
    + Austin, Texas 78750-3409
    + Phone: (512) 258-0785
    + Fax: (512) 258-1342
    + EMail: info@acw.com

    + +

  • + The CLIPS 6.0 UNIX, PC, and Macintosh distribution packages + are available by anonymous ftp from the +CMU AI repository at + + cs.cmu.edu + and can be found in the + /afs/cs.cmu.edu/project/ai-repository/ai/areas/expert/systems/clips + directory. + The distribution packages are also available by anonymous ftp + from eecs.nwu.edu + and can be found in the + /pub/CLIPS directory. + Other versions of CLIPS and CLIPS related files are also + available at both ftp sites. [Many of the files located at + these sites are compressed and stored in a zip format. The file + unzip51.tar.Z is an unzip utility for UNIX which is available + by anonymous ftp from + garbo.uwasa.fi and can be found in the + directory + /unix/arcers. + An unzip utility for PCs is also + available at this site. The file pkz204g.exe is contained in + the directory + /pc/arcers.] + +
+ +

Usage Restrictions

+ + Copies of CLIPS purchased through COSMIC can be freely used and + redistributed without restrictions. This is the mechanism through + which companies, such as the Austin Code Works or Network Cybernetics + Corporation, can redistribute CLIPS. The redistribution restrictions, + or lack thereof, also apply to any individual or company that has a + copy of CLIPS that can trace its origins back to a purchase from + COSMIC. For example, if you buy a copy of CLIPS from the Austin Code + Works or you download a copy of CLIPS from an anonymous ftp site that + purchased a copy from COSMIC, you can freely use and redistribute the + copy you obtained.

+ + Users who receive CLIPS from the Information Technology Help Desk + may only use CLIPS in connection with the specific project under which + it was provided and no further use or dissemination can be made without + prior written permission.

+ +Back to CLIPS Home Page.

+
+ +

+Last Update September 24 1996 +Gary Riley +
+ + + --- clips-6.24.orig/doc/html/ResumeGDR.html +++ clips-6.24/doc/html/ResumeGDR.html @@ -0,0 +1,277 @@ + + + + + + + + + + +Resumes + + + + + + + +
+ +

Gary David Riley

+ +

Email: gdrwork2006@swbell.net

+ +

 

+ +

 

+ +

 

+ +
+ +

OBJECTIVE:  +Program design and development of intelligent applications.

+ +

 

+ +

QUALIFICATIONS

+ +

Twenty years experience creating software solutions +for complex problems in a variety of hardware and software environments. +Expertise in multiple stages of the product life cycle including design, +implementation, documentation, testing, training, support, and maintenance. +Principle focus has been creating tools for building intelligent applications.

+ +

 

+ +

EDUCATION

+ +

1984               B.S. +Computer Science, Cum Laude, Texas A&M University

+ +

 

+ +

EMPLOYMENT

+ +

2005-2006     Consultant, +IBM

+ +

Developed a CLIPS-based expert system to automatically +process changes to cargo container shipping instructions.

+ +

 

+ +

2002-2004     Senior +Developer/Software Engineer, PeopleSoft

+ +

Continued development of the Java-based Calico +configurator including translation and runtime components.

+ +

Maintained the PeopleCode interfaces integrating the +configurator with the PeopleSoft Internet Architecture.

+ +

 

+ +

1996-2002     Senior +Software Engineer, Calico Commerce

+ +

Developed a C-based product configurator utilizing CLIPS +extended with constraint-based programming features.

+ +

Developed a Java-based translator for converting the XML +representation of a configurable product to the runtime format supported by the +Java-based product configurator.

+ +

 

+ +

1994-1997     Consultant, +Atomic Games

+ +

Developed C-based path and task planning algorithms for Close +Combat, a Windows/MacOS military simulation +game.

+ +

 

+ +

1988-2004     Author, +Course Technology

+ +

Coauthored four editions of the academic textbook Expert +Systems: Principles and Programming.

+ +

 

+ +

1985-1996     Computer +Engineer, NASA/Johnson Space Center

+ +

Led code design and development of the system +architecture, rule-based programming features, and Macintosh interface for +CLIPS, a portable C-based expert system tool.

+ +

Received broad exposure to a variety of AI technologies.

+ +

 

+ +
+ + + + --- clips-6.24.orig/doc/html/Download.html +++ clips-6.24/doc/html/Download.html @@ -0,0 +1,84 @@ + + + + CLIPS Download Area + + + + +

CLIPS Download Area

+ +

This is the primary site for obtaining the latest release of CLIPS. The current +release is CLIPS 6.2 and is available in the +the Download Area.

+ +

CLIPS License Information

+ +

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, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so.

+ +

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 OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE.

+ +

CLIPS is released as public domain software and as such you are under no +obligation to pay for its use. However, if you derive commercial or monetary +benefit from use of the software or just want to show support, please consider +making a voluntary payment based on the worth of the software to you as +compensation for the time and effort required to develop and maintain CLIPS. +Payments can be made online at http://order.kagi.com/?JKT.

+ +Enter Download Area + +

CLIPS User Registration

+ +

Please take a few minutes to register CLIPS by sending email to clipsYYYY@ghg.net +where YYYY is the current year (for example, 2004). Include the words 'CLIPS REGISTRATION' +in your subject line. Indicate your company/government/university affiliation (if any), +what version of CLIPS you are using, the source of your copy (CLIPS web site, textbook, etc.), +and any other information you'd like to provide about your use of CLIPS.

+ +

Downloaded File Types

+ +Most of the documentation at this site is stored in Portable Document Format +(PDF) which requires Adobe Acrobat Reader. This program can be downloaded +from +http://www.adobe.com/prodindex/acrobat/readstep.html. +Compressed files at the CLIPS web set are stored in several formats: zip +(primarily for PC users), sit.hqx (for MacOS users), and tar.Z (for Unix +users). If your web browser does not automatically unzip any downloaded +zip files, utilities for performing this task can be found at +http://www.shareware.com/. +Select the appropriate operating system and search for unzip. For sit.hqx +files, select Macintosh and search for stuffit-expander. For Unix users, +the Unix uncompress and tar commands should be used for extracting files +from tar.Z archives.

+ + +

Other Sources for Obtaining CLIPS

+ +

Expert +Systems: Principles and Programming, 3rd Edition, by Giarratano and +Riley (ISBN 0-534-95053-1 from Thomson +Learning) comes with a CD-ROM containing CLIPS 6.05 executables, source +code, and documentation. The first half of the book is theory oriented and +the second half covers rule-based programming using CLIPS.

+ +

Back to CLIPS Home Page.

+ +

+Last Update May 22, 2004 Gary Riley
+ + + --- clips-6.24.orig/doc/html/ExpertSystems.html +++ clips-6.24/doc/html/ExpertSystems.html @@ -0,0 +1,59 @@ + + + + What are Expert Systems? + + + + +

What are Expert Systems?

+ +

Conventional programming languages, such as FORTRAN and C, are +designed and optimized for the procedural manipulation of data (such as +numbers and arrays). Humans, however, often solve complex problems using +very abstract, symbolic approaches which are not well suited for implementation +in conventional languages. Although abstract information can be modeled +in these languages, considerable programming effort is required to transform +the information to a format usable with procedural programming paradigms.

+ +

One of the results of research in the area of artificial intelligence +has been the development of techniques which allow the modeling of information +at higher levels of abstraction. These techniques are embodied in languages +or tools which allow programs to be built that closely resemble human logic +in their implementation and are therefore easier to develop and maintain. +These programs, which emulate human expertise in well defined problem domains, +are called expert systems. The availability of expert system tools, such +as CLIPS, has greatly reduced the effort and cost involved in developing +an expert system.

+ +

Rule-based programming is one of the most commonly used techniques for +developing expert systems. In this programming paradigm, rules are used +to represent heuristics, or "rules of thumb," which specify a +set of actions to be performed for a given situation. A rule is composed +of an if portion and a then portion. The if portion +of a rule is a series of patterns which specify the facts (or data) which +cause the rule to be applicable. The process of matching facts to patterns +is called pattern matching. The expert system tool provides a mechanism, +called the inference engine, which automatically matches facts against patterns +and determines which rules are applicable. The if portion of a rule +can actually be thought of as the whenever portion of a rule since +pattern matching always occurs whenever changes are made to facts. The then +portion of a rule is the set of actions to be executed when the rule is +applicable. The actions of applicable rules are executed when the inference +engine is instructed to begin execution. The inference engine selects a +rule and then the actions of the selected rule are executed (which may affect +the list of applicable rules by adding or removing facts). The inference +engine then selects another rule and executes its actions. This process +continues until no applicable rules remain.

+ +

Back to CLIPS Home Page.

+ +


+

+ +
Last Update May 22, 2004 Gary +Riley
+ + --- clips-6.24.orig/doc/html/Version6.html +++ clips-6.24/doc/html/Version6.html @@ -0,0 +1,30 @@ + + + + Version 6.0 of CLIPS + + + + +

Version 6.1 of CLIPS

+ +

CLIPS version 6.1 contains the following major enhancements and changes:

+ +
    +
  • The CLIPS source code is now C++ compatible. It can now be compiled + using either an ANSI C or C++ compiler.
    + +
  • Several new commands provide the ability to profile the time spent + in constructs and user-defined functions.
    + +
+ +

Back to CLIPS Home +Page.

+ +

+Last Update August 8, 1998 Gary Riley
+ + --- clips-6.24.orig/doc/html/CLIPSCount.html +++ clips-6.24/doc/html/CLIPSCount.html @@ -0,0 +1,40 @@ + + + + CLIPS: A Tool for Building Expert Systems + + + + +

+ + + +
 
+

 

+ + +
+

+ +

A Tool for Building Expert Systems

+ +

+Last Update February 3, 2005 Gary Riley +
+ + + + --- clips-6.24.orig/doc/html/History.html +++ clips-6.24/doc/html/History.html @@ -0,0 +1,136 @@ + + + + The History of CLIPS + + + + +

The History of CLIPS

+ +

The origins of the C Language Integrated Production System (CLIPS) date +back to 1984 at NASA's +Johnson Space Center. +At this time, the Artificial Intelligence Section (later the Software Technology +Branch, Client/Server Systems +Branch, and now the Information Technology Office) had developed over +a dozen prototype expert systems applications using state-of-the-art hardware +and software. However, despite extensive demonstrations of the potential +of expert systems, few of these applications were put into regular use. +This failure to provide expert systems technology within NASA's operational +computing constraints could largely be traced to the use of LISP as the +base language for nearly all expert system software tools at that time. +In particular, three problems hindered the use of LISP based expert system +tools within NASA: the low availability of LISP on a wide variety of conventional +computers, the high cost of state-of-the-art LISP tools and hardware, and +the poor integration of LISP with other languages (making embedded applications +difficult).

+ +

The Artificial Intelligence Section felt that the use of a conventional +language, such as C, would eliminate most of these problems, and initially +looked to the expert system tool vendors to provide an expert system tool +written using a conventional language. Although a number of tool vendors +started converting their tools to run in C, the cost of each tool was still +very high, most were restricted to a small variety of computers, and the +projected availability times were discouraging. To meet all of its needs +in a timely and cost effective manner, it became evident that the Artificial +Intelligence Section would have to develop its own C based expert system +tool.

+ +

The prototype version of CLIPS was developed in the spring of 1985 in +a little over two months. Particular attention was given to making the tool +compatible with expert systems under development at that time by the Artificial +Intelligence Section. Thus, the syntax of CLIPS was made to very closely +resemble the syntax of a subset of the ART expert system tool developed +by Inference Corporation. Although originally modelled from ART, CLIPS was +developed entirely without assistance from Inference or access to the ART +source code.

+ +

The original intent for CLIPS was to gain useful insight and knowledge +about the construction of expert system tools and to lay the groundwork +for the construction of a replacement tool for the commercial tools currently +being used. Version 1.0 demonstrated the feasibility of the project concept. +After additional development, it became apparent that CLIPS would be a low +cost expert system tool ideal for the purposes of training. Another year +of development and internal use went into CLIPS improving its portability, +performance, functionality, and supporting documentation. Version 3.0 of +CLIPS was made available to groups outside of NASA in the summer of 1986.

+ +

Further enhancements transformed CLIPS from a training tool into a tool +useful for the development and delivery of expert systems as well. Versions +4.0 and 4.1 of CLIPS, released respectively in the summer and fall of 1987, +featured greatly improved performance, external language integration, and +delivery capabilities. Version 4.2 of CLIPS, released in the summer of 1988, +was a complete rewrite of CLIPS for code modularity. Also included with +this release were an architecture manual providing a detailed description +of the CLIPS software architecture and a utility program for aiding in the +verification and validation of rule-based programs. Version 4.3 of CLIPS, +released in the summer of 1989, added still more functionality.

+ +

Originally, the primary representation methodology in CLIPS was a forward +chaining rule language based on the Rete algorithm (hence the Production +System part of the CLIPS acronym). Version 5.0 of CLIPS, released in the +spring of 1991, introduced two new programming paradigms: procedural programming +(as found in languages such as C and Ada;) and object-oriented programming +(as found in languages such as the Common Lisp Object System and Smalltalk). +The object-oriented programming language provided within CLIPS is called +the CLIPS Object-Oriented Language (COOL). Version 5.1 of CLIPS, released +in the fall of 1991, was primarily a software maintenance upgrade required +to support the newly developed and/or enhanced X Window, MS-DOS, and Macintosh +interfaces. Version 6.0, released in the Spring of 1993, added fully integrated +object/rule pattern matching and support features for rule-based software +engineering. Version 6.1, released in the Summer +of 1998, added C++ compatibility and functions for profiling performance.

+ +

Because of its portability, extensibility, capabilities, and low-cost, +CLIPS has received widespread acceptance throughout the government, industry, +and academia. The development of CLIPS has helped to improve the ability +to deliver expert system technology throughout the public and private sectors +for a wide range of applications and diverse computing environments. CLIPS +is being used by over 5,000 users throughout the public and private community +including: all NASA sites and branches of the military, numerous federal +bureaus, government contractors, universities, and many private companies.

+ +

CLIPS is now maintained as public domain software by the main program +authors who no longer work for NASA.

+ +

As with any large project, CLIPS is the result of the efforts of numerous +people. The primary contributors have been: Robert Savely, previous branch +chief of the STB and now chief scientist of advanced software technology +at JSC, who conceived the project and provided overall direction and support; +Chris Culbert, current chief of the Information Technology Office, who managed +the project, wrote the original CLIPS Reference Manual, and designed the +original version of CRSV; Gary Riley, who designed and developed the rule-based +portion of CLIPS, coauthored the CLIPS Reference Manual and CLIPS Architecture +Manual, and developed the Macintosh interface for CLIPS; Brian Donnell, +who designed and developed the CLIPS Object Oriented Language (COOL), coauthored +the CLIPS Reference Manual and CLIPS Architecture Manual, and developed +the previous MS-DOS interfaces for CLIPS; Bebe Ly, who was responsible for +maintenance and enhancements to CRSV and is now responsible for developing +the X Window interface for CLIPS; Chris Ortiz, who developed the Windows +3.1 interface for CLIPS; Dr. Joseph Giarratano of the University of Houston-Clear +Lake, who wrote the CLIPS User's Guide; and Frank Lopez, who designed and +developed CLIPS version 1.0 and wrote the CLIPS 1.0 User's Guide.

+ +

Many other individuals contributed to the design, development, review, +and general support of CLIPS, including: Jack Aldridge, Carla Armstrong, +Paul Baffes, Ann Baker, Stephen Baudendistel, Les Berke, Tom Blinn, Marlon +Boarnet, Dan Bochsler, Bob Brown, Barry Cameron, Tim Cleghorn, Major Paul +Condit, Major Steve Cross, Andy Cunningham, Dan Danley, Mark Engelberg, +Kirt Fields, Ken Freeman, Kevin Greiner, Ervin Grice, Sharon Hecht, Patti +Herrick, Mark Hoffman, Grace Hua, Gordon Johnson, Phillip Johnston, Sam +Juliano, Ed Lineberry, Bowen Loftin, Linda Martin, Daniel McCoy, Terry McGregor, +Becky McGuire, Scott Meadows, C. J. Melebeck, Paul Mitchell, Steve Mueller, +Bill Paseman, Cynthia Rathjen, Eric Raymond, Reza Razavipour, Marsha Renals, +Monica Rua, Tim Saito, Gregg Swietek, Eric Taylor, James Villarreal, Lui +Wang, Bob Way, Jim Wescott, Charlie Wheeler, and Wes White.

+ +

Back to CLIPS Home Page.

+ +

+ +
Last Update May 22, 2004 Gary Riley
+ + --- clips-6.24.orig/doc/html/SupportServices.html +++ clips-6.24/doc/html/SupportServices.html @@ -0,0 +1,61 @@ + + + Support Information + + + +

Support Information

+ +

The most recent versions of CLIPS executables, documentation, and source +code are available on the SourceForge CLIPS Download Page.

+ +

The CLIPS Expert System Group +is a forum for the discussion of CLIPS related topics.
+

+ + + + + + + + +
+ Google Groups +
+ Subscribe to CLIPSESG +
+ Email: + +
+ Visit this group +
+ +

Questions regarding CLIPS can be posted to the SourceForge CLIPS Forums.

+ +

The CLIPS Cookbook, recipes for solutions to common tasks and problems relating to CLIPS, is available at the + SourceForge CLIPS Wiki.

+ +

Bugs and Feature Requests can be submitted to the SourceForge CLIPS Tracker.

+ +

Questions regarding CLIPS can be sent via electronic mail to clipsYYYY@swbell.net +where YYYY is the current year (for example, 2008). Include the words 'CLIPS USER' +in the subject line.

+ +

Back to CLIPS Home Page.

+ +
+ + + + + + +
+SourceForge.net Logo
+
Last Update March 17, 2008 Gary Riley
+ + + --- clips-6.24.orig/doc/html/WhatsNew.html +++ clips-6.24/doc/html/WhatsNew.html @@ -0,0 +1,151 @@ + + + + What's New in the CLIPS Web Pages + + + + +

What's New in the CLIPS Web Pages

+ + +

July 12, 2006

+ +
    + +
  • Clipsmm is a C++ + interface to CLIPS. +
  • + +
+ + +

June 15, 2006

+ + + +

May 31, 2006

+ + + +

March 30, 2006

+ +
    + +
  • LuaCLIPS combines Lua, an open + source scripting language, with CLIPS in a Lua accessible Windows DLL. +
  • + +
+ +

January 23, 2006

+ +
    + +
  • ClipsNet allows CLIPS + to be used in the .Net framework. +
  • + +
+ +

August 14, 2005

+ +
    +
  • ObjectiveCLIPS is a + framework that lets you build Mac GUIs on top of CLIPS deftemplates which are + derived from persistent Core Data objects. +
  • +
+ +

February 3, 2005

+ + + +

January 27, 2005

+ + + +

January 5, 2005

+ +
    +
  • I'm currently searching for employment opportunities. Click here for more information. +
  • +
+ +

December 1, 2004

+ +
    +
  • Expert Systems: Principles and Programming, Fourth Edition is available + from Amazon, + Barnes & Noble, + and Course Technology. + The textbook now includes coverage of the procedural and object-oriented features of CLIPS. +
  • + +
  • PHLIPS is a PHP extension that provides + a basic interface to the CLIPS environment.
  • + +
  • JCLIPS, CLIPS for Java, allows Java programmers + to use CLIPS.
  • + +
  • PyCLIPS is a Python module to integrate CLIPS + into Python.
  • + +
+ +

May 22, 2004

+ +
    +
  • The email address for CLIPS support has changed to clipsYYYY@ghg.net where + YYYY is the current year (for example, 2004). Include the words 'CLIPS USER' + in the subject line.
  • +
+ +

June 22, 2003

+ + + +

September 26, 2002

+ +
    +
  • TixCLIPS is an Integrated Development + Environment for CLIPS using the Tix extension widgets to Tk and the TclClips SWIG wrapping.
  • +
+ +

March 29, 2002

+ + + +

Back to CLIPS Home Page.

+ +

+Last Update July 12, 2006 Gary Riley
+ + + --- clips-6.24.orig/doc/html/WhatIsCLIPS.html +++ clips-6.24/doc/html/WhatIsCLIPS.html @@ -0,0 +1,220 @@ + + + What is CLIPS? + + + +

What is CLIPS?

+ +

CLIPS is a productive development and delivery expert +system tool which provides a complete environment for the construction +of rule and/or object based expert systems. Created in 1985, +CLIPS is now widely used throughout the government, industry, and academia. Its key +features are:

+ +
    +
  • Knowledge Representation: CLIPS provides a cohesive tool for handling + a wide variety of knowledge with support for three different programming + paradigms: rule-based, object-oriented and procedural. Rule-based programming + allows knowledge to be represented as heuristics, or "rules of thumb," + which specify a set of actions to be performed for a given situation. Object-oriented + programming allows complex systems to be modeled as modular components + (which can be easily reused to model other systems or to create new components). + The procedural programming capabilities provided by CLIPS are similar to + capabilities found in languages such as C, Java, Ada, and LISP. +
  • Portability: CLIPS is written in C for portability and speed and has + been installed on many different operating systems without code changes. Operating + systems on which CLIPS has been tested include Windows XP, MacOS X, and + Unix. CLIPS can be ported to any system which has an ANSI compliant C or C++ compiler. + CLIPS comes with all source code which can be modified or tailored to meet a user's + specific needs. +
  • Integration/Extensibility: CLIPS can be embedded within procedural + code, called as a subroutine, and integrated with languages such as C, Java, + FORTRAN and ADA. CLIPS can be easily extended by a user through the use + of several well-defined protocols. +
  • Interactive Development: The standard version of CLIPS provides an + interactive, text oriented development environment, including debugging + aids, on-line help, and an integrated editor. Interfaces providing features + such as pulldown menus, integrated editors, and multiple windows have been + developed for the MacOS, Windows XP, and X Window environments. +
  • Verification/Validation: CLIPS includes a number of features to support + the verification and validation of expert systems including support for + modular design and partitioning of a knowledge base, static and dynamic + constraint checking of slot values and function arguments, and semantic + analysis of rule patterns to determine if inconsistencies could prevent + a rule from firing or generate an error. +
  • Fully Documented: CLIPS comes with extensive documentation including + a Reference Manual and a User's Guide. +
  • Low Cost: CLIPS is maintained as public domain software. +
+ +

What are Expert Systems?

+ +

Conventional programming languages, such as FORTRAN and C, are +designed and optimized for the procedural manipulation of data (such as +numbers and arrays). Humans, however, often solve complex problems using +very abstract, symbolic approaches which are not well suited for implementation +in conventional languages. Although abstract information can be modeled +in these languages, considerable programming effort is required to transform +the information to a format usable with procedural programming paradigms.

+ +

One of the results of research in the area of artificial intelligence +has been the development of techniques which allow the modeling of information +at higher levels of abstraction. These techniques are embodied in languages +or tools which allow programs to be built that closely resemble human logic +in their implementation and are therefore easier to develop and maintain. +These programs, which emulate human expertise in well defined problem domains, +are called expert systems. The availability of expert system tools, such +as CLIPS, has greatly reduced the effort and cost involved in developing +an expert system.

+ +

Rule-based programming is one of the most commonly used techniques for +developing expert systems. In this programming paradigm, rules are used +to represent heuristics, or "rules of thumb," which specify a +set of actions to be performed for a given situation. A rule is composed +of an if portion and a then portion. The if portion +of a rule is a series of patterns which specify the facts (or data) which +cause the rule to be applicable. The process of matching facts to patterns +is called pattern matching. The expert system tool provides a mechanism, +called the inference engine, which automatically matches facts against patterns +and determines which rules are applicable. The if portion of a rule +can actually be thought of as the whenever portion of a rule since +pattern matching always occurs whenever changes are made to facts. The then +portion of a rule is the set of actions to be executed when the rule is +applicable. The actions of applicable rules are executed when the inference +engine is instructed to begin execution. The inference engine selects a +rule and then the actions of the selected rule are executed (which may affect +the list of applicable rules by adding or removing facts). The inference +engine then selects another rule and executes its actions. This process +continues until no applicable rules remain.

+ +

The History of CLIPS

+ +

The origins of the C Language Integrated Production System (CLIPS) date +back to 1984 at NASA's +Johnson Space Center. +At this time, the Artificial Intelligence Section had developed over +a dozen prototype expert systems applications using state-of-the-art hardware +and software. However, despite extensive demonstrations of the potential +of expert systems, few of these applications were put into regular use. +This failure to provide expert systems technology within NASA's operational +computing constraints could largely be traced to the use of LISP as the +base language for nearly all expert system software tools at that time. +In particular, three problems hindered the use of LISP based expert system +tools within NASA: the low availability of LISP on a wide variety of conventional +computers, the high cost of state-of-the-art LISP tools and hardware, and +the poor integration of LISP with other languages (making embedded applications +difficult).

+ +

The Artificial Intelligence Section felt that the use of a conventional +language, such as C, would eliminate most of these problems, and initially +looked to the expert system tool vendors to provide an expert system tool +written using a conventional language. Although a number of tool vendors +started converting their tools to run in C, the cost of each tool was still +very high, most were restricted to a small variety of computers, and the +projected availability times were discouraging. To meet all of its needs +in a timely and cost effective manner, it became evident that the Artificial +Intelligence Section would have to develop its own C based expert system +tool.

+ +

The prototype version of CLIPS was developed in the spring of 1985 in +a little over two months. Particular attention was given to making the tool +compatible with expert systems under development at that time by the Artificial +Intelligence Section. Thus, the syntax of CLIPS was made to very closely +resemble the syntax of a subset of the ART expert system tool developed +by Inference Corporation. Although originally modelled from ART, CLIPS was +developed entirely without assistance from Inference or access to the ART +source code.

+ +

The original intent for CLIPS was to gain useful insight and knowledge +about the construction of expert system tools and to lay the groundwork +for the construction of a replacement tool for the commercial tools currently +being used. Version 1.0 demonstrated the feasibility of the project concept. +After additional development, it became apparent that CLIPS would be a low +cost expert system tool ideal for the purposes of training. Another year +of development and internal use went into CLIPS improving its portability, +performance, functionality, and supporting documentation. Version 3.0 of +CLIPS was made available to groups outside of NASA in the summer of 1986.

+ +

Further enhancements transformed CLIPS from a training tool into a tool +useful for the development and delivery of expert systems as well. Versions +4.0 and 4.1 of CLIPS, released respectively in the summer and fall of 1987, +featured greatly improved performance, external language integration, and +delivery capabilities. Version 4.2 of CLIPS, released in the summer of 1988, +was a complete rewrite of CLIPS for code modularity. Also included with +this release were an architecture manual providing a detailed description +of the CLIPS software architecture and a utility program for aiding in the +verification and validation of rule-based programs. Version 4.3 of CLIPS, +released in the summer of 1989, added still more functionality.

+ +

Originally, the primary representation methodology in CLIPS was a forward +chaining rule language based on the Rete algorithm (hence the Production +System part of the CLIPS acronym). Version 5.0 of CLIPS, released in the +spring of 1991, introduced two new programming paradigms: procedural programming +(as found in languages such as C and Ada;) and object-oriented programming +(as found in languages such as the Common Lisp Object System and Smalltalk). +The object-oriented programming language provided within CLIPS is called +the CLIPS Object-Oriented Language (COOL). Version 5.1 of CLIPS, released +in the fall of 1991, was primarily a software maintenance upgrade required +to support the newly developed and/or enhanced X Window, MS-DOS, and Macintosh +interfaces. Version 6.0, released in the Spring of 1993, added fully integrated +object/rule pattern matching and support features for rule-based software +engineering. Version 6.1 of CLIPS, released in 1998, removed support for +older non-ANSI C Compilers and added support for C++ compilers. Commands to +profile the time spent in constructs and user-defined functions were also added. +Version 6.2, released in the Spring +of 2002, added support for multiple environments into which programs can be +loaded and improved Windows XP and MacOS development interfaces.

+ +

CLIPS is now maintained independently from NASA as public domain software.

+ +

Because of its portability, extensibility, capabilities, and low-cost, +CLIPS has received widespread acceptance throughout the government, industry, +and academia. The development of CLIPS has helped to improve the ability +to deliver expert system technology throughout the public and private sectors +for a wide range of applications and diverse computing environments.

+ +

As with any large project, CLIPS is the result of the efforts of numerous +people. The primary contributors have been: Robert Savely, who conceived +the project and provided overall direction and support; Chris Culbert, +who managed the project and wrote the original CLIPS Reference Manual; +Gary Riley, who designed and developed the rule-based portion of CLIPS, +co-authored the CLIPS Reference Manual, and developed the Macintosh +interface for CLIPS; Brian Dantes, who designed and developed the CLIPS +Object Oriented Language (COOL) and co-authored the CLIPS Reference Manual; +Bebe Ly, who developed the X Window interface for CLIPS; Chris Ortiz, who +developed the original Windows 95 interface for CLIPS; Dr. Joseph Giarratano +of the University of Houston-Clear Lake, who wrote the CLIPS User's Guide; +and Frank Lopez, who designed and developed CLIPS version 1.0 and wrote the +CLIPS 1.0 User's Guide.

+ +

Many other individuals contributed to the design, development, review, and general +support of CLIPS, including: Jack Aldridge, Paul Baffes, Ann Baker, Stephen Baudendistel, +Les Berke, Tom Blinn, Marlon Boarnet, Dan Bochsler, Bob Brown, Barry Cameron, +Tim Cleghorn, Carla Colangelo, Major Paul Condit, Major Steve Cross, Andy Cunningham, +Dan Danley, Mark Engelberg, Kirt Fields, Ken Freeman, Kevin Greiner, Ervin Grice, +Sharon Hecht, Patti Herrick, Mark Hoffman, Grace Hua, Gordon Johnson, Phillip Johnston, +Sam Juliano, Ed Lineberry, Bowen Loftin, Linda Martin, Daniel McCoy, Terry McGregor, +Becky McGuire, Scott Meadows, C. J. Melebeck, Paul Mitchell, Steve Mueller, Bill Paseman, +Cynthia Rathjen, Eric Raymond, Reza Razavipour, Marsha Renals, Monica Rua, Tim Saito, +Michael Sullivan, Gregg Swietek, Eric Taylor, James Villarreal, Lui Wang, Bob Way, +Jim Wescott, Charlie Wheeler, and Wes White.

+ +

Back to CLIPS Home Page.

+ +
+ + + + + + +
+SourceForge.net Logo
+
Last Update January 24, 2008 Gary Riley
+ + + --- clips-6.24.orig/doc/html/OtherWeb.html +++ clips-6.24/doc/html/OtherWeb.html @@ -0,0 +1,134 @@ + + + CLIPS Related Web Locations + + + +

CLIPS Related Web Locations

+ +

Obtaining CLIPS

+ + + +

Other Sources for Obtaining CLIPS

+ + + +

CLIPS Variants/Enhancements

+ + + +

Expert System Tools

+ + + +

Training/Course Material/Consulting

+ + + +

Applications

+ + + +

Reference

+ + + +

Back to CLIPS Home Page.

+ +
+ + + + + + +
+SourceForge.net Logo
+
Last Update March 27, 2008 Gary Riley
+ + + --- clips-6.24.orig/doc/html/FAQ.html +++ clips-6.24/doc/html/FAQ.html @@ -0,0 +1 @@ + Frequently Asked Questions

Frequently Asked Questions

  1. What is CLIPS?
  2. Where Can I Get a Copy of CLIPS?
  3. What's New in Version 6.2 of CLIPS?
  4. Can CLIPS Be Redistributed? Are There Any Licensing Fees?
  5. What Forums Are Available For Answering Questions About CLIPS?
  6. Are There Any Sources Describing Applications Built Using CLIPS?
  7. Are There Any Textbooks Using CLIPS?
  8. Are There Any Special Versions of CLIPS?
  9. Can CLIPS be Integrated with C++ Code?
  10. Is a Dynamic Link Library Available for CLIPS?
  11. What are the Origins of CLIPS?
  12. Are There Any Languages Similar to CLIPS?
  13. What are the Future Plans for CLIPS?
  14. Can CLIPS be Used for Real Time Applications?
  15. Are There Any Examples of User Defined Functions Other Than the Ones in the Advanced Programming Guide?
  16. Does a Run-Time Program Generated Using the Constructs-To-C Command Run any Faster Than a Program Loaded Using the Load or Bload Commands?
  17. Is the CLIPS 6.X Architecture Manual Available?
  18. Are Consulting/Training Services Available for CLIPS?
  1. What is CLIPS?

    CLIPS is a productive development and delivery expert system tool which provides a complete environment for the construction of rule and/or object based expert systems. Created in 1985, CLIPS is now widely used throughout the government, industry, and academia. Its key features are:

    • Knowledge Representation: CLIPS provides a cohesive tool for handling a wide variety of knowledge with support for three different programming paradigms: rule-based, object-oriented and procedural. Rule-based programming allows knowledge to be represented as heuristics, or "rules of thumb," which specify a set of actions to be performed for a given situation. Object-oriented programming allows complex systems to be modeled as modular components (which can be easily reused to model other systems or to create new components). The procedural programming capabilities provided by CLIPS are similar to capabilities found in languages such as C, Java, Ada, and LISP.

    • Portability: CLIPS is written in C for portability and speed and has been installed on many different operating systems without code changes. Operating systems on which CLIPS has been tested include Windows XP, MacOS X, and Unix. CLIPS can be ported to any system which has an ANSI compliant C or C++ compiler. CLIPS comes with all source code which can be modified or tailored to meet a user's specific needs.

    • Integration/Extensibility: CLIPS can be embedded within procedural code, called as a subroutine, and integrated with languages such as C, Java, FORTRAN and ADA. CLIPS can be easily extended by a user through the use of several well-defined protocols.

    • Interactive Development: The standard version of CLIPS provides an interactive, text oriented development environment, including debugging aids, on-line help, and an integrated editor. Interfaces providing features such as pulldown menus, integrated editors, and multiple windows have been developed for the Mac OS X, Windows XP, and X Window environments.

    • Verification/Validation: CLIPS includes a number of features to support the verification and validation of expert systems including support for modular design and partitioning of a knowledge base, static and dynamic constraint checking of slot values and function arguments, and semantic analysis of rule patterns to determine if inconsistencies could prevent a rule from firing or generate an error.

    • Fully Documented: CLIPS comes with extensive documentation including a Reference Manual and a User's Guide.

    • Low Cost: CLIPS is maintained as public domain software.

  2. Where Can I Get a Copy of CLIPS?

    CLIPS executables, documentation, source code, and examples can be downloaded from the Download Page of the CLIPS Project on SourceForge.

  3. What's New in Version 6.2 of CLIPS?
    • CLIPS now provides a mechanism which allows an embedded application to create multiple environments into which programs can be loaded.

    • An improved Windows XP CLIPS interface is now available and the Macintosh CLIPS interface has been enhanced to support Mac OS X.

  4. Can CLIPS Be Redistributed? Are There Any Licensing Fees?

    Copies of CLIPS executables, documentation, and source code downloaded from the CLIPS Project on SourceForge are subject to the following license agreement:

    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, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.

    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 OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

  5. What Forums Are Available For Answering Questions About CLIPS?
    • The CLIPS Expert System Group is a forum for the discussion of CLIPS related topics.

    • Questions regarding CLIPS can be sent via electronic mail to clipsYYYY@swbell.net where YYYY is the current year (for example, 2008). Include the words 'CLIPS USER' in the subject line.

    • The CLIPS Project on SourceForge also has a Forums Page.

  6. Are There Any Sources Describing Applications Built Using CLIPS?

    There are a number of sources describing applications built using CLIPS:

    • A bibliography list of CLIPS related books, papers, and articles is contained in Appendix J of the CLIPS Basic Programming Guide.

    • Proceedings of the Third CLIPS Conference, held in 1994, are available in PDF.

    • The Proceedings of the First, Fourth, and Fifth Innovative Applications of Artificial Intelligence also contain descriptions of applications built using CLIPS ("An Intelligent Training System for Space Shuttle Flight Controllers" and "Space Shuttle Telemetry Monitoring" in the First, "HUB SIAASHING: A Knowledge-Based System for Severe, Temporary Airline Schedule Reduction" in the Fourth, and "PI-in-a-Box: A Knowledge-based System for Space Science Experimentation" and "The DRAIR Advisor: A Knowledge-Based System for Materiel Deficiency Analysis" in the Fifth).

  7. Are There Any Textbooks Using CLIPS?

    Expert Systems: Principles and Programming, 4th Edition, by Giarratano and Riley (ISBN 0-534-38447-1), comes with a CD-ROM containing CLIPS 6.22 executables, source code, and documentation. The first half of the book is theory oriented and the second half covers rule-based, procedural, and object-oriented programming using CLIPS. For more information, contact Course Technology.

    Introduction To Expert Systems, 3rd Edition, by Jackson (ISBN 0-201-87686-8), contains numerous CLIPS examples and exercises throughout the book. For more information, contact Addison Wesley.

    The Engineering of Knowledge-based Systems: Theory and Practice, by Gonzalez and Dankel (ISBN 0132 769 409), comes with an MS-DOS executable of version 5.1 of CLIPS. The use of CLIPS isn't integrated throughout the book, but there is a 25 page appendix that describes the fundamentals of using the CLIPS executable bundled with the book. For more information, contact Prentice Hall.

  8. Are There Any Special Versions of CLIPS?
    • AdaClips is a semi-thick Ada (95) binding to CLIPS.

    • CLIPS/Ada version 4.4, available from the Open Channel Foundation, is a version of CLIPS developed entirely in Ada and containing a subset of the features found in the C version of CLIPS. CLIPS/Ada version 4.4 contains all of the features found in CLIPS/C version 4.3, and with the exception of the CLIPS Object-Oriented Language, all of the features found in CLIPS/C version 5.0. There are no plans to update CLIPS/Ada to a more recent version of CLIPS/C.

    • CAPE is a programming environment that combines the CLIPS rule-based system with the Perl procedural programming language.

    • The clipsmm library is a C++ interface to CLIPS.

    • ClipsNet integrates CLIPS projects into the .Net framework by making the CLIPS environment available through both managed and unmanaged code.

    • The Clips .NET Lib integrates .NET and CLIPS. This library is distributed with source code.

    • FuzzyCLIPS 1.5 is an extension of CLIPS incorporating fuzzy logic. FuzzyCLIPS includes all CLIPS 5.1 capabilities and adds the fuzzy logic processing capability.

    • FuzzyCLIPS 6.04 is an extended version of CLIPS 6.04 for representing and manipulating fuzzy facts and rules. In addition to the CLIPS functionality, FuzzyCLIPS can deal with exact, fuzzy (or inexact), and combined reasoning, allowing fuzzy and normal terms to be freely mixed in the rules and facts of an expert system. The system uses two basic inexact concepts, fuzziness and uncertainty. It was developed by the Knowledge Systems Laboratory of the National Research Council of Canada (and is a different tool than the previously mentioned FuzzyCLIPS 1.5 developed by Togai InfraLogic).

    • KAPICLIPS is A KQML (Knowledge Query & Manipulation Language) API for CLIPS, developed by Ernest Friedman-Hill.

    • LuaCLIPS combines Lua, an open source scripting language, with CLIPS in a Lua accessible Windows DLL.

    • ObjectiveCLIPS, a framework that lets you build Mac GUIs on top of CLIPS deftemplates which are derived from persistent Core Data objects.

    • PerlCLIPS is an integration between Perl and CLIPS.

    • PHLIPS is a PHP extension that provides a basic interface to the CLIPS environment.

    • PyCLIPS is a Python module that integrates CLIPS into Python.

    • TclCLIPS provides a Tcl interface to CLIPS

    • wxCLIPS, developed by Julian Smart, provides a simple graphical front end to CLIPS 5.1/6.0, and in addition contains a suite of extra functions for creating GUI applications in CLIPS.

    • ZClips allows Zope to interact with CLIPS.

  9. Can CLIPS be Integrated with C++ Code?

    Yes. Version 6.1 and later can be compiled with either an ANSI C or C++ compiler. However, the CLIPS source code only uses features that are available in both the ANSI C and C++ standards. Since the object extensions of C++ are not part of the ANSI C standard, they are not utilized in the CLIPS source code. CLIPS 6.3 comes with starter projects which demonstrate how to build a C++ library.

    The clipsmm library is a C++ interface to CLIPS.

  10. Is a Dynamic Link Library Available for CLIPS?

    There are several DLLs available for use with CLIPS:

    • The Clips .NET Lib integrates .NET and CLIPS. This library is distributed with source code.

    • CLIPS 6.3 comes with starter projects that demonstrate how to build a DLL.

    • ClipsNet integrates CLIPS projects into the .Net framework by making the CLIPS environment available through both managed and unmanaged code.

    • A DLL, ActiveX Control, and other items of interest for CLIPS 6.2 are available here.

  11. What are the Origins of CLIPS?

    The origins of CLIPS date back to 1984 at NASA's Johnson Space Center. At this time, the Artificial Intelligence Section had developed over a dozen prototype expert systems applications using state-of-the-art hardware and software. However, despite extensive demonstrations of the potential of expert systems, few of these applications were put into regular use. This failure to provide expert systems technology within NASA's operational computing constraints could largely be traced to the use of LISP as the base language for nearly all expert system software tools at that time.

    The Artificial Intelligence Section felt that the use of a conventional language, such as C, would eliminate most of these problems. Although a number of tool vendors started converting their tools to run in C, the cost of each tool was still very high, most were restricted to a small variety of computers, and the projected availability times were discouraging. To meet all of its needs in a timely and cost effective manner, it became evident that the Artificial Intelligence Section would have to develop its own C based expert system tool.

    The prototype version of CLIPS was developed in 1985. Particular attention was given to making the tool compatible with expert systems under development at that time. Thus, the syntax of CLIPS was made to very closely resemble the syntax of a subset of the ART expert system tool developed by Inference Corporation. Although originally modelled from ART, CLIPS was developed entirely without assistance from Inference or access to the ART source code.

    The original intent for CLIPS was to gain useful insight and knowledge about the construction of expert system tools and to lay the groundwork for the construction of a replacement tool for the commercial tools currently being used. Version 1.0 demonstrated the feasibility of the project concept. After additional development, it became apparent that CLIPS would be a low cost expert system tool ideal for the purposes of training. Another year of development and internal use went into CLIPS improving its portability, performance, functionality, and supporting documentation. Version 3.0 of CLIPS was made available to groups outside of NASA in the summer of 1986.

    Further enhancements transformed CLIPS from a training tool into a tool useful for the development and delivery of expert systems as well. Versions 4.0 and 4.1 of CLIPS, released respectively in the summer and fall of 1987, featured greatly improved performance, external language integration, and delivery capabilities. Version 4.2 of CLIPS, released in the summer of 1988, was a complete rewrite of CLIPS for code modularity. Also included with this release were an architecture manual providing a detailed description of the CLIPS software architecture and a utility program for aiding in the verification and validation of rule-based programs. Version 4.3 of CLIPS, released in the summer of 1989, added still more functionality.

    Originally, the primary representation methodology in CLIPS was a forward chaining rule language based on the Rete algorithm (hence the Production System part of the CLIPS acronym). Version 5.0 of CLIPS, released in the spring of 1991, introduced two new programming paradigms: procedural programming (as found in languages such as C and Ada;) and object-oriented programming (as found in languages such as the Common Lisp Object System and Smalltalk). The object-oriented programming language provided within CLIPS is called the CLIPS Object-Oriented Language (COOL). Version 5.1 of CLIPS, released in the fall of 1991, was primarily a software maintenance upgrade required to support the newly developed and/or enhanced X Window, MS-DOS, and Macintosh interfaces. Version 6.0, released in the Spring of 1993, added fully integrated object/rule pattern matching and support features for rule-based software engineering.

    In the mid 1990s the focus of the Artifical Intelligence Section (now the Software Technology Branch) shifted away from expert system technology. The principle developers subsequently left NASA. CLIPS is now maintained independently from NASA as public domain software by one of the original program authors. The first public domain release of CLIPS, version 6.1 in 1998, removed support for older non-ANSI C Compilers and added support for C++ compilers. Commands to profile the time spent in constructs and user-defined functions were also added. Version 6.2, released in the Spring of 2002, added support for multiple environments into which programs can be loaded and improved Windows XP and MacOS development interfaces.

  12. Are There Any Languages Similar to CLIPS?

    CLIPS is an interesting example of technology transfer between the government and private sectors. Syntactically, CLIPS traces its origins to Inference's ART which traced the origins of its rule-based language to OPS5. Later, CLIPS was used by Inference to develop ART-IM (which later became ARTEnterprise, by The Haley Enterprise to develop Eclipse (which later became HaleyRules), and by Production Systems Technology to develop CLIPS/R2. Other languages, such as Jess, adopted syntax similar to ART and CLIPS. This has created a family of tools that share the same basic syntax for the definition of rules. While the features and capabilities of these tools has diverged sufficiently that porting an application taking full advantage of a tool's complete feature set is non-trivial, it's still possible if one uses a restricted subset of features to write portable programs that will run with few if any simple changes.

  13. What are the Future Plans for CLIPS?

    Version 6.3 will target rule performance, improved integration with other languages (such as C++, .NET, and Java), and examples for common use cases. Version 6.4 will target unicode support.

  14. Can CLIPS be Used for Real Time Applications?

    Yes and no. It depends on what you mean by a real time application.

    If you want guaranteed response time, then the answer is no. Generally speaking, the more robust the pattern matching capabilities of a tool, the more difficult it is to guarantee real time response.

    If you need built-in functionality that allows you reason about events as they occur over time, then the answer is no. Many tools designed for real time applications provide features that allow you (among other things) to schedule rules to be checked at a particular time or on a particular time interval, specify how long data is valid, determine trends in data (such as whether it's increasing or decreasing), and synchronize the execution of tasks. In addition, some tools provide extensive facilities for the "non AI" related aspects of developing a real time application such as the graphical interface, simulation, and data acquisition. It's possible to use CLIPS to reason about events as they occur over time--It's just not a built-in feature. You can, for example, add an additional slot to facts which stores their creation time and then use rules which reason based on the contents of this slot.

    If by real time you mean that the application is able to keep up with the data as it is received, then the answer is maybe. Almost all expert system tools can keep up with a real time system that only requires decisions to be made in minutes/hours/days. Response time tends to become an issue only when large amounts of data are being processed or decisions are required in seconds or fractions of a second.

    CLIPS is based on the Rete pattern matching algorithm. The efficiency of this algorithm is based on the assumption that data changes slowly over time (e.g. a single rule firing affects < 5% of all facts). This assumption would appear to fail miserably for monitoring applications (as well as other applications where rapid data change can occur). If, for example, you have 100 facts representing various sensor values and the sensor values change every second, you have very rapid data changes (assuming you don't have thousands and thousands of facts of other types). It's often possible to comply with the Rete assumption by preprocessing data. For example, if a sensor value changes from 10 to 10.1 and this change is not significant, then it's not necessary to retract the old fact and assert a new fact with the changed sensor value. Another preprocessing approach would be to convert numeric values to symbolic values such as low, nominal, and high and then to retract the old fact and assert a new one only if the symbolic value changed. The major drawback to this approach is that you generally have to write C code to preprocess the data and keep track of pointers to facts so that facts can later be retracted by the preprocessor--Of course if you're dealing with real-time data, you're probably writing some C code anyway.

  15. Are There Any Examples of User Defined Functions Other Than the Ones in the Advanced Programming Guide?

    Virtually all of the system defined functions that come ready to use with CLIPS utilize the same programming interface that you have to use to define your own functions. Look through files in the CLIPS source code such as bmathfun.c, iofun.c, miscfun.c, prdctfun.c, emathfun.c, filecom.c, and multifun.c for examples.

  16. Does a Run-Time Program Generated Using the Constructs-To-C Command Run any Faster Than a Program Loaded Using the Load or Bload Commands?

    A run-time program will not run any faster than a program loaded using the load or bload commands. The constructs-to-c command used to generate a run-time program creates files containing the C data structures that would dynamically be allocated if the load or bload command was used. With the exception of some initialization routines, the constructs-to-c command does not generate any executable code. The primary benefits of creating a run-time program are: applications can be delivered as a single executable file; loading constructs as part of an executable is faster than loading them from an text or binary file; the CLIPS portion of the run-time program is smaller because the code needed to parse constructs can be discarded; and less memory is required to represent your program's constructs since memory for them is statically rather than dynamically allocated.

  17. Is the CLIPS 6.X Architecture Manual Available?

    There are no plans to write a 6.X Architecture Manual. Copies of the CLIPS 5.1 Architecture Manual are still bundled with the CLIPS documentation.

  18. Are Consulting/Training Services Available for CLIPS?

    Inquiries about consulting, training, or other employment opportunities can be sent to gdrworkYYYY@swbell.net or clipsYYYY@swbell.net where YYYY is the current year (for example, 2008).

Back to CLIPS Home Page.


SourceForge.net Logo
Last Update January 25, 2008 Gary Riley
\ No newline at end of file --- clips-6.24.orig/doc/html/Version624.html +++ clips-6.24/doc/html/Version624.html @@ -0,0 +1,96 @@ + + + + Version 6.24 of CLIPS + + + + +

Version 6.24 of CLIPS

+ +

CLIPS version 6.24 is currently available in the CLIPS Download Area. +It contains the following fixes and enhancements:

+ +

Allowed Classes Constraint Attribute - The allowed-classes constraint + attribute allows a slot containing an instance value to be restricted + to the specified list of classes

+ +

New Functions and Commands - Several new functions and commands + have been added. They are:

+ +
    +
  • deftemplate-slot-allowed-values
    +
  • deftemplate-slot-cardinality
    +
  • deftemplate-slot-defaultp
    +
  • deftemplate-slot-default-value
    +
  • deftemplate-slot-existp
    +
  • deftemplate-slot-multip
    +
  • deftemplate-slot-names
    +
  • deftemplate-slot-range
    +
  • deftemplate-slot-singlep
    +
  • deftemplate-slot-type
    +
  • get-char
    +
  • get-region
    +
  • ppfact
    +
  • read-number
    +
  • set-locale
    +
  • slot-allowed-classes
    +
+ +

Command and Function Changes - The following function + has been enhanced:

+
    +
  • format: The formatting of printed numbers can be changed to use a + native locale with the set-locale function. The documentation has + been updated to include the effect of the precision argument on + the d, g, o, and x format flags.
    +
+ +

Behavior Changes - The following changes have been made to behavior:

+
    +
  • The message displayed when a construct is redefined and compilations + are being watched is now more prominent.
    +
+ +

Bug Fixes - The following bugs are fixed by the 6.24 release:

+ +
    +
  • The DescribeClass macros were incorrectly defined.
    +
  • The sort function leaks memory when called with a multifield value + of length zero.
    +
  • Link error occurred for the SlotExistError function when OBJECT_SYSTEM + is set to 0 in setup.h.
    +
  • An error when calling the Eval function causes a subsequent call to + DeallocateEnvironmentData to fail.
    +
  • Loading a binary instance file from a run-time program caused a bus + error.
    +
  • Incorrect activations could occur with the exists CE.
    +
  • Compilation errors occurred when compiling CLIPS source as C++ files.
    +
  • The AssignFactSlotDefaults function did not correctly handle defaults + for multifield slots.
    +
  • The slot-default-value function crashed when no default existed for a + slot (the ?NONE value was specified).
    +
  • CLIPS crashed on AMD64 processor in the function used to generate hash + values for integers.
    +
  • A syntax error was not generated for the last deffunction or defmethod + in a file if it was missing the final closing right parenthesis.
    + +
+ +

Compiler Support - The following compilers are now supported:

+ +
    +
  • Metrowerks CodeWarrior 9.6 for Mac OS X.
    +
  • Xcode 2.3 for Mac OS X.
    +
  • Microsoft Visual C++ .NET 2003 for Windows.
    +
+ +

Back to CLIPS Home Page.

+ +

+Last Update June 12, 2006 Gary Riley
+ + + --- clips-6.24.orig/doc/html/Version621.html +++ clips-6.24/doc/html/Version621.html @@ -0,0 +1,45 @@ + + + + Version 6.21 of CLIPS + + + + +

Version 6.21 of CLIPS

+ +

CLIPS version 6.21 is currently available in the CLIPS Download Area. +It contains the following fixes and enhancements:

+ +
    +
  • The C GetDefglobalValue macro did not have the correct number of arguments.
    +
  • The C RtnArgCount macro did not have the correct number of arguments.
    +
  • Erroneous error generated for object pattern under some circumstances.
    +
  • The C Save macro did not have the correct number of arguments.
    +
  • The C Eval and Build functions did not have the correct number of arguments.
    +
  • The progn$ index variable did not always return the correct value.
    +
  • The member$ function did not always return the correct value.
    +
  • C++ style comments in the code caused errors when using strict ANSI C compilation.
    +
  • The C LoadFactsFromString function did not have the correct number of arguments.
    +
  • Prior bug fix to the PutFactSlot C function prevented memory associated with the fact to + be garbage collected after the fact had been retracted. The original bug is now fixed + through a new API which allows embedded programs to temporarily disable garbage + collection. See section 1.4 of The Advanced Programming Guide for more details.
    +
  • Added information on thread\concurrency and garbage collection issues. See sections 1.3 + and 1.4 of The Advanced Programming Guide for more details.
    +
  • Added several new C API calls to the Advanced Programming Guide: DeallocateEnvironmentData + (see section 9.3.4); DecrementGCLocks (see section 1.4); FactDeftemplate (see section 4.4.6); + GetEnvironmentByIndex (see section 9.3.7); and IncrementGCLocks (see section 1.4)
    +
  • An array index error associated with the module menu in the Windows interface was fixed.
    +
  • The status windows in the MacOS X interface were not updating properly.
    +
  • Numerous compilation problems with the XWindows interface source code were fixed.
    +
+ +

Back to CLIPS Home Page.

+ +

+Last Update May 22, 2004 Gary Riley
+ + --- clips-6.24.orig/doc/html/Version63Beta.html +++ clips-6.24/doc/html/Version63Beta.html @@ -0,0 +1 @@ + CLIPS 6.3 Beta for Windows

CLIPS 6.3 Beta for Windows

A Windows installer for CLIPS 6.3 Beta is available for download on the SourceForge CLIPS Download Page.

CLIPS 6.3 includes the following enhancements:

  • Performance Improvements - Rule performance has been improved particularly in situations with large numbers of fact/instances or partial matches.
  • Internationalization Support - CLIPS provides internal support for UTF-8 strings and symbols. The DOS version of CLIPS provides I/O support for languages with relatively simple scripts (such as German, Spanish, Greek, and Russian, but not Arabic, Chinese, or Japanese). Instructions for using CLIPSDOS with other languages are in section 2.1.2 of the Basic Programming Guide.
  • Windows Integration - Microsoft Windows VC++ Express 2008 and Borland Turbo C++ 2006 are now supported. Several starter projects are also included which demonstrate how to build C++ libraries and DLLs.
  • 64-bit Integers - Integers in CLIPS are now represented using the "long long" C data type which provides a minimum of 64 bits of precision.
  • Pattern Addition - The initial-fact and initial-object patterns are no longer used in triggering rules. When printing partial matches, the * symbol is used to indicate a not or exists pattern that is satisfied.

Back to CLIPS Home Page.


SourceForge.net Logo
Last Update April 7, 2008 Gary Riley
\ No newline at end of file --- clips-6.24.orig/doc/html/Version61.html +++ clips-6.24/doc/html/Version61.html @@ -0,0 +1,30 @@ + + + + Version 6.1 of CLIPS + + + + +

Version 6.1 of CLIPS

+ +

CLIPS version 6.1 is currently available in the CLIPS Download Area. +It contains the following major enhancements and changes:

+ +
    +
  • The CLIPS source code is now C++ compatible. It can now be compiled + using either an ANSI C or C++ compiler.
    + +
  • Several new commands provide the ability to profile the time spent + in constructs and user-defined functions.
    + +
+ +

Back to CLIPS Home Page.

+ +

+Last Update January 28, 2002 Gary Riley
+ + --- clips-6.24.orig/doc/html/Consulting.html +++ clips-6.24/doc/html/Consulting.html @@ -0,0 +1,24 @@ + + + + Consulting/Training/Employment + + + +

Consulting/Training/Employment

+ +

I'm currently searching for employment opportunities (preferably in the Houston area or telecommuting).

+ +

Inquiries about consulting, training, or other employment opportunities can be sent to gdrworkYYYY@swbell.net or +clipsYYYY@swbell.net where YYYY is the current year (for example, 2008).

+ +

Gary Riley's Resume

+ +

Back to CLIPS Home Page.

+ +

+Last Update March 5, 2008 Gary Riley
+ + --- clips-6.24.orig/doc/html/filelist.xml +++ clips-6.24/doc/html/filelist.xml @@ -0,0 +1 @@ + \ No newline at end of file --- clips-6.24.orig/doc/html/RegisterCLIPS.html +++ clips-6.24/doc/html/RegisterCLIPS.html @@ -0,0 +1,25 @@ + + + + CLIPS User Registration + + + + +

CLIPS User Registration

+ +


+Please take a few minutes to register CLIPS by sending email to clips@ghg.net. Indicate your company/government/university +affiliation (if any), what version of CLIPS you are using, the source of +your copy (COSMIC, CLIPS web site, textbook, etc.), and any other information +you'd like to provide about your use of CLIPS.

+ +

Back to CLIPS Home Page.

+ +

+Last Update April 6 1998 Gary Riley
+ + --- clips-6.24.orig/doc/html/Version63MacBeta.html +++ clips-6.24/doc/html/Version63MacBeta.html @@ -0,0 +1 @@ + CLIPS 6.3 Beta for Mac OS X

CLIPS 6.3 Beta for Mac OS X

A Mac OS X installer for CLIPS 6.3 Beta is available for download on the SourceForge CLIPS Download Page.

CLIPS 6.3 includes the following enhancements:

  • Performance Improvements - Rule performance has been improved particularly in situations with large numbers of fact/instances or partial matches.
  • 64-bit Integers - Integers in CLIPS are now represented using the "long long" C data type which provides a minimum of 64 bits of precision.
  • Pattern Addition - The initial-fact and initial-object patterns are no longer used in triggering rules. When printing partial matches, the * symbol is used to indicate a not or exists pattern that is satisfied.
  • Internationalization Support - CLIPS provides internal support for UTF-8 strings and symbols. A new Mac OS X Cocoa-based Integrated Development Environment is available with support for UTF-8 text files and I/O.

Back to CLIPS Home Page.


SourceForge.net Logo
Last Update March 27, 2008 Gary Riley
\ No newline at end of file --- clips-6.24.orig/doc/html/Version623.html +++ clips-6.24/doc/html/Version623.html @@ -0,0 +1,73 @@ + + + + Version 6.23 of CLIPS + + + + +

Version 6.23 of CLIPS

+ +

CLIPS version 6.23 is currently available in the CLIPS Download Area. +It contains the following fixes and enhancements:

+ + +

Fact-Set Query Functions - Six new functions similar to the instance + set query functions have been added for determining and performing + actions on sets of facts that satisfy user-defined queries: + any-factp, find-fact, find-all-facts, do-for-fact, do-for-all-facts, and + delayed-do-for-all-facts. The GetNextFactInTemplate function allows iteration + from C over the facts belonging to a specific deftemplate.

+ +

Bug Fixes - The following bugs are fixed by the 6.23 release:

+ +
    +
  • Passing the wrong number of arguments to a deffunction through + the funcall function could cause unpredictable behavior + including memory corruption.
    +
  • A large file name (at least 60 characters) passed into the fetch + command causes a buffer overrun.
    +
  • A large file name (at least 60 characters) passed into the + constructs-to-c command causes a buffer overrun.
    +
  • A large defclass or defgeneric name (at least 500 characters) + causes a buffer overrun when the profile-info command is called.
    +
  • A large module or construct name (at least 500 characters) + causes a buffer overrun when the get--list command is + called.
    +
  • The FalseSymbol and TrueSymbol constants were not defined as + described in the Advanced Programming Guide. These constants + have have now been defined as macros so that their corresponding + environment companion functions (EnvFalseSymbol and EnvTrueSymbol) + could be defined.
    +
  • The slot-writablep function returns TRUE for slots having + initialize-only access.
    +
  • Files created by the constructs-to-c function for use in a + run-time program generate compilation errors.
    +
+ +

Command and Function Changes - The following function + has been enhanced:

+
    +
  • funcall: Multifield arguments are no longer expanded into multiple + arguments before being passed to the target function of the + funcall. The expand$ function can be placed around an argument + to revert to the old behavior.
    +
+ +

Compiler Support - The following compilers are now supported:

+ +
    +
  • Metrowerks CodeWarrior 9.4 for Mac OS X and Windows.
    +
  • Xcode 1.2 for Mac OS X.
    +
+ + +

Back to CLIPS Home Page.

+ +

+Last Update February 3, 2005 Gary Riley
+ + + --- clips-6.24.orig/x-prjct/xinterface/.stamp-h.in +++ clips-6.24/x-prjct/xinterface/.stamp-h.in @@ -0,0 +1 @@ +timestamp --- clips-6.24.orig/x-prjct/xinterface/xsetup.h +++ clips-6.24/x-prjct/xinterface/xsetup.h @@ -52,5 +52,6 @@ #include #endif /*End XAW3D*/ +#include "setup.h" /*#include "FileSel.h"*/ --- clips-6.24.orig/x-prjct/xinterface/configure.in +++ clips-6.24/x-prjct/xinterface/configure.in @@ -0,0 +1,213 @@ +dnl $Id: $ + +dnl PURPOSE: configure clips package for unix systems. +dnl AUTHOR: Javier Fernandez-Sanguino Pen~a + + +dnl Process this file with autoconf to produce a configure script. + +AC_REVISION($Revision: $) + +AC_INIT(configure.in) + +VERSION_MAJOR="6" +VERSION_MINOR="21" +VERSION="${VERSION_MAJOR}.${VERSION_MINOR}" +AC_SUBST(VERSION_MAJOR) +AC_SUBST(VERSION_MINOR) +AC_SUBST(VERSION) + +HAVE_GENERIC=0 +HAVE_UNIX_V=0 +HAVE_UNIX_7=0 +WANT_EMACS_EDITOR=0 +WANT_WINDOW_INTERFACE=0 +AC_SUBST(HAVE_GENERIC) +AC_SUBST(HAVE_UNIX_V) +AC_SUBST(HAVE_UNIX_7) +AC_SUBST(WANT_EMACS_EDITOR) +AC_SUBST(WANT_WINDOW_INTERFACE) + + +dnl Checks for editor support (like emacs) +AC_ARG_ENABLE(emeditor, +[ --enable-emeditor build internal (like emacs) editor]) +if test "$enable_emeditor" = yes; then + WANT_EMACS_EDITOR=1 + AC_CHECK_LIB(termcap, main) +fi + +dnl Checks for X support (xclips) +AC_ARG_ENABLE(xclips, +[ --enable-xclips build xclips instead clips]) +if test "$enable_xclips" = yes; then + WANT_WINDOW_INTERFACE=1 +fi + +dnl ---------------------------- +dnl Checks for programs. +dnl + +AC_PATH_PROGS(SH, sh) +AC_PROG_CC +AC_PROG_RANLIB +AC_PROG_LN_S +AC_PROG_INSTALL +AC_CHECK_PROG(HAVE_AUTOCONF, autoconf, yes) + +dnl ---------------------------- +dnl Checks for libraries. +dnl + +AC_CHECK_LIB(m,main) + +dnl This is a litle strange. It must place next line before call +dnl AC_PATH_X macro (AC_PATH_aunAC_PATH_os 5.5.1) ?;-\ to avoid further +dnl configure problems +AC_CHECK_HEADERS( stdio.h ) + +if (test "${WANT_WINDOW_INTERFACE}" = 1); then + dnl Checks for X-files. + AC_CHECK_LIB(socket,socket) + AC_PATH_X + AC_SUBST(x_libraries) + LDFLAGS="$LDFLAGS ${x_libraries:+-L$x_libraries}" + + dnl WARNING: library search ORDER is very important !!!! + + AC_CHECK_LIB(X11,main,,,${x_libraries:+-L$x_libraries}) + AC_CHECK_LIB(Xext,main,,,${x_libraries:+-L$x_libraries}) + AC_CHECK_LIB(ICE,main,,,${x_libraries:+-L$x_libraries}) + AC_CHECK_LIB(SM,main,,,${x_libraries:+-L$x_libraries}) + AC_CHECK_LIB(Xt,main,,,${x_libraries:+-L$x_libraries}) + AC_CHECK_LIB(Xmu,main,,,${x_libraries:+-L$x_libraries}) + AC_CHECK_LIB(Xaw3d, main,, + AC_CHECK_LIB(Xaw, main,,, + ${x_libraries:+-L$x_libraries}), + ${x_libraries:+-L$x_libraries}) +fi + +dnl ---------------------------- +dnl Checks for header files. +dnl + +AC_HEADER_DIRENT +AC_HEADER_STDC +AC_CHECK_HEADERS( fcntl.h limits.h malloc.h sgtty.h strings.h ) + + +dnl ---------------------------- +dnl Checks for typedefs, structures, and compiler characteristics. +dnl + +dnl AC_TYPE_SIZE_T +AC_STRUCT_TM + + +dnl ---------------------------- +dnl Checks for library functions. +dnl + +AC_TYPE_SIGNAL +AC_CHECK_FUNCS(ftime getwd) + + +dnl ---------------------------- +dnl Check for system characteristics. +dnl + +AC_MSG_CHECKING([system version]) +system=`uname -s`-`uname -r` +if test "$?" -ne 0 ; then + AC_MSG_RESULT([unknown (can't find uname command)]) + system=unknown +else + # Special check for weird MP-RAS system (uname returns weird + # results, and the version is kept in special file). + + if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then + system=MP-RAS-`awk '{print $3}' /etc/.relid` + fi + if test "`uname -s`" = "AIX" ; then + system=AIX-`uname -v`.`uname -r` + fi + AC_MSG_RESULT($system) +fi +case $system in + BSD/OS-2.1*|BSD/OS-3*) + HAVE_UNIX_V=1 + ;; + HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*) + HAVE_UNIX_V=1 + ;; + Linux*) + HAVE_UNIX_V=1 + ;; + NetBSD-*|FreeBSD-*|OpenBSD-*) + HAVE_UNIX_V=1 + ;; + SunOS-4*) + HAVE_UNIX_7=1 + AC_DEFINE(SOLARIS) + ;; + UNIX_SV*) + HAVE_UNIX_V=1 + ;; + *) + HAVE_GENERIC=1 + ;; +esac + +dnl +dnl Debido al uso indiscriminado de globales y su utilización como +dnl arrays en funciones como "getwd", el no forzar -fno-common +dnl es motivo de una gran inestabilidad, sobre todo en ciertas funciones +dnl definidas en "xmenu_file.c". + +AC_ARG_WITH(clipssrc, + [ --with-clipssrc=DIR override default clipssrc dir [../clipssrc/]], + [ CLIPSSRC="$withval" + AC_MSG_RESULT(Overriding clipssrc dir: $CLIPSSRC) ], + [ CLIPSSRC="../clipssrc/" + AC_MSG_RESULT(Using default clipssrc dir: $CLIPSSRC) + ] +) +AC_DEFINE_UNQUOTED(CLIPSSRC,"$CLIPSSRC", [Define this to your clipssrc dir]) +AC_SUBST(CLIPSSRC) + + +CFLAGS="$CFLAGS -fno-common" + +dnl Checks for statically linked clips +AC_ARG_ENABLE(static-clips, +[ --enable-static-clips build statically linked clips]) +if test "$enable_static_clips" = yes; then + WANT_STATIC_CLIPS=yes + AC_SUBST(WANT_STATIC_CLIPS) +fi + +dnl Checks for debug +AC_ARG_ENABLE(debug, +[ --enable-debug enable debugging ]) +if test "$enable_debug" = yes; then + AC_DEFINE(DEBUG) + CFLAGS="$CFLAGS -g -Wall" + CXXFLAGS="$CXXFLAGS -g -Wall" + AC_CHECK_LIB(efence, malloc, LIBS="$LIBS -lefence") +fi + +dnl Checks for no compiler optimization +AC_ARG_ENABLE(nooptimize, +[ --enable-nooptimize enable don't optimize]) +if test "$enable_nooptimize" = yes; then + CFLAGS="$CFLAGS -O0" + CXXFLAGS="$CXXFLAGS -O0" +fi + +if test `expr "$CFLAGS" : ".*-g"` -eq 0 ; then + CFLAGS="$CFLAGS -fomit-frame-pointer" +fi + +AC_OUTPUT([ + Makefile], + echo timestamp > .stamp-h.in) --- clips-6.24.orig/x-prjct/xinterface/install-sh +++ clips-6.24/x-prjct/xinterface/install-sh @@ -0,0 +1,238 @@ +#! /bin/sh +# +# install - install a program, script, or datafile +# This comes from X11R5. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. +# + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +transformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + true +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + else + instcmd=mkdir + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f $src -o -d $src ] + then + true + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + true + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + true + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' +' +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + true + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + true + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 --- clips-6.24.orig/x-prjct/xinterface/xclips.c +++ clips-6.24/x-prjct/xinterface/xclips.c @@ -55,6 +55,8 @@ #include "insfun.h" #include "router.h" #include "utility.h" +#include "envrnmnt.h" + /********* Local functions visible outside this file **********/ --- clips-6.24.orig/x-prjct/xinterface/xclipstext.c +++ clips-6.24/x-prjct/xinterface/xclipstext.c @@ -49,6 +49,8 @@ #include "evaluatn.h" #include "filertr.h" #include "router.h" +#include "envrnmnt.h" + #include "xclips.h" #include "xedit.h" --- clips-6.24.orig/x-prjct/xinterface/Makefile.in +++ clips-6.24/x-prjct/xinterface/Makefile.in @@ -0,0 +1,243 @@ +# Generated automatically from Makefile.in by configure. +# Makefile for CLIPS. -*- Indented-Text -*- +#----------------------------------------------------------------------------- +# XCLIPS 6.21 +#----------------------------------------------------------------------------- +# +# FILE : Makefile +# +# PURPOSE : Makefile to buid fzclips package. +# +# USAGE : +# make all: build the platform +# make install: move the platform files to the system directories +# make install-strip: like make install but without debugging information +# make clean: remove the object files +# +# AUTHOR : Javier Fernández-Sanguino Peña +# Based on the original clips file +# with changes provided by Jose Luis Marquez Regueiro +# (jmarreg@etsi.tel.uva.es) originally made to the fzclips program) +# +# VERSION : 1.3 +# DATE : Sun, 27 Jul 2003 02:27:02 +0200 +# +#----------------------------------------------------------------- +# Copyright (C) 1998-2003 Javier Fernández-Sanguino Peña + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#### Start of system configuration section. #### + +VPATH = @srcdir@ +srcdir = . +SHELL = /bin/sh +# Local directories +thsrcdir = $(shell pwd) +clipssrcdir = @CLIPSSRC@ + +VERSION_MAJOR = @VERSION_MAJOR@ +VERSION_MINOR = @VERSION_MINOR@ +VERSION = @VERSION@ + + + +C = @CC@ +CXX = @CXX@ +RANLIB = @RANLIB@ +CPPFLAGS = @CPPFLAGS@ +#------------------------------------------------------- +# The paths to the X libs and include files should +# be changed to whatever appropriate for the system +# that xclips color are made. +# ----------------------------------------------------- +# TODO (jfs): put this into autoconf +# +# WHERE_XLIBS_ARE = /usr/X11R6/lib +# WHERE_INCL_FILES_ARE = /usr/X11R6/include +# +#-------------------------------------------------------------------- +# Please! do not have -O on because there is an unresolved bug either +# in the interface code or the optimizer that cause xclips to crash +#-------------------------------------------------------------------- +# +LDFLAGS = @LDFLAGS@ -L$(WHERE_XLIBS_ARE) -L$(srcdir) -L$(clipssrcdir) +INCLUDES = -I$(WHERE_INCL_FILES_ARE) -I$(srcdir) -I$(clipssrcdir) +LIBS = @LIBS@ -lncurses -lclips -lrt +CFLAGS = @CFLAGS@ $(INCLUDES) +#CFLAGS = -g -Wall -Wpointer-arith -Wshadow -Wcast-qual -Wcast-align -Wconversion -Wid-clash-32 -Winline -Woverloaded-virtual -Wmissing-prototypes -Wconversion -Wstrict-prototypes -Waggregate-return -Wno-implicit +ARFLAGS = rc + + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +LN_S = @LN_S@ +HAVE_TAR = @HAVE_TAR@ +MKINSTALLDIRS = $(clipssrcdir)/@MKINSTALLDIRS@ +MAKEINFO = makeinfo +TEXI2DVI = texi2dvi + + +# Common prefix for installation directories. +# NOTE: This directory must exist when you start the install. +srcdir = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +bindir = @bindir@ +libdir = @libdir@ +includedir = @includedir@ +mandir = @mandir@ + +WANT_EMACS_EDITOR = @WANT_EMACS_EDITOR@ +WANT_STATIC_CLIPS = @WANT_STATIC_CLIPS@ +WANT_WINDOW_INTERFACE = @WANT_WINDOW_INTERFACE@ +HAVE_AUTOCONF = @HAVE_AUTOCONF@ + +# Prefix to be prepended to each installed program, normally empty or `g'. +binprefix = + +DEFS = @DEFS@ + +#### End of system configuration section. #### + +OBJS = xclips.o xclipstext.o xedit.o xmain.o xmenu.o xmenu_exec.o \ + xmenu_file.o xmenu_opt.o xmenu_watch.o xmenu_wind.o + +HDRS = $(OBJS:.o=.h) + + +INSTHEADERS = $(HDRS) + +EDSOURCES = edmain.c edmisc.c edstruct.c edterm.c + + +LIBOBJS = $(LIBSOURCES:.c=.o) +SRCS = $(OBJS:.o=.c) +SOURCES = $(HRDS) $(SRCS) +DISTFILES = $(SRCS) $(HDRS) + +help: + @echo "" + @echo " XCLIPS Makefile" + @echo "" + @echo "Usage: " + @echo "" + @echo " * Build xclips: 'make xclips'" + @echo " * Install xclips: 'make install-xclips'" + @echo " * Clean sources: 'make clean'" + @echo " * Full clean: 'make distclean'" + @echo "" + +all: xclips + +.c.o: depend +# $(CC) -c $(CPPFLAGS) $(DEFS) $(CFLAGS) $< + +install: installdirs install-bin install-includes + +installdirs: + ${clipssrcdir}/mkinstalldirs $(bindir) $(infodir) + +install-bin: xclips + $(INSTALL_PROGRAM) xclips $(bindir)/$(binprefix)xclips + +install-strip : + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \ + install + +install-includes : + @iftest -d $(includedir)/clips; then true; \ + else mkdir $(includedir)/clips; \ + fi + @echo "Installing headers in $(includedir)" + @for file in $(INSTHEADERS); do \ + echo "Installing header: $${file}"...; \ + $(INSTALL_DATA) $${file} $(includedir)/clips/$${file}; \ + done + +ifdef WANT_STATIC_CLIPS +xlicps : depend $(OBJS) + $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(LIBS) $(OBJS) -o $@ +else +xclips : $(OBJS) $(clipssrcdir)/libclips.so + $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(LIBS) $(OBJS) -lclips -o $@ +endif + +TAGS: $(SRCS) + etags $(SRCS) + +clean: + -$(RM) -f confdefs* conftest* core core.* *.core *~ *.d *.o *.output \ + *.tab.* DEADJOE \\#*\\# \ + +mostlyclean: clean + +distclean: clean + -$(RM) -f Makefile xclips .tmpdepend config.* + +realclean: distclean + -$(RM) -f TAGS hello.info* + +maintainer-clean : distclean + +realclean: distclean + +dist: $(DISTFILES) + echo clips-`sed -e '/version/!d' -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q version.c` > .fname + rm -rf `cat .fname` + mkdir `cat .fname` + ln $(DISTFILES) `cat .fname` + tar chozf `cat .fname`.tar.z `cat .fname` + rm -rf `cat .fname` .fname + +.PHONY: help all libs clean mostlyclean distclean realclean maintainer-clean realclean depend dep + +ifdef HAVE_AUTOCONF +## +## For automatic remaking ... +# Note we cannot do this since the clipsdir makes this file + +${srcdir}/clips_config.h.in : .stamp-h.in +${srcdir}/.stamp-h.in : configure.in + cd ${srcdir} && autoheader + echo timestamp > ${srcdir}/.stamp-h.in + + +Makefile : Makefile.in config.status + sh ./config.status + + +build-makefiles : Makefile.in config.status + sh ./config.status + + +endif + + +.tmpdepend : $(SOURCES) + $(CC) -MM $(CFLAGS) $(SOURCES) > .tmpdepend + +depend : .tmpdepend + +dep : depend + +ifeq (.tmpdepend,$(wildcard .tmpdepend)) +include .tmpdepend +endif + +# Prevent GNU make v3 from overflowing arg limit on SysV. +.NOEXPORT: --- clips-6.24.orig/x-prjct/xinterface/configure +++ clips-6.24/x-prjct/xinterface/configure @@ -0,0 +1,2683 @@ +#! /bin/sh + +# From configure.in Revision: + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-emeditor build internal (like emacs) editor" +ac_help="$ac_help + --enable-xclips build xclips instead clips" +ac_help="$ac_help + --with-x use the X Window System" +ac_help="$ac_help + --with-clipssrc=DIR override default clipssrc dir [../clipssrc/]" +ac_help="$ac_help + --enable-static-clips build statically linked clips" +ac_help="$ac_help + --enable-debug enable debugging " +ac_help="$ac_help + --enable-nooptimize enable don't optimize" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=configure.in + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +VERSION_MAJOR="6" +VERSION_MINOR="21" +VERSION="${VERSION_MAJOR}.${VERSION_MINOR}" + + + + +HAVE_GENERIC=0 +HAVE_UNIX_V=0 +HAVE_UNIX_7=0 +WANT_EMACS_EDITOR=0 +WANT_WINDOW_INTERFACE=0 + + + + + + + +# Check whether --enable-emeditor or --disable-emeditor was given. +if test "${enable_emeditor+set}" = set; then + enableval="$enable_emeditor" + : +fi + +if test "$enable_emeditor" = yes; then + WANT_EMACS_EDITOR=1 + echo $ac_n "checking for main in -ltermcap""... $ac_c" 1>&6 +echo "configure:570: checking for main in -ltermcap" >&5 +ac_lib_var=`echo termcap'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ltermcap $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo termcap | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + +fi + +# Check whether --enable-xclips or --disable-xclips was given. +if test "${enable_xclips+set}" = set; then + enableval="$enable_xclips" + : +fi + +if test "$enable_xclips" = yes; then + WANT_WINDOW_INTERFACE=1 +fi + + +for ac_prog in sh +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:630: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_SH'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$SH" in + /*) + ac_cv_path_SH="$SH" # Let the user override the test with a path. + ;; + ?:/*) + ac_cv_path_SH="$SH" # Let the user override the test with a dos path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_path_SH="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + ;; +esac +fi +SH="$ac_cv_path_SH" +if test -n "$SH"; then + echo "$ac_t""$SH" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$SH" && break +done + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:668: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:698: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test -z "$CC"; then + case "`uname -s`" in + *win32* | *WIN32*) + # Extract the first word of "cl", so it can be a program name with args. +set dummy cl; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:749: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="cl" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + ;; + esac + fi + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:781: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +cat > conftest.$ac_ext << EOF + +#line 792 "configure" +#include "confdefs.h" + +main(){return(0);} +EOF +if { (eval echo configure:797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cc_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +if test $ac_cv_prog_cc_works = no; then + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } +fi +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:823: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +cross_compiling=$ac_cv_prog_cc_cross + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:828: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +else + GCC= +fi + +ac_test_CFLAGS="${CFLAGS+set}" +ac_save_CFLAGS="$CFLAGS" +CFLAGS= +echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:856: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi + +# Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:890: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 +echo "configure:918: checking whether ln -s works" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + rm -f conftestdata +if ln -s X conftestdata 2>/dev/null +then + rm -f conftestdata + ac_cv_prog_LN_S="ln -s" +else + ac_cv_prog_LN_S=ln +fi +fi +LN_S="$ac_cv_prog_LN_S" +if test "$ac_cv_prog_LN_S" = "ln -s"; then + echo "$ac_t""yes" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +ac_aux_dir= +for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:969: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +# Extract the first word of "autoconf", so it can be a program name with args. +set dummy autoconf; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1024: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_HAVE_AUTOCONF'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$HAVE_AUTOCONF"; then + ac_cv_prog_HAVE_AUTOCONF="$HAVE_AUTOCONF" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_HAVE_AUTOCONF="yes" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +HAVE_AUTOCONF="$ac_cv_prog_HAVE_AUTOCONF" +if test -n "$HAVE_AUTOCONF"; then + echo "$ac_t""$HAVE_AUTOCONF" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 +echo "configure:1053: checking for main in -lm" >&5 +ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lm $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo m | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + +echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 +echo "configure:1097: checking how to run the C preprocessor" >&5 +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then +if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + # This must be in double quotes, not single quotes, because CPP may get + # substituted into the Makefile and "${CC-cc}" will confuse make. + CPP="${CC-cc} -E" + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1118: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP="${CC-cc} -E -traditional-cpp" + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1135: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP="${CC-cc} -nologo -E" + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1152: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP=/lib/cpp +fi +rm -f conftest* +fi +rm -f conftest* +fi +rm -f conftest* + ac_cv_prog_CPP="$CPP" +fi + CPP="$ac_cv_prog_CPP" +else + ac_cv_prog_CPP="$CPP" +fi +echo "$ac_t""$CPP" 1>&6 + +for ac_hdr in stdio.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:1180: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1190: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + + +if (test "${WANT_WINDOW_INTERFACE}" = 1); then + echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 +echo "configure:1219: checking for socket in -lsocket" >&5 +ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lsocket $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo socket | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + # If we find X, set shell vars x_includes and x_libraries to the +# paths, otherwise set no_x=yes. +# Uses ac_ vars as temps to allow command line to override cache and checks. +# --without-x overrides everything else, but does not touch the cache. +echo $ac_n "checking for X""... $ac_c" 1>&6 +echo "configure:1270: checking for X" >&5 + +# Check whether --with-x or --without-x was given. +if test "${with_x+set}" = set; then + withval="$with_x" + : +fi + +# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +if test "x$with_x" = xno; then + # The user explicitly disabled X. + have_x=disabled +else + if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then + # Both variables are already set. + have_x=yes + else +if eval "test \"`echo '$''{'ac_cv_have_x'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + # One or both of the vars are not set, and there is no cached value. +ac_x_includes=NO ac_x_libraries=NO +rm -fr conftestdir +if mkdir conftestdir; then + cd conftestdir + # Make sure to not put "make" in the Imakefile rules, since we grep it out. + cat > Imakefile <<'EOF' +acfindx: + @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' +EOF + if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering...", which would confuse us. + eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl; do + if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && + test -f $ac_im_libdir/libX11.$ac_extension; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case "$ac_im_incroot" in + /usr/include) ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes="$ac_im_incroot" ;; + esac + case "$ac_im_usrlibdir" in + /usr/lib | /lib) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries="$ac_im_usrlibdir" ;; + esac + fi + cd .. + rm -fr conftestdir +fi + +if test "$ac_x_includes" = NO; then + # Guess where to find include files, by looking for this one X11 .h file. + test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h + + # First, try using that file with no special directory specified. +cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1337: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + # We can compile using X headers with no special include directory. +ac_x_includes= +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + # Look for the header file in a standard set of common directories. +# Check X11 before X11Rn because it is often a symlink to the current release. + for ac_dir in \ + /usr/X11/include \ + /usr/X11R6/include \ + /usr/X11R5/include \ + /usr/X11R4/include \ + \ + /usr/include/X11 \ + /usr/include/X11R6 \ + /usr/include/X11R5 \ + /usr/include/X11R4 \ + \ + /usr/local/X11/include \ + /usr/local/X11R6/include \ + /usr/local/X11R5/include \ + /usr/local/X11R4/include \ + \ + /usr/local/include/X11 \ + /usr/local/include/X11R6 \ + /usr/local/include/X11R5 \ + /usr/local/include/X11R4 \ + \ + /usr/X386/include \ + /usr/x386/include \ + /usr/XFree86/include/X11 \ + \ + /usr/include \ + /usr/local/include \ + /usr/unsupported/include \ + /usr/athena/include \ + /usr/local/x11r5/include \ + /usr/lpp/Xamples/include \ + \ + /usr/openwin/include \ + /usr/openwin/share/include \ + ; \ + do + if test -r "$ac_dir/$x_direct_test_include"; then + ac_x_includes=$ac_dir + break + fi + done +fi +rm -f conftest* +fi # $ac_x_includes = NO + +if test "$ac_x_libraries" = NO; then + # Check for the libraries. + + test -z "$x_direct_test_library" && x_direct_test_library=Xt + test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc + + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS="$LIBS" + LIBS="-l$x_direct_test_library $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + LIBS="$ac_save_LIBS" +# We can link X programs with no special library path. +ac_x_libraries= +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + LIBS="$ac_save_LIBS" +# First see if replacing the include by lib works. +# Check X11 before X11Rn because it is often a symlink to the current release. +for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \ + /usr/X11/lib \ + /usr/X11R6/lib \ + /usr/X11R5/lib \ + /usr/X11R4/lib \ + \ + /usr/lib/X11 \ + /usr/lib/X11R6 \ + /usr/lib/X11R5 \ + /usr/lib/X11R4 \ + \ + /usr/local/X11/lib \ + /usr/local/X11R6/lib \ + /usr/local/X11R5/lib \ + /usr/local/X11R4/lib \ + \ + /usr/local/lib/X11 \ + /usr/local/lib/X11R6 \ + /usr/local/lib/X11R5 \ + /usr/local/lib/X11R4 \ + \ + /usr/X386/lib \ + /usr/x386/lib \ + /usr/XFree86/lib/X11 \ + \ + /usr/lib \ + /usr/local/lib \ + /usr/unsupported/lib \ + /usr/athena/lib \ + /usr/local/x11r5/lib \ + /usr/lpp/Xamples/lib \ + /lib/usr/lib/X11 \ + \ + /usr/openwin/lib \ + /usr/openwin/share/lib \ + ; \ +do + for ac_extension in a so sl; do + if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done +fi +rm -f conftest* +fi # $ac_x_libraries = NO + +if test "$ac_x_includes" = NO || test "$ac_x_libraries" = NO; then + # Didn't find X anywhere. Cache the known absence of X. + ac_cv_have_x="have_x=no" +else + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" +fi +fi + fi + eval "$ac_cv_have_x" +fi # $with_x != no + +if test "$have_x" != yes; then + echo "$ac_t""$have_x" 1>&6 + no_x=yes +else + # If each of the values was on the command line, it overrides each guess. + test "x$x_includes" = xNONE && x_includes=$ac_x_includes + test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$x_includes ac_x_libraries=$x_libraries" + echo "$ac_t""libraries $x_libraries, headers $x_includes" 1>&6 +fi + + + LDFLAGS="$LDFLAGS ${x_libraries:+-L$x_libraries}" + + + echo $ac_n "checking for main in -lX11""... $ac_c" 1>&6 +echo "configure:1504: checking for main in -lX11" >&5 +ac_lib_var=`echo X11'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lX11 ${x_libraries:+-L$x_libraries} $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo X11 | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + echo $ac_n "checking for main in -lXext""... $ac_c" 1>&6 +echo "configure:1547: checking for main in -lXext" >&5 +ac_lib_var=`echo Xext'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lXext ${x_libraries:+-L$x_libraries} $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo Xext | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + echo $ac_n "checking for main in -lICE""... $ac_c" 1>&6 +echo "configure:1590: checking for main in -lICE" >&5 +ac_lib_var=`echo ICE'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lICE ${x_libraries:+-L$x_libraries} $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo ICE | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + echo $ac_n "checking for main in -lSM""... $ac_c" 1>&6 +echo "configure:1633: checking for main in -lSM" >&5 +ac_lib_var=`echo SM'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lSM ${x_libraries:+-L$x_libraries} $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo SM | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + echo $ac_n "checking for main in -lXt""... $ac_c" 1>&6 +echo "configure:1676: checking for main in -lXt" >&5 +ac_lib_var=`echo Xt'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lXt ${x_libraries:+-L$x_libraries} $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo Xt | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + echo $ac_n "checking for main in -lXmu""... $ac_c" 1>&6 +echo "configure:1719: checking for main in -lXmu" >&5 +ac_lib_var=`echo Xmu'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lXmu ${x_libraries:+-L$x_libraries} $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo Xmu | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + echo $ac_n "checking for main in -lXaw3d""... $ac_c" 1>&6 +echo "configure:1762: checking for main in -lXaw3d" >&5 +ac_lib_var=`echo Xaw3d'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lXaw3d ${x_libraries:+-L$x_libraries} $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo Xaw3d | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +echo $ac_n "checking for main in -lXaw""... $ac_c" 1>&6 +echo "configure:1803: checking for main in -lXaw" >&5 +ac_lib_var=`echo Xaw'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lXaw ${x_libraries:+-L$x_libraries} $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo Xaw | sed -e 's/^a-zA-Z0-9_/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + +fi + +fi + + +ac_header_dirent=no +for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 +echo "configure:1855: checking for $ac_hdr that defines DIR" >&5 +if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include <$ac_hdr> +int main() { +DIR *dirp = 0; +; return 0; } +EOF +if { (eval echo configure:1868: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + eval "ac_cv_header_dirent_$ac_safe=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_dirent_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_dirent_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done +# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. +if test $ac_header_dirent = dirent.h; then +echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 +echo "configure:1893: checking for opendir in -ldir" >&5 +ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldir $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBS="$LIBS -ldir" +else + echo "$ac_t""no" 1>&6 +fi + +else +echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 +echo "configure:1934: checking for opendir in -lx" >&5 +ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lx $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBS="$LIBS -lx" +else + echo "$ac_t""no" 1>&6 +fi + +fi + +echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 +echo "configure:1976: checking for ANSI C header files" >&5 +if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#include +#include +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1989: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + ac_cv_header_stdc=yes +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "memchr" >/dev/null 2>&1; then + : +else + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "free" >/dev/null 2>&1; then + : +else + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. +if test "$cross_compiling" = yes; then + : +else + cat > conftest.$ac_ext < +#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int main () { int i; for (i = 0; i < 256; i++) +if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); +exit (0); } + +EOF +if { (eval echo configure:2056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_header_stdc=no +fi +rm -fr conftest* +fi + +fi +fi + +echo "$ac_t""$ac_cv_header_stdc" 1>&6 +if test $ac_cv_header_stdc = yes; then + cat >> confdefs.h <<\EOF +#define STDC_HEADERS 1 +EOF + +fi + +for ac_hdr in fcntl.h limits.h malloc.h sgtty.h strings.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:2083: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:2093: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + + + + +echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 +echo "configure:2123: checking whether struct tm is in sys/time.h or time.h" >&5 +if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +int main() { +struct tm *tp; tp->tm_sec; +; return 0; } +EOF +if { (eval echo configure:2136: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_struct_tm=time.h +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_struct_tm=sys/time.h +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_struct_tm" 1>&6 +if test $ac_cv_struct_tm = sys/time.h; then + cat >> confdefs.h <<\EOF +#define TM_IN_SYS_TIME 1 +EOF + +fi + + + + +echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 +echo "configure:2160: checking return type of signal handlers" >&5 +if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#ifdef signal +#undef signal +#endif +#ifdef __cplusplus +extern "C" void (*signal (int, void (*)(int)))(int); +#else +void (*signal ()) (); +#endif + +int main() { +int i; +; return 0; } +EOF +if { (eval echo configure:2182: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_type_signal=void +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_type_signal=int +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_type_signal" 1>&6 +cat >> confdefs.h <&6 +echo "configure:2203: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2231: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + + + + +echo $ac_n "checking system version""... $ac_c" 1>&6 +echo "configure:2259: checking system version" >&5 +system=`uname -s`-`uname -r` +if test "$?" -ne 0 ; then + echo "$ac_t""unknown (can't find uname command)" 1>&6 + system=unknown +else + # Special check for weird MP-RAS system (uname returns weird + # results, and the version is kept in special file). + + if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then + system=MP-RAS-`awk '{print $3}' /etc/.relid` + fi + if test "`uname -s`" = "AIX" ; then + system=AIX-`uname -v`.`uname -r` + fi + echo "$ac_t""$system" 1>&6 +fi +case $system in + BSD/OS-2.1*|BSD/OS-3*) + HAVE_UNIX_V=1 + ;; + HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*) + HAVE_UNIX_V=1 + ;; + Linux*) + HAVE_UNIX_V=1 + ;; + NetBSD-*|FreeBSD-*|OpenBSD-*) + HAVE_UNIX_V=1 + ;; + SunOS-4*) + HAVE_UNIX_7=1 + cat >> confdefs.h <<\EOF +#define SOLARIS 1 +EOF + + ;; + UNIX_SV*) + HAVE_UNIX_V=1 + ;; + *) + HAVE_GENERIC=1 + ;; +esac + + +# Check whether --with-clipssrc or --without-clipssrc was given. +if test "${with_clipssrc+set}" = set; then + withval="$with_clipssrc" + CLIPSSRC="$withval" + echo "$ac_t""Overriding clipssrc dir: $CLIPSSRC" 1>&6 +else + CLIPSSRC="../clipssrc/" + echo "$ac_t""Using default clipssrc dir: $CLIPSSRC" 1>&6 + + +fi + +cat >> confdefs.h <> confdefs.h <<\EOF +#define DEBUG 1 +EOF + + CFLAGS="$CFLAGS -g -Wall" + CXXFLAGS="$CXXFLAGS -g -Wall" + echo $ac_n "checking for malloc in -lefence""... $ac_c" 1>&6 +echo "configure:2351: checking for malloc in -lefence" >&5 +ac_lib_var=`echo efence'_'malloc | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lefence $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBS="$LIBS -lefence" +else + echo "$ac_t""no" 1>&6 +fi + +fi + +# Check whether --enable-nooptimize or --disable-nooptimize was given. +if test "${enable_nooptimize+set}" = set; then + enableval="$enable_nooptimize" + : +fi + +if test "$enable_nooptimize" = yes; then + CFLAGS="$CFLAGS -O0" + CXXFLAGS="$CXXFLAGS -O0" +fi + +if test `expr "$CFLAGS" : ".*-g"` -eq 0 ; then + CFLAGS="$CFLAGS -fomit-frame-pointer" +fi + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS </dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo " + Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@VERSION_MAJOR@%$VERSION_MAJOR%g +s%@VERSION_MINOR@%$VERSION_MINOR%g +s%@VERSION@%$VERSION%g +s%@HAVE_GENERIC@%$HAVE_GENERIC%g +s%@HAVE_UNIX_V@%$HAVE_UNIX_V%g +s%@HAVE_UNIX_7@%$HAVE_UNIX_7%g +s%@WANT_EMACS_EDITOR@%$WANT_EMACS_EDITOR%g +s%@WANT_WINDOW_INTERFACE@%$WANT_WINDOW_INTERFACE%g +s%@SH@%$SH%g +s%@CC@%$CC%g +s%@RANLIB@%$RANLIB%g +s%@LN_S@%$LN_S%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@HAVE_AUTOCONF@%$HAVE_AUTOCONF%g +s%@CPP@%$CPP%g +s%@x_libraries@%$x_libraries%g +s%@CLIPSSRC@%$CLIPSSRC%g +s%@WANT_STATIC_CLIPS@%$WANT_STATIC_CLIPS%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +echo timestamp > .stamp-h.in +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + --- clips-6.24.orig/x-prjct/xinterface/xmain.c +++ clips-6.24/x-prjct/xinterface/xmain.c @@ -56,6 +56,7 @@ #include "xclipstext.h" #include "xmenu.h" #include "xclips.h" +#include "envrnmnt.h" Boolean Dribble_status; @@ -73,7 +74,7 @@ XtAppContext app_con; XEvent TheEvent; KeySym TheKeysym; /* Key code id event is a keypress */ -XComposeStatus compose_status; +/* XComposeStatus compose_status; */ Pixmap checker, clips_logo; char *clips_sel_buf; Boolean quit_get_event = False; --- clips-6.24.orig/x-prjct/xinterface/xmenu_file.c +++ clips-6.24/x-prjct/xinterface/xmenu_file.c @@ -35,6 +35,7 @@ #include "router.h" #include "symbol.h" #include "scanner.h" +#include "envrnmnt.h" #include "xsetup.h" #include "xclips.h" @@ -68,7 +69,7 @@ Widget file_dribble; Widget TheFile, file_list; int file_item = -1; -char path[255]; +char path[PATH_MAX]; char **filenames = NULL; char *completionString = NULL; int number_entries; @@ -881,7 +882,7 @@ * Get the path of the current dirrectory * * =============================================================== */ - if(getwd(path) == NULL) + if(getcwd(path, PATH_MAX) == NULL) printf("Error getting current working directory '%s'\n", path); if(path[strlen(path) - 1] != '/') --- clips-6.24.orig/makefiles/makefile.lib++ +++ clips-6.24/makefiles/makefile.lib++ @@ -0,0 +1,1257 @@ +# The GNU Make Manual +# http://www.gnu.org/software/make/manual/make.html + +OBJS = agenda.o analysis.o argacces.o bload.o bmathfun.o bsave.o \ + classcom.o classexm.o classfun.o classinf.o classini.o \ + classpsr.o clsltpsr.o commline.o conscomp.o constrct.o \ + constrnt.o crstrtgy.o cstrcbin.o cstrccom.o cstrcpsr.o \ + cstrnbin.o cstrnchk.o cstrncmp.o cstrnops.o cstrnpsr.o \ + cstrnutl.o default.o defins.o developr.o dffctbin.o dffctbsc.o \ + dffctcmp.o dffctdef.o dffctpsr.o dffnxbin.o dffnxcmp.o \ + dffnxexe.o dffnxfun.o dffnxpsr.o dfinsbin.o dfinscmp.o drive.o \ + edbasic.o edmain.o edmisc.o edstruct.o edterm.o emathfun.o \ + engine.o envrnmnt.o evaluatn.o expressn.o exprnbin.o exprnops.o \ + exprnpsr.o extnfunc.o factbin.o factbld.o factcmp.o factcom.o \ + factfun.o factgen.o facthsh.o factlhs.o factmch.o factmngr.o \ + factprt.o factqpsr.o factqury.o factrete.o factrhs.o filecom.o filertr.o \ + generate.o genrcbin.o genrccmp.o genrccom.o genrcexe.o genrcfun.o \ + genrcpsr.o globlbin.o globlbsc.o globlcmp.o globlcom.o \ + globldef.o globlpsr.o immthpsr.o incrrset.o inherpsr.o \ + inscom.o insfile.o insfun.o insmngr.o insmoddp.o insmult.o \ + inspsr.o insquery.o insqypsr.o iofun.o lgcldpnd.o \ + memalloc.o miscfun.o modulbin.o modulbsc.o modulcmp.o moduldef.o \ + modulpsr.o modulutl.o msgcom.o msgfun.o msgpass.o msgpsr.o \ + multifld.o multifun.o objbin.o objcmp.o objrtbin.o objrtbld.o \ + objrtcmp.o objrtfnx.o objrtgen.o objrtmch.o parsefun.o pattern.o \ + pprint.o prccode.o prcdrfun.o prcdrpsr.o prdctfun.o prntutil.o \ + proflfun.o reorder.o reteutil.o retract.o router.o rulebin.o \ + rulebld.o rulebsc.o rulecmp.o rulecom.o rulecstr.o ruledef.o \ + ruledlt.o rulelhs.o rulepsr.o scanner.o sortfun.o strngfun.o \ + strngrtr.o symblbin.o symblcmp.o symbol.o sysdep.o textpro.o \ + tmpltbin.o tmpltbsc.o tmpltcmp.o tmpltdef.o tmpltfun.o tmpltlhs.o \ + tmpltpsr.o tmpltrhs.o tmpltutl.o userdata.o userfunctions.o utility.o watch.o + +.c.o : + gcc -c -Wall -x c++ -O3 -fno-strict-aliasing -Wundef -Wpointer-arith -Wshadow -Wcast-qual \ + -Wcast-align -Winline -Wredundant-decls -Waggregate-return -Wno-implicit $< + +# Creating Unix Libraries +# http://www.cs.duke.edu/~ola/courses/programming/libraries.html + +libclips++.a : $(OBJS) + rm -f $@ + ar cq $@ $(OBJS) + +# man gcc +# Dependencies generated using "gcc -MM *.c" + +agenda.o: agenda.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h crstrtgy.h agenda.h ruledef.h constrnt.h \ + cstrccom.h network.h match.h pattern.h reorder.h engine.h lgcldpnd.h \ + retract.h memalloc.h modulutl.h multifld.h reteutil.h router.h \ + prntutil.h rulebsc.h strngrtr.h sysdep.h watch.h + +analysis.o: analysis.c setup.h envrnmnt.h usrsetup.h constant.h symbol.h \ + memalloc.h exprnpsr.h extnfunc.h expressn.h exprnops.h userdata.h \ + scanner.h pprint.h reorder.h ruledef.h conscomp.h constrct.h moduldef.h \ + modulpsr.h evaluatn.h utility.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h match.h network.h pattern.h generate.h router.h prntutil.h \ + cstrnchk.h cstrnutl.h cstrnops.h rulecstr.h modulutl.h analysis.h \ + globldef.h + +argacces.o: argacces.c setup.h envrnmnt.h usrsetup.h extnfunc.h symbol.h \ + expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h evaluatn.h constant.h \ + symblcmp.h modulpsr.h utility.h cstrnchk.h constrnt.h insfun.h object.h \ + multifld.h match.h network.h ruledef.h cstrccom.h agenda.h pattern.h \ + reorder.h factmngr.h facthsh.h tmpltdef.h factbld.h argacces.h + +bload.o: bload.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h bsave.h cstrnbin.h constrnt.h memalloc.h router.h \ + prntutil.h bload.h exprnbin.h sysdep.h symblbin.h + +bmathfun.o: bmathfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h router.h prntutil.h \ + bmathfun.h + +bsave.o: bsave.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h bload.h exprnbin.h sysdep.h symblbin.h cstrnbin.h \ + constrnt.h memalloc.h router.h prntutil.h bsave.h + +classcom.o: classcom.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h argacces.h evaluatn.h \ + constant.h moduldef.h conscomp.h constrct.h symblcmp.h modulpsr.h \ + classfun.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + cstrccom.h agenda.h pattern.h reorder.h classini.h modulutl.h msgcom.h \ + msgpass.h router.h prntutil.h classcom.h + +classexm.o: classexm.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h classcom.h cstrccom.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h agenda.h \ + pattern.h reorder.h classfun.h classini.h insfun.h memalloc.h msgcom.h \ + msgpass.h msgfun.h router.h prntutil.h strngrtr.h classexm.h + +classfun.o: classfun.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classini.h cstrcpsr.h inscom.h insfun.h \ + insmngr.h memalloc.h modulutl.h msgfun.h msgpass.h router.h prntutil.h \ + classfun.h + +classinf.o: classinf.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h classcom.h cstrccom.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h agenda.h \ + pattern.h reorder.h classexm.h classfun.h classini.h memalloc.h \ + insfun.h msgcom.h msgpass.h msgfun.h prntutil.h classinf.h + +classini.o: classini.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classexm.h classfun.h classinf.h classpsr.h cstrcpsr.h inscom.h \ + insfun.h memalloc.h modulutl.h msgcom.h msgpass.h watch.h defins.h \ + insquery.h bload.h exprnbin.h sysdep.h symblbin.h objbin.h objcmp.h \ + objrtbld.h classini.h + +classpsr.o: classpsr.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classfun.h clsltpsr.h cstrcpsr.h \ + inherpsr.h memalloc.h modulutl.h msgpsr.h router.h prntutil.h \ + classpsr.h + +clsltpsr.o: clsltpsr.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h cstrnchk.h cstrnpsr.h cstrnutl.h default.h insfun.h \ + memalloc.h prntutil.h router.h clsltpsr.h + +commline.o: commline.c setup.h envrnmnt.h usrsetup.h constant.h \ + argacces.h expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h \ + userdata.h scanner.h pprint.h evaluatn.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h cstrcpsr.h filecom.h \ + memalloc.h prcdrfun.h prcdrpsr.h constrnt.h router.h prntutil.h \ + strngrtr.h commline.h + +conscomp.o: conscomp.c setup.h envrnmnt.h usrsetup.h symbol.h memalloc.h \ + constant.h exprnpsr.h extnfunc.h expressn.h exprnops.h userdata.h \ + scanner.h pprint.h cstrccom.h moduldef.h conscomp.h constrct.h \ + evaluatn.h symblcmp.h modulpsr.h utility.h argacces.h cstrncmp.h \ + constrnt.h router.h prntutil.h sysdep.h modulcmp.h network.h match.h \ + pattern.h reorder.h ruledef.h agenda.h dffnxcmp.h dffnxfun.h tmpltcmp.h \ + globlcmp.h genrccmp.h genrcfun.h object.h multifld.h objcmp.h + +constrct.o: constrct.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h watch.h \ + prcdrfun.h prcdrpsr.h constrnt.h argacces.h multifld.h sysdep.h \ + commline.h + +constrnt.o: constrnt.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h multifld.h \ + router.h prntutil.h constrnt.h + +crstrtgy.o: crstrtgy.c setup.h envrnmnt.h usrsetup.h constant.h pattern.h \ + evaluatn.h symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h match.h network.h ruledef.h conscomp.h \ + constrct.h moduldef.h modulpsr.h utility.h symblcmp.h constrnt.h \ + cstrccom.h agenda.h reorder.h reteutil.h argacces.h crstrtgy.h + +cstrcbin.o: cstrcbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h moduldef.h conscomp.h \ + constrct.h evaluatn.h constant.h symblcmp.h modulpsr.h cstrcbin.h + +cstrccom.o: cstrccom.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h argacces.h multifld.h \ + modulutl.h router.h prntutil.h commline.h bload.h exprnbin.h sysdep.h \ + symblbin.h cstrcpsr.h cstrccom.h + +cstrcpsr.o: cstrcpsr.c setup.h envrnmnt.h usrsetup.h router.h prntutil.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h watch.h prcdrpsr.h constrnt.h \ + modulutl.h sysdep.h cstrcpsr.h + +cstrnbin.o: cstrnbin.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h bload.h \ + exprnbin.h sysdep.h symblbin.h bsave.h cstrnbin.h constrnt.h + +cstrnchk.o: cstrnchk.c setup.h envrnmnt.h usrsetup.h router.h prntutil.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h multifld.h cstrnutl.h \ + constrnt.h inscom.h object.h match.h network.h ruledef.h cstrccom.h \ + agenda.h pattern.h reorder.h insfun.h classcom.h classexm.h cstrnchk.h + +cstrncmp.o: cstrncmp.c setup.h envrnmnt.h usrsetup.h constant.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h memalloc.h router.h prntutil.h sysdep.h \ + cstrncmp.h constrnt.h + +cstrnops.o: cstrnops.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + multifld.h constrnt.h cstrnchk.h cstrnutl.h cstrnops.h + +cstrnpsr.o: cstrnpsr.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + cstrnutl.h constrnt.h cstrnchk.h cstrnpsr.h + +cstrnutl.o: cstrnutl.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + multifld.h argacces.h cstrnutl.h constrnt.h + +default.o: default.c setup.h envrnmnt.h usrsetup.h constant.h constrnt.h \ + evaluatn.h symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h cstrnchk.h multifld.h inscom.h object.h \ + constrct.h moduldef.h conscomp.h symblcmp.h modulpsr.h utility.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + insfun.h router.h prntutil.h factmngr.h facthsh.h tmpltdef.h factbld.h \ + cstrnutl.h default.h + +defins.o: defins.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h dfinsbin.h defins.h \ + conscomp.h constrct.h moduldef.h modulpsr.h evaluatn.h constant.h \ + symblcmp.h cstrccom.h object.h constrnt.h multifld.h match.h network.h \ + ruledef.h agenda.h pattern.h reorder.h dfinscmp.h argacces.h classcom.h \ + classfun.h cstrcpsr.h insfun.h inspsr.h memalloc.h router.h prntutil.h + +developr.o: developr.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h inscom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h cstrccom.h agenda.h pattern.h \ + reorder.h insfun.h modulutl.h router.h prntutil.h tmpltdef.h factbld.h \ + factmngr.h facthsh.h classcom.h classfun.h objrtmch.h developr.h + +dffctbin.o: dffctbin.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + dffctdef.h conscomp.h constrct.h moduldef.h modulpsr.h symbol.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h utility.h symblcmp.h cstrccom.h bload.h \ + exprnbin.h sysdep.h symblbin.h bsave.h dffctbin.h modulbin.h cstrcbin.h + +dffctbsc.o: dffctbsc.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h cstrccom.h factrhs.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h constrnt.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h cstrcpsr.h dffctpsr.h dffctdef.h dffctbin.h modulbin.h \ + cstrcbin.h dffctcmp.h dffctbsc.h + +dffctcmp.o: dffctcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h dffctdef.h cstrccom.h dffctcmp.h + +dffctdef.o: dffctdef.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + dffctpsr.h dffctbsc.h evaluatn.h constant.h symbol.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h bload.h \ + utility.h exprnbin.h sysdep.h symblbin.h dffctbin.h modulbin.h \ + moduldef.h conscomp.h constrct.h symblcmp.h modulpsr.h cstrcbin.h \ + dffctcmp.h dffctdef.h cstrccom.h + +dffctpsr.o: dffctpsr.c setup.h envrnmnt.h usrsetup.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h cstrcpsr.h factrhs.h \ + factmngr.h facthsh.h pattern.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h factbld.h bload.h \ + exprnbin.h sysdep.h symblbin.h dffctdef.h dffctbsc.h dffctpsr.h + +dffnxbin.o: dffnxbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h memalloc.h cstrcbin.h \ + constrct.h moduldef.h conscomp.h symblcmp.h modulpsr.h evaluatn.h \ + constant.h modulbin.h dffnxbin.h dffnxfun.h cstrccom.h + +dffnxcmp.o: dffnxcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h dffnxcmp.h dffnxfun.h cstrccom.h + +dffnxexe.o: dffnxexe.c setup.h envrnmnt.h usrsetup.h constrct.h \ + moduldef.h conscomp.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h modulpsr.h \ + evaluatn.h constant.h utility.h prcdrfun.h prccode.h proflfun.h \ + router.h prntutil.h watch.h dffnxexe.h dffnxfun.h cstrccom.h + +dffnxfun.o: dffnxfun.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h dffnxbin.h dffnxfun.h \ + conscomp.h constrct.h moduldef.h modulpsr.h evaluatn.h constant.h \ + symblcmp.h cstrccom.h dffnxcmp.h cstrcpsr.h dffnxpsr.h dffnxexe.h \ + watch.h argacces.h memalloc.h router.h prntutil.h + +dffnxpsr.o: dffnxpsr.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h network.h match.h evaluatn.h \ + constant.h pattern.h reorder.h ruledef.h conscomp.h constrct.h \ + moduldef.h modulpsr.h symblcmp.h constrnt.h cstrccom.h agenda.h \ + genrccom.h genrcfun.h object.h multifld.h cstrcpsr.h dffnxfun.h \ + memalloc.h prccode.h router.h prntutil.h dffnxpsr.h + +dfinsbin.o: dfinsbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h memalloc.h cstrcbin.h \ + constrct.h moduldef.h conscomp.h symblcmp.h modulpsr.h evaluatn.h \ + constant.h defins.h cstrccom.h object.h constrnt.h multifld.h match.h \ + network.h ruledef.h agenda.h pattern.h reorder.h modulbin.h dfinsbin.h + +dfinscmp.o: dfinscmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h defins.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + dfinscmp.h + +drive.o: drive.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h engine.h lgcldpnd.h retract.h memalloc.h \ + prntutil.h reteutil.h router.h incrrset.h drive.h + +edbasic.o: edbasic.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h + +edmain.o: edmain.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h sysdep.h + +edmisc.o: edmisc.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h cstrcpsr.h + +edstruct.o: edstruct.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h + +edterm.o: edterm.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h + +emathfun.o: emathfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h router.h prntutil.h \ + emathfun.h + +engine.o: engine.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h argacces.h factmngr.h facthsh.h multifld.h \ + tmpltdef.h factbld.h inscom.h object.h insfun.h memalloc.h modulutl.h \ + prccode.h prcdrfun.h proflfun.h reteutil.h retract.h router.h \ + prntutil.h ruledlt.h sysdep.h watch.h engine.h lgcldpnd.h + +envrnmnt.o: envrnmnt.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h router.h engine.h \ + lgcldpnd.h match.h network.h ruledef.h constrnt.h cstrccom.h agenda.h \ + pattern.h reorder.h retract.h sysdep.h + +evaluatn.o: evaluatn.c setup.h envrnmnt.h usrsetup.h commline.h \ + constant.h memalloc.h router.h prntutil.h moduldef.h conscomp.h \ + constrct.h symbol.h userdata.h evaluatn.h expressn.h exprnops.h \ + exprnpsr.h extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h \ + utility.h prcdrfun.h multifld.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h constrnt.h cstrccom.h agenda.h reorder.h tmpltdef.h \ + factbld.h proflfun.h sysdep.h dffnxfun.h genrccom.h genrcfun.h object.h + +expressn.o: expressn.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h evaluatn.h constant.h \ + symblcmp.h modulpsr.h + +exprnbin.o: exprnbin.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + dffctdef.h conscomp.h constrct.h moduldef.h modulpsr.h symbol.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h utility.h symblcmp.h cstrccom.h bload.h \ + exprnbin.h sysdep.h symblbin.h bsave.h network.h match.h pattern.h \ + reorder.h ruledef.h constrnt.h agenda.h genrcbin.h genrcfun.h object.h \ + multifld.h dffnxbin.h dffnxfun.h tmpltbin.h cstrcbin.h modulbin.h \ + tmpltdef.h factbld.h factmngr.h facthsh.h globlbin.h globldef.h \ + objbin.h insfun.h inscom.h + +exprnops.o: exprnops.c setup.h envrnmnt.h usrsetup.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h cstrnchk.h \ + constrnt.h cstrnutl.h cstrnops.h + +exprnpsr.o: exprnpsr.c setup.h envrnmnt.h usrsetup.h constant.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h strngrtr.h memalloc.h \ + argacces.h cstrnchk.h constrnt.h modulutl.h prcdrfun.h network.h \ + match.h pattern.h reorder.h ruledef.h cstrccom.h agenda.h genrccom.h \ + genrcfun.h object.h multifld.h dffnxfun.h + +extnfunc.o: extnfunc.c setup.h envrnmnt.h usrsetup.h constant.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h memalloc.h + +factbin.o: factbin.c setup.h envrnmnt.h usrsetup.h memalloc.h tmpltdef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h factbld.h pattern.h \ + match.h network.h ruledef.h cstrccom.h agenda.h reorder.h factmngr.h \ + facthsh.h multifld.h bload.h exprnbin.h sysdep.h symblbin.h bsave.h \ + reteutil.h rulebin.h modulbin.h cstrcbin.h factbin.h + +factbld.o: factbld.c setup.h envrnmnt.h usrsetup.h memalloc.h reteutil.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h match.h network.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h pattern.h reorder.h router.h prntutil.h \ + factcmp.h factmch.h factmngr.h facthsh.h multifld.h tmpltdef.h \ + factbld.h factgen.h factlhs.h argacces.h modulutl.h + +factcmp.o: factcmp.c setup.h envrnmnt.h usrsetup.h factbld.h pattern.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h match.h network.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h reorder.h factcmp.h tmpltdef.h \ + factmngr.h facthsh.h multifld.h + +factcom.o: factcom.c setup.h envrnmnt.h usrsetup.h memalloc.h exprnpsr.h \ + extnfunc.h symbol.h expressn.h exprnops.h userdata.h scanner.h pprint.h \ + factmngr.h facthsh.h conscomp.h constrct.h moduldef.h modulpsr.h \ + evaluatn.h constant.h utility.h symblcmp.h pattern.h match.h network.h \ + ruledef.h constrnt.h cstrccom.h agenda.h reorder.h multifld.h \ + tmpltdef.h factbld.h argacces.h router.h prntutil.h factrhs.h factmch.h \ + tmpltpsr.h tmpltutl.h modulutl.h strngrtr.h tmpltfun.h sysdep.h bload.h \ + exprnbin.h symblbin.h factcom.h + +factfun.o: factfun.c setup.h envrnmnt.h usrsetup.h extnfunc.h symbol.h \ + expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h \ + argacces.h evaluatn.h constant.h moduldef.h conscomp.h constrct.h \ + symblcmp.h modulpsr.h utility.h prntutil.h tmpltutl.h factmngr.h \ + facthsh.h pattern.h match.h network.h ruledef.h constrnt.h cstrccom.h \ + agenda.h reorder.h multifld.h tmpltdef.h factbld.h router.h factfun.h + +factgen.o: factgen.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h network.h match.h \ + pattern.h reorder.h ruledef.h constrnt.h cstrccom.h agenda.h reteutil.h \ + factmch.h factmngr.h facthsh.h multifld.h tmpltdef.h factbld.h \ + factrete.h factprt.h tmpltlhs.h factgen.h + +facthsh.o: facthsh.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h lgcldpnd.h match.h \ + network.h ruledef.h constrnt.h cstrccom.h agenda.h pattern.h reorder.h \ + facthsh.h factmngr.h multifld.h tmpltdef.h factbld.h + +factlhs.o: factlhs.c setup.h envrnmnt.h usrsetup.h cstrcpsr.h evaluatn.h \ + constant.h symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h constrct.h moduldef.h conscomp.h \ + symblcmp.h modulpsr.h utility.h pattern.h match.h network.h ruledef.h \ + constrnt.h cstrccom.h agenda.h reorder.h router.h prntutil.h tmpltpsr.h \ + tmpltdef.h factbld.h factmngr.h facthsh.h multifld.h tmpltlhs.h \ + tmpltutl.h modulutl.h factlhs.h + +factmch.o: factmch.c setup.h envrnmnt.h usrsetup.h drive.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + match.h evaluatn.h constant.h network.h ruledef.h conscomp.h constrct.h \ + moduldef.h modulpsr.h utility.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h pattern.h reorder.h engine.h lgcldpnd.h retract.h factgen.h \ + factrete.h incrrset.h memalloc.h reteutil.h router.h prntutil.h \ + tmpltdef.h factbld.h factmngr.h facthsh.h multifld.h factmch.h + +factmngr.o: factmngr.c setup.h envrnmnt.h usrsetup.h constant.h symbol.h \ + memalloc.h exprnpsr.h extnfunc.h expressn.h exprnops.h userdata.h \ + scanner.h pprint.h argacces.h evaluatn.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h router.h prntutil.h \ + strngrtr.h match.h network.h ruledef.h constrnt.h cstrccom.h agenda.h \ + pattern.h reorder.h factbld.h factqury.h factmngr.h facthsh.h \ + multifld.h tmpltdef.h reteutil.h retract.h factcmp.h filecom.h \ + factfun.h factcom.h factrhs.h factmch.h watch.h factbin.h default.h \ + commline.h engine.h lgcldpnd.h drive.h ruledlt.h tmpltbsc.h tmpltutl.h \ + tmpltfun.h + +factprt.o: factprt.c setup.h envrnmnt.h usrsetup.h symbol.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h factgen.h reorder.h ruledef.h \ + constrnt.h cstrccom.h agenda.h match.h network.h pattern.h factprt.h + +factqpsr.o: factqpsr.c setup.h envrnmnt.h usrsetup.h exprnpsr.h \ + extnfunc.h symbol.h expressn.h exprnops.h userdata.h scanner.h pprint.h \ + factqury.h factmngr.h facthsh.h conscomp.h constrct.h moduldef.h \ + modulpsr.h evaluatn.h constant.h utility.h symblcmp.h pattern.h match.h \ + network.h ruledef.h constrnt.h cstrccom.h agenda.h reorder.h multifld.h \ + tmpltdef.h factbld.h modulutl.h prcdrpsr.h prntutil.h router.h \ + strngrtr.h factqpsr.h + +factqury.o: factqury.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h modulutl.h \ + tmpltutl.h factmngr.h facthsh.h pattern.h match.h network.h ruledef.h \ + constrnt.h cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h insfun.h object.h factqpsr.h prcdrfun.h router.h prntutil.h \ + factqury.h + +factrete.o: factrete.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + evaluatn.h constant.h symblcmp.h modulpsr.h utility.h incrrset.h \ + ruledef.h constrnt.h cstrccom.h agenda.h match.h network.h pattern.h \ + reorder.h reteutil.h drive.h engine.h lgcldpnd.h retract.h factgen.h \ + factmch.h factmngr.h facthsh.h multifld.h tmpltdef.h factbld.h \ + factrete.h + +factrhs.o: factrhs.c setup.h envrnmnt.h usrsetup.h constant.h extnfunc.h \ + symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h \ + modulutl.h moduldef.h conscomp.h constrct.h evaluatn.h symblcmp.h \ + modulpsr.h utility.h pattern.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h reorder.h prntutil.h cstrcpsr.h bload.h exprnbin.h \ + sysdep.h symblbin.h tmpltpsr.h tmpltdef.h factbld.h factmngr.h \ + facthsh.h multifld.h tmpltrhs.h tmpltutl.h strngrtr.h router.h \ + factrhs.h + +filecom.o: filecom.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h commline.h cstrcpsr.h memalloc.h prcdrfun.h \ + router.h prntutil.h strngrtr.h sysdep.h filecom.h bsave.h bload.h \ + exprnbin.h symblbin.h + +filertr.o: filertr.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h sysdep.h filertr.h + +generate.o: generate.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h symbol.h exprnpsr.h extnfunc.h expressn.h exprnops.h \ + userdata.h scanner.h pprint.h argacces.h evaluatn.h moduldef.h \ + conscomp.h constrct.h symblcmp.h modulpsr.h utility.h router.h \ + prntutil.h ruledef.h constrnt.h cstrccom.h agenda.h match.h network.h \ + pattern.h reorder.h generate.h globlpsr.h + +genrcbin.o: genrcbin.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h bload.h utility.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h exprnbin.h sysdep.h symblbin.h \ + bsave.h cstrcbin.h constrct.h moduldef.h conscomp.h symblcmp.h \ + modulpsr.h evaluatn.h objbin.h object.h constrnt.h multifld.h match.h \ + network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h genrccom.h \ + genrcfun.h modulbin.h genrcbin.h router.h prntutil.h + +genrccmp.o: genrccmp.c setup.h envrnmnt.h usrsetup.h network.h match.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h pattern.h reorder.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h genrccom.h genrcfun.h object.h \ + multifld.h objcmp.h genrccmp.h + +genrccom.o: genrccom.c setup.h envrnmnt.h usrsetup.h network.h match.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h pattern.h reorder.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h bload.h exprnbin.h sysdep.h symblbin.h \ + genrcbin.h genrcfun.h object.h multifld.h genrccmp.h genrcpsr.h \ + classcom.h inscom.h insfun.h watch.h argacces.h cstrcpsr.h genrcexe.h \ + memalloc.h router.h prntutil.h genrccom.h + +genrcexe.o: genrcexe.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h insfun.h argacces.h genrccom.h genrcfun.h prcdrfun.h \ + prccode.h proflfun.h router.h prntutil.h genrcexe.h + +genrcfun.o: genrcfun.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classfun.h argacces.h cstrcpsr.h \ + genrccom.h genrcfun.h genrcexe.h memalloc.h prccode.h router.h \ + prntutil.h + +genrcpsr.o: genrcpsr.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h dffnxfun.h conscomp.h \ + constrct.h moduldef.h modulpsr.h evaluatn.h constant.h symblcmp.h \ + cstrccom.h classfun.h object.h constrnt.h multifld.h match.h network.h \ + ruledef.h agenda.h pattern.h reorder.h classcom.h memalloc.h cstrcpsr.h \ + genrccom.h genrcfun.h immthpsr.h modulutl.h prcdrpsr.h prccode.h \ + router.h prntutil.h genrcpsr.h + +globlbin.o: globlbin.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + multifld.h evaluatn.h constant.h symbol.h expressn.h exprnops.h \ + exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h globldef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + cstrccom.h bload.h exprnbin.h sysdep.h symblbin.h bsave.h globlbsc.h \ + globlbin.h modulbin.h cstrcbin.h + +globlbsc.o: globlbsc.c setup.h envrnmnt.h usrsetup.h constrct.h \ + moduldef.h conscomp.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h modulpsr.h \ + evaluatn.h constant.h utility.h watch.h globlcom.h globldef.h \ + cstrccom.h globlbin.h modulbin.h cstrcbin.h globlcmp.h globlbsc.h + +globlcmp.o: globlcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h globldef.h cstrccom.h globlcmp.h + +globlcom.o: globlcom.c setup.h envrnmnt.h usrsetup.h extnfunc.h symbol.h \ + expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h \ + argacces.h evaluatn.h constant.h moduldef.h conscomp.h constrct.h \ + symblcmp.h modulpsr.h utility.h prntutil.h router.h globldef.h \ + cstrccom.h globlcom.h + +globldef.o: globldef.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + modulpsr.h symbol.h evaluatn.h constant.h expressn.h exprnops.h \ + exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h moduldef.h \ + conscomp.h constrct.h symblcmp.h utility.h multifld.h router.h \ + prntutil.h strngrtr.h modulutl.h globlbsc.h globlpsr.h globlcom.h \ + commline.h bload.h exprnbin.h sysdep.h symblbin.h globlbin.h modulbin.h \ + cstrcbin.h globldef.h cstrccom.h globlcmp.h + +globlpsr.o: globlpsr.c setup.h envrnmnt.h usrsetup.h pprint.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h symblcmp.h modulpsr.h utility.h memalloc.h multifld.h watch.h \ + modulutl.h cstrcpsr.h globldef.h cstrccom.h globlbsc.h bload.h \ + exprnbin.h sysdep.h symblbin.h globlpsr.h + +immthpsr.o: immthpsr.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h memalloc.h cstrnutl.h genrcpsr.h genrcfun.h prccode.h \ + immthpsr.h + +incrrset.o: incrrset.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h argacces.h drive.h engine.h lgcldpnd.h \ + retract.h router.h prntutil.h incrrset.h + +inherpsr.o: inherpsr.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h memalloc.h modulutl.h router.h prntutil.h inherpsr.h + +inscom.o: inscom.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h classinf.h insfile.h insfun.h insmngr.h insmoddp.h insmult.h \ + inspsr.h lgcldpnd.h memalloc.h msgcom.h msgpass.h msgfun.h router.h \ + prntutil.h strngrtr.h sysdep.h commline.h inscom.h + +insfile.o: insfile.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h memalloc.h inscom.h insfun.h insmngr.h inspsr.h router.h \ + prntutil.h strngrtr.h symblbin.h sysdep.h factmngr.h facthsh.h \ + tmpltdef.h factbld.h insfile.h + +insfun.o: insfun.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h cstrnchk.h engine.h lgcldpnd.h retract.h inscom.h insfun.h \ + insmngr.h memalloc.h modulutl.h msgcom.h msgpass.h msgfun.h prccode.h \ + router.h prntutil.h drive.h objrtmch.h + +insmngr.o: insmngr.c setup.h envrnmnt.h usrsetup.h network.h match.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h pattern.h reorder.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h drive.h objrtmch.h object.h multifld.h \ + lgcldpnd.h classcom.h classfun.h engine.h retract.h memalloc.h insfun.h \ + modulutl.h msgcom.h msgpass.h msgfun.h prccode.h router.h prntutil.h \ + insmngr.h inscom.h watch.h + +insmoddp.o: insmoddp.c setup.h envrnmnt.h usrsetup.h network.h match.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h pattern.h reorder.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h objrtmch.h object.h multifld.h \ + argacces.h memalloc.h inscom.h insfun.h insmngr.h inspsr.h miscfun.h \ + msgcom.h msgpass.h msgfun.h prccode.h router.h prntutil.h insmoddp.h + +insmult.o: insmult.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h insfun.h object.h constrnt.h multifld.h match.h \ + network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h msgfun.h \ + msgpass.h multifun.h router.h prntutil.h insmult.h + +inspsr.o: inspsr.c setup.h envrnmnt.h usrsetup.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h multifld.h \ + match.h network.h ruledef.h agenda.h pattern.h reorder.h classfun.h \ + classinf.h prntutil.h router.h inspsr.h + +insquery.o: insquery.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h classcom.h cstrccom.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h agenda.h \ + pattern.h reorder.h classfun.h memalloc.h insfun.h insmngr.h insqypsr.h \ + prcdrfun.h router.h prntutil.h insquery.h + +insqypsr.o: insqypsr.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + insquery.h prcdrpsr.h prntutil.h router.h strngrtr.h insqypsr.h + +iofun.o: iofun.c setup.h envrnmnt.h usrsetup.h router.h prntutil.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h strngrtr.h filertr.h \ + argacces.h memalloc.h commline.h sysdep.h iofun.h + +lgcldpnd.o: lgcldpnd.c setup.h envrnmnt.h usrsetup.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h engine.h lgcldpnd.h \ + match.h network.h ruledef.h constrnt.h cstrccom.h agenda.h pattern.h \ + reorder.h retract.h reteutil.h argacces.h factmngr.h facthsh.h \ + multifld.h tmpltdef.h factbld.h insfun.h object.h + +memalloc.o: memalloc.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h + +miscfun.o: miscfun.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h memalloc.h multifld.h router.h prntutil.h sysdep.h \ + dffnxfun.h cstrccom.h miscfun.h + +modulbin.o: modulbin.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + constrct.h moduldef.h conscomp.h extnfunc.h symbol.h expressn.h \ + exprnops.h exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h \ + modulpsr.h evaluatn.h constant.h utility.h bload.h exprnbin.h sysdep.h \ + symblbin.h bsave.h modulbin.h + +modulbsc.o: modulbsc.c setup.h envrnmnt.h usrsetup.h constrct.h \ + moduldef.h conscomp.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h modulpsr.h \ + evaluatn.h constant.h utility.h modulbin.h prntutil.h modulcmp.h \ + router.h argacces.h bload.h exprnbin.h sysdep.h symblbin.h modulbsc.h + +modulcmp.o: modulcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h sysdep.h modulcmp.h + +moduldef.o: moduldef.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + constant.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + argacces.h modulcmp.h modulbsc.h bload.h exprnbin.h sysdep.h symblbin.h \ + modulbin.h + +modulpsr.o: modulpsr.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + constant.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + argacces.h cstrcpsr.h modulutl.h bload.h exprnbin.h sysdep.h symblbin.h + +modulutl.o: modulutl.c setup.h envrnmnt.h usrsetup.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h modulutl.h + +msgcom.o: msgcom.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h classinf.h insfun.h insmoddp.h msgfun.h msgpass.h prccode.h \ + router.h prntutil.h bload.h exprnbin.h sysdep.h symblbin.h msgpsr.h \ + watch.h msgcom.h + +msgfun.o: msgfun.c setup.h envrnmnt.h usrsetup.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h multifld.h \ + match.h network.h ruledef.h agenda.h pattern.h reorder.h classfun.h \ + memalloc.h insfun.h msgcom.h msgpass.h prccode.h router.h prntutil.h \ + msgfun.h + +msgpass.o: msgpass.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h memalloc.h insfun.h msgcom.h msgpass.h msgfun.h prcdrfun.h \ + prccode.h proflfun.h router.h prntutil.h strngfun.h commline.h inscom.h + +msgpsr.o: msgpsr.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classfun.h memalloc.h cstrcpsr.h \ + cstrnchk.h insfun.h msgcom.h msgpass.h msgfun.h prccode.h router.h \ + prntutil.h strngrtr.h msgpsr.h + +multifld.o: multifld.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h evaluatn.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h router.h prntutil.h moduldef.h \ + conscomp.h constrct.h symblcmp.h modulpsr.h utility.h strngrtr.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h cstrccom.h \ + agenda.h pattern.h reorder.h + +multifun.o: multifun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h multifld.h \ + multifun.h prcdrpsr.h constrnt.h prcdrfun.h router.h prntutil.h \ + object.h match.h network.h ruledef.h cstrccom.h agenda.h pattern.h \ + reorder.h + +objbin.o: objbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classfun.h classini.h cstrcbin.h \ + cstrnbin.h insfun.h memalloc.h modulbin.h msgcom.h msgpass.h msgfun.h \ + prntutil.h router.h objbin.h + +objcmp.o: objcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h constrct.h \ + moduldef.h modulpsr.h symbol.h evaluatn.h constant.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h \ + utility.h symblcmp.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h classini.h cstrncmp.h objrtfnx.h objrtmch.h sysdep.h \ + objcmp.h + +objrtbin.o: objrtbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h memalloc.h insfun.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + cstrccom.h agenda.h pattern.h reorder.h objrtmch.h reteutil.h rulebin.h \ + modulbin.h cstrcbin.h objrtbin.h + +objrtbld.o: objrtbld.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h cstrnutl.h cstrnchk.h cstrnops.h drive.h inscom.h insfun.h \ + insmngr.h memalloc.h reteutil.h rulepsr.h objrtmch.h objrtgen.h \ + objrtfnx.h router.h prntutil.h objrtcmp.h objrtbin.h objrtbld.h + +objrtcmp.o: objrtcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h objrtfnx.h object.h constrnt.h multifld.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + objrtmch.h sysdep.h objrtcmp.h + +objrtfnx.o: objrtfnx.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h bload.h exprnbin.h sysdep.h symblbin.h drive.h engine.h \ + lgcldpnd.h retract.h memalloc.h objrtmch.h reteutil.h router.h \ + prntutil.h objrtfnx.h + +objrtgen.o: objrtgen.c setup.h envrnmnt.h usrsetup.h classfun.h object.h \ + constrct.h moduldef.h conscomp.h extnfunc.h symbol.h expressn.h \ + exprnops.h exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h \ + modulpsr.h evaluatn.h constant.h utility.h constrnt.h multifld.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + objrtfnx.h objrtmch.h objrtgen.h + +objrtmch.o: objrtmch.c setup.h envrnmnt.h usrsetup.h classfun.h object.h \ + constrct.h moduldef.h conscomp.h extnfunc.h symbol.h expressn.h \ + exprnops.h exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h \ + modulpsr.h evaluatn.h constant.h utility.h constrnt.h multifld.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + memalloc.h drive.h engine.h lgcldpnd.h retract.h incrrset.h reteutil.h \ + ruledlt.h router.h prntutil.h objrtfnx.h objrtmch.h insmngr.h + +parsefun.o: parsefun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h cstrcpsr.h memalloc.h \ + multifld.h prcdrpsr.h constrnt.h router.h prntutil.h strngrtr.h \ + parsefun.h + +pattern.o: pattern.c setup.h envrnmnt.h usrsetup.h constant.h constrnt.h \ + evaluatn.h symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h cstrnchk.h cstrnutl.h match.h network.h \ + ruledef.h conscomp.h constrct.h moduldef.h modulpsr.h utility.h \ + symblcmp.h cstrccom.h agenda.h pattern.h reorder.h memalloc.h \ + reteutil.h router.h prntutil.h rulecmp.h + +pprint.o: pprint.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + utility.h pprint.h + +prccode.o: prccode.c setup.h envrnmnt.h usrsetup.h memalloc.h constant.h \ + globlpsr.h expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h \ + userdata.h scanner.h pprint.h multifld.h evaluatn.h object.h constrct.h \ + moduldef.h conscomp.h symblcmp.h modulpsr.h utility.h constrnt.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + prcdrpsr.h router.h prntutil.h prccode.h + +prcdrfun.o: prcdrfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h constrnt.h cstrnchk.h \ + cstrnops.h memalloc.h multifld.h prcdrpsr.h router.h prntutil.h \ + prcdrfun.h globldef.h cstrccom.h + +prcdrpsr.o: prcdrpsr.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h constrnt.h cstrnchk.h \ + cstrnops.h cstrnutl.h memalloc.h modulutl.h multifld.h router.h \ + prntutil.h prcdrpsr.h globldef.h cstrccom.h globlpsr.h + +prdctfun.o: prdctfun.c setup.h envrnmnt.h usrsetup.h exprnpsr.h \ + extnfunc.h symbol.h expressn.h exprnops.h userdata.h scanner.h pprint.h \ + argacces.h evaluatn.h constant.h moduldef.h conscomp.h constrct.h \ + symblcmp.h modulpsr.h utility.h multifld.h router.h prntutil.h \ + prdctfun.h + +prntutil.o: prntutil.c setup.h envrnmnt.h usrsetup.h constant.h symbol.h \ + utility.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h argacces.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h router.h prntutil.h multifun.h \ + factmngr.h facthsh.h pattern.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h factbld.h inscom.h \ + object.h insfun.h insmngr.h memalloc.h + +proflfun.o: proflfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h classcom.h cstrccom.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h agenda.h \ + pattern.h reorder.h dffnxfun.h genrccom.h genrcfun.h memalloc.h \ + msgcom.h msgpass.h router.h prntutil.h sysdep.h proflfun.h + +reorder.o: reorder.c setup.h envrnmnt.h usrsetup.h cstrnutl.h constrnt.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h memalloc.h pattern.h match.h \ + network.h ruledef.h conscomp.h constrct.h moduldef.h modulpsr.h \ + utility.h symblcmp.h cstrccom.h agenda.h reorder.h prntutil.h router.h \ + rulelhs.h + +reteutil.o: reteutil.c setup.h envrnmnt.h usrsetup.h drive.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + match.h evaluatn.h constant.h network.h ruledef.h conscomp.h constrct.h \ + moduldef.h modulpsr.h utility.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h pattern.h reorder.h engine.h lgcldpnd.h retract.h incrrset.h \ + memalloc.h router.h prntutil.h reteutil.h + +retract.o: retract.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h argacces.h drive.h engine.h lgcldpnd.h \ + retract.h memalloc.h reteutil.h router.h prntutil.h + +router.o: router.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h filertr.h memalloc.h strngrtr.h sysdep.h router.h \ + prntutil.h + +rulebin.o: rulebin.c setup.h envrnmnt.h usrsetup.h memalloc.h bload.h \ + utility.h extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h \ + scanner.h pprint.h userdata.h exprnbin.h sysdep.h symblbin.h bsave.h \ + reteutil.h evaluatn.h constant.h match.h network.h ruledef.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h pattern.h reorder.h engine.h lgcldpnd.h retract.h rulebsc.h \ + rulebin.h modulbin.h cstrcbin.h + +rulebld.o: rulebld.c setup.h envrnmnt.h usrsetup.h constant.h constrct.h \ + moduldef.h conscomp.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h modulpsr.h \ + evaluatn.h utility.h drive.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h pattern.h reorder.h incrrset.h memalloc.h \ + reteutil.h router.h prntutil.h rulebld.h watch.h + +rulebsc.o: rulebsc.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h router.h prntutil.h watch.h ruledef.h constrnt.h \ + cstrccom.h agenda.h match.h network.h pattern.h reorder.h engine.h \ + lgcldpnd.h retract.h rulebin.h modulbin.h cstrcbin.h rulecmp.h \ + rulebsc.h + +rulecmp.o: rulecmp.c setup.h envrnmnt.h usrsetup.h factbld.h pattern.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h match.h network.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h reorder.h reteutil.h rulecmp.h + +rulecom.o: rulecom.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h crstrtgy.h agenda.h ruledef.h constrnt.h \ + cstrccom.h network.h match.h pattern.h reorder.h engine.h lgcldpnd.h \ + retract.h incrrset.h memalloc.h reteutil.h router.h prntutil.h \ + ruledlt.h watch.h rulebin.h modulbin.h cstrcbin.h rulecom.h + +rulecstr.o: rulecstr.c setup.h envrnmnt.h usrsetup.h analysis.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h reorder.h ruledef.h conscomp.h constrct.h moduldef.h \ + modulpsr.h evaluatn.h constant.h utility.h symblcmp.h constrnt.h \ + cstrccom.h agenda.h match.h network.h pattern.h cstrnchk.h cstrnops.h \ + cstrnutl.h prcdrpsr.h router.h prntutil.h rulepsr.h rulecstr.h + +ruledef.o: ruledef.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h drive.h engine.h lgcldpnd.h retract.h \ + memalloc.h rulebsc.h rulecom.h rulepsr.h ruledlt.h bload.h exprnbin.h \ + sysdep.h symblbin.h rulebin.h modulbin.h cstrcbin.h rulecmp.h + +ruledlt.o: ruledlt.c setup.h envrnmnt.h usrsetup.h memalloc.h engine.h \ + lgcldpnd.h match.h evaluatn.h constant.h symbol.h expressn.h exprnops.h \ + exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h network.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h pattern.h reorder.h retract.h reteutil.h \ + drive.h bload.h exprnbin.h sysdep.h symblbin.h ruledlt.h + +rulelhs.o: rulelhs.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h argacces.h cstrnchk.h memalloc.h router.h \ + prntutil.h rulelhs.h + +rulepsr.o: rulepsr.c setup.h envrnmnt.h usrsetup.h analysis.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + reorder.h ruledef.h conscomp.h constrct.h moduldef.h modulpsr.h \ + evaluatn.h constant.h utility.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h match.h network.h pattern.h cstrcpsr.h cstrnchk.h cstrnops.h \ + engine.h lgcldpnd.h retract.h incrrset.h memalloc.h prccode.h \ + prcdrpsr.h router.h prntutil.h rulebld.h rulebsc.h rulecstr.h ruledlt.h \ + rulelhs.h watch.h tmpltfun.h factmngr.h facthsh.h multifld.h tmpltdef.h \ + factbld.h bload.h exprnbin.h sysdep.h symblbin.h rulepsr.h + +scanner.o: scanner.c setup.h envrnmnt.h usrsetup.h constant.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h memalloc.h + +sortfun.o: sortfun.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h dffnxfun.h cstrccom.h memalloc.h multifld.h \ + sysdep.h sortfun.h + +strngfun.o: strngfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h cstrcpsr.h engine.h \ + lgcldpnd.h match.h network.h ruledef.h constrnt.h cstrccom.h agenda.h \ + pattern.h reorder.h retract.h memalloc.h prcdrpsr.h router.h prntutil.h \ + strngrtr.h drive.h strngfun.h + +strngrtr.o: strngrtr.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + strngrtr.h + +symblbin.o: symblbin.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h bload.h exprnbin.h sysdep.h \ + symblbin.h bsave.h cstrnbin.h constrnt.h memalloc.h router.h prntutil.h + +symblcmp.o: symblcmp.c setup.h envrnmnt.h usrsetup.h symbol.h memalloc.h \ + constant.h exprnpsr.h extnfunc.h expressn.h exprnops.h userdata.h \ + scanner.h pprint.h cstrccom.h moduldef.h conscomp.h constrct.h \ + evaluatn.h symblcmp.h modulpsr.h utility.h argacces.h cstrncmp.h \ + constrnt.h router.h prntutil.h sysdep.h + +symbol.o: symbol.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h argacces.h + +sysdep.o: sysdep.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h bmathfun.h commline.h constrnt.h cstrcpsr.h \ + emathfun.h filecom.h iofun.h memalloc.h miscfun.h multifld.h multifun.h \ + parsefun.h prccode.h prdctfun.h proflfun.h prcdrfun.h router.h \ + prntutil.h sortfun.h strngfun.h textpro.h watch.h sysdep.h dffctdef.h \ + cstrccom.h ruledef.h agenda.h match.h network.h pattern.h reorder.h \ + genrccom.h genrcfun.h object.h dffnxfun.h globldef.h tmpltdef.h \ + factbld.h factmngr.h facthsh.h classini.h ed.h + +textpro.o: textpro.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h commline.h memalloc.h router.h prntutil.h sysdep.h \ + textpro.h + +tmpltbin.o: tmpltbin.c setup.h envrnmnt.h usrsetup.h memalloc.h bload.h \ + utility.h extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h \ + scanner.h pprint.h userdata.h exprnbin.h sysdep.h symblbin.h bsave.h \ + factbin.h factbld.h pattern.h evaluatn.h constant.h match.h network.h \ + ruledef.h conscomp.h constrct.h moduldef.h modulpsr.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h reorder.h cstrnbin.h factmngr.h \ + facthsh.h multifld.h tmpltdef.h tmpltpsr.h tmpltutl.h tmpltbin.h \ + cstrcbin.h modulbin.h + +tmpltbsc.o: tmpltbsc.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h cstrccom.h factrhs.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h constrnt.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h cstrcpsr.h tmpltpsr.h tmpltbin.h cstrcbin.h modulbin.h \ + tmpltcmp.h tmpltutl.h tmpltbsc.h + +tmpltcmp.o: tmpltcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h factcmp.h pattern.h match.h network.h \ + ruledef.h constrnt.h cstrccom.h agenda.h reorder.h cstrncmp.h \ + tmpltdef.h factbld.h factmngr.h facthsh.h multifld.h tmpltcmp.h + +tmpltdef.o: tmpltdef.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + exprnops.h expressn.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h cstrccom.h moduldef.h conscomp.h constrct.h \ + evaluatn.h constant.h symblcmp.h modulpsr.h utility.h network.h match.h \ + pattern.h reorder.h ruledef.h constrnt.h agenda.h tmpltpsr.h tmpltdef.h \ + factbld.h factmngr.h facthsh.h multifld.h tmpltbsc.h tmpltutl.h \ + tmpltfun.h router.h prntutil.h modulutl.h cstrnchk.h bload.h exprnbin.h \ + sysdep.h symblbin.h tmpltbin.h cstrcbin.h modulbin.h tmpltcmp.h + +tmpltfun.o: tmpltfun.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h symbol.h scanner.h pprint.h exprnpsr.h extnfunc.h expressn.h \ + exprnops.h userdata.h argacces.h evaluatn.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h router.h prntutil.h \ + cstrnchk.h constrnt.h default.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h commline.h factrhs.h modulutl.h tmpltlhs.h tmpltutl.h \ + tmpltrhs.h tmpltfun.h + +tmpltlhs.o: tmpltlhs.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h symbol.h scanner.h pprint.h exprnpsr.h extnfunc.h expressn.h \ + exprnops.h userdata.h router.h prntutil.h moduldef.h conscomp.h \ + constrct.h evaluatn.h symblcmp.h modulpsr.h utility.h constrnt.h \ + reorder.h ruledef.h cstrccom.h agenda.h match.h network.h pattern.h \ + factrhs.h factmngr.h facthsh.h multifld.h tmpltdef.h factbld.h \ + modulutl.h tmpltutl.h tmpltlhs.h + +tmpltpsr.o: tmpltpsr.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h symbol.h scanner.h pprint.h exprnpsr.h extnfunc.h expressn.h \ + exprnops.h userdata.h router.h prntutil.h moduldef.h conscomp.h \ + constrct.h evaluatn.h symblcmp.h modulpsr.h utility.h factmngr.h \ + facthsh.h pattern.h match.h network.h ruledef.h constrnt.h cstrccom.h \ + agenda.h reorder.h multifld.h tmpltdef.h factbld.h cstrnchk.h \ + cstrnpsr.h cstrcpsr.h bload.h exprnbin.h sysdep.h symblbin.h default.h \ + watch.h cstrnutl.h tmpltbsc.h tmpltpsr.h + +tmpltrhs.o: tmpltrhs.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h router.h tmpltfun.h \ + factmngr.h facthsh.h pattern.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h factbld.h factrhs.h \ + modulutl.h default.h tmpltutl.h tmpltlhs.h tmpltrhs.h + +tmpltutl.o: tmpltutl.c setup.h envrnmnt.h usrsetup.h extnfunc.h symbol.h \ + expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h \ + memalloc.h constrct.h moduldef.h conscomp.h symblcmp.h modulpsr.h \ + evaluatn.h constant.h utility.h router.h prntutil.h argacces.h \ + cstrnchk.h constrnt.h tmpltfun.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h tmpltpsr.h modulutl.h watch.h tmpltbsc.h tmpltutl.h + +userdata.o: userdata.c setup.h envrnmnt.h usrsetup.h userdata.h + +userfunctions.o: userfunctions.c setup.h envrnmnt.h usrsetup.h extnfunc.h \ + symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h + +utility.o: utility.c setup.h envrnmnt.h usrsetup.h evaluatn.h constant.h \ + symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h facthsh.h factmngr.h conscomp.h constrct.h \ + moduldef.h modulpsr.h utility.h symblcmp.h pattern.h match.h network.h \ + ruledef.h constrnt.h cstrccom.h agenda.h reorder.h multifld.h \ + tmpltdef.h factbld.h memalloc.h prntutil.h + +watch.o: watch.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h argacces.h watch.h \ No newline at end of file --- clips-6.24.orig/makefiles/makefile.g++ +++ clips-6.24/makefiles/makefile.g++ @@ -0,0 +1,1253 @@ +OBJS = agenda.o analysis.o argacces.o bload.o bmathfun.o bsave.o \ + classcom.o classexm.o classfun.o classinf.o classini.o \ + classpsr.o clsltpsr.o commline.o conscomp.o constrct.o \ + constrnt.o crstrtgy.o cstrcbin.o cstrccom.o cstrcpsr.o \ + cstrnbin.o cstrnchk.o cstrncmp.o cstrnops.o cstrnpsr.o \ + cstrnutl.o default.o defins.o developr.o dffctbin.o dffctbsc.o \ + dffctcmp.o dffctdef.o dffctpsr.o dffnxbin.o dffnxcmp.o \ + dffnxexe.o dffnxfun.o dffnxpsr.o dfinsbin.o dfinscmp.o drive.o \ + edbasic.o edmain.o edmisc.o edstruct.o edterm.o emathfun.o \ + engine.o envrnmnt.o evaluatn.o expressn.o exprnbin.o exprnops.o \ + exprnpsr.o extnfunc.o factbin.o factbld.o factcmp.o factcom.o \ + factfun.o factgen.o facthsh.o factlhs.o factmch.o factmngr.o \ + factprt.o factqpsr.o factqury.o factrete.o factrhs.o filecom.o filertr.o \ + generate.o genrcbin.o genrccmp.o genrccom.o genrcexe.o genrcfun.o \ + genrcpsr.o globlbin.o globlbsc.o globlcmp.o globlcom.o \ + globldef.o globlpsr.o immthpsr.o incrrset.o inherpsr.o \ + inscom.o insfile.o insfun.o insmngr.o insmoddp.o insmult.o \ + inspsr.o insquery.o insqypsr.o iofun.o lgcldpnd.o main.o \ + memalloc.o miscfun.o modulbin.o modulbsc.o modulcmp.o moduldef.o \ + modulpsr.o modulutl.o msgcom.o msgfun.o msgpass.o msgpsr.o \ + multifld.o multifun.o objbin.o objcmp.o objrtbin.o objrtbld.o \ + objrtcmp.o objrtfnx.o objrtgen.o objrtmch.o parsefun.o pattern.o \ + pprint.o prccode.o prcdrfun.o prcdrpsr.o prdctfun.o prntutil.o \ + proflfun.o reorder.o reteutil.o retract.o router.o rulebin.o \ + rulebld.o rulebsc.o rulecmp.o rulecom.o rulecstr.o ruledef.o \ + ruledlt.o rulelhs.o rulepsr.o scanner.o sortfun.o strngfun.o \ + strngrtr.o symblbin.o symblcmp.o symbol.o sysdep.o textpro.o \ + tmpltbin.o tmpltbsc.o tmpltcmp.o tmpltdef.o tmpltfun.o tmpltlhs.o \ + tmpltpsr.o tmpltrhs.o tmpltutl.o userdata.o userfunctions.o utility.o watch.o + +.c.o : + gcc -c -Wall -x c++ -O3 -fno-strict-aliasing -Wundef -Wpointer-arith -Wshadow -Wcast-qual \ + -Wcast-align -Winline -Wredundant-decls -Waggregate-return -Wno-implicit $< + +clips : $(OBJS) + gcc -o clips $(OBJS) -lstdc++ -ltermcap + +# Dependencies generated using "gcc -MM *.c" + +agenda.o: agenda.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h crstrtgy.h agenda.h ruledef.h constrnt.h \ + cstrccom.h network.h match.h pattern.h reorder.h engine.h lgcldpnd.h \ + retract.h memalloc.h modulutl.h multifld.h reteutil.h router.h \ + prntutil.h rulebsc.h strngrtr.h sysdep.h watch.h + +analysis.o: analysis.c setup.h envrnmnt.h usrsetup.h constant.h symbol.h \ + memalloc.h exprnpsr.h extnfunc.h expressn.h exprnops.h userdata.h \ + scanner.h pprint.h reorder.h ruledef.h conscomp.h constrct.h moduldef.h \ + modulpsr.h evaluatn.h utility.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h match.h network.h pattern.h generate.h router.h prntutil.h \ + cstrnchk.h cstrnutl.h cstrnops.h rulecstr.h modulutl.h analysis.h \ + globldef.h + +argacces.o: argacces.c setup.h envrnmnt.h usrsetup.h extnfunc.h symbol.h \ + expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h evaluatn.h constant.h \ + symblcmp.h modulpsr.h utility.h cstrnchk.h constrnt.h insfun.h object.h \ + multifld.h match.h network.h ruledef.h cstrccom.h agenda.h pattern.h \ + reorder.h factmngr.h facthsh.h tmpltdef.h factbld.h argacces.h + +bload.o: bload.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h bsave.h cstrnbin.h constrnt.h memalloc.h router.h \ + prntutil.h bload.h exprnbin.h sysdep.h symblbin.h + +bmathfun.o: bmathfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h router.h prntutil.h \ + bmathfun.h + +bsave.o: bsave.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h bload.h exprnbin.h sysdep.h symblbin.h cstrnbin.h \ + constrnt.h memalloc.h router.h prntutil.h bsave.h + +classcom.o: classcom.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h argacces.h evaluatn.h \ + constant.h moduldef.h conscomp.h constrct.h symblcmp.h modulpsr.h \ + classfun.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + cstrccom.h agenda.h pattern.h reorder.h classini.h modulutl.h msgcom.h \ + msgpass.h router.h prntutil.h classcom.h + +classexm.o: classexm.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h classcom.h cstrccom.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h agenda.h \ + pattern.h reorder.h classfun.h classini.h insfun.h memalloc.h msgcom.h \ + msgpass.h msgfun.h router.h prntutil.h strngrtr.h classexm.h + +classfun.o: classfun.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classini.h cstrcpsr.h inscom.h insfun.h \ + insmngr.h memalloc.h modulutl.h msgfun.h msgpass.h router.h prntutil.h \ + classfun.h + +classinf.o: classinf.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h classcom.h cstrccom.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h agenda.h \ + pattern.h reorder.h classexm.h classfun.h classini.h memalloc.h \ + insfun.h msgcom.h msgpass.h msgfun.h prntutil.h classinf.h + +classini.o: classini.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classexm.h classfun.h classinf.h classpsr.h cstrcpsr.h inscom.h \ + insfun.h memalloc.h modulutl.h msgcom.h msgpass.h watch.h defins.h \ + insquery.h bload.h exprnbin.h sysdep.h symblbin.h objbin.h objcmp.h \ + objrtbld.h classini.h + +classpsr.o: classpsr.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classfun.h clsltpsr.h cstrcpsr.h \ + inherpsr.h memalloc.h modulutl.h msgpsr.h router.h prntutil.h \ + classpsr.h + +clsltpsr.o: clsltpsr.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h cstrnchk.h cstrnpsr.h cstrnutl.h default.h insfun.h \ + memalloc.h prntutil.h router.h clsltpsr.h + +commline.o: commline.c setup.h envrnmnt.h usrsetup.h constant.h \ + argacces.h expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h \ + userdata.h scanner.h pprint.h evaluatn.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h cstrcpsr.h filecom.h \ + memalloc.h prcdrfun.h prcdrpsr.h constrnt.h router.h prntutil.h \ + strngrtr.h commline.h + +conscomp.o: conscomp.c setup.h envrnmnt.h usrsetup.h symbol.h memalloc.h \ + constant.h exprnpsr.h extnfunc.h expressn.h exprnops.h userdata.h \ + scanner.h pprint.h cstrccom.h moduldef.h conscomp.h constrct.h \ + evaluatn.h symblcmp.h modulpsr.h utility.h argacces.h cstrncmp.h \ + constrnt.h router.h prntutil.h sysdep.h modulcmp.h network.h match.h \ + pattern.h reorder.h ruledef.h agenda.h dffnxcmp.h dffnxfun.h tmpltcmp.h \ + globlcmp.h genrccmp.h genrcfun.h object.h multifld.h objcmp.h + +constrct.o: constrct.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h watch.h \ + prcdrfun.h prcdrpsr.h constrnt.h argacces.h multifld.h sysdep.h \ + commline.h + +constrnt.o: constrnt.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h multifld.h \ + router.h prntutil.h constrnt.h + +crstrtgy.o: crstrtgy.c setup.h envrnmnt.h usrsetup.h constant.h pattern.h \ + evaluatn.h symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h match.h network.h ruledef.h conscomp.h \ + constrct.h moduldef.h modulpsr.h utility.h symblcmp.h constrnt.h \ + cstrccom.h agenda.h reorder.h reteutil.h argacces.h crstrtgy.h + +cstrcbin.o: cstrcbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h moduldef.h conscomp.h \ + constrct.h evaluatn.h constant.h symblcmp.h modulpsr.h cstrcbin.h + +cstrccom.o: cstrccom.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h argacces.h multifld.h \ + modulutl.h router.h prntutil.h commline.h bload.h exprnbin.h sysdep.h \ + symblbin.h cstrcpsr.h cstrccom.h + +cstrcpsr.o: cstrcpsr.c setup.h envrnmnt.h usrsetup.h router.h prntutil.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h watch.h prcdrpsr.h constrnt.h \ + modulutl.h sysdep.h cstrcpsr.h + +cstrnbin.o: cstrnbin.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h bload.h \ + exprnbin.h sysdep.h symblbin.h bsave.h cstrnbin.h constrnt.h + +cstrnchk.o: cstrnchk.c setup.h envrnmnt.h usrsetup.h router.h prntutil.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h multifld.h cstrnutl.h \ + constrnt.h inscom.h object.h match.h network.h ruledef.h cstrccom.h \ + agenda.h pattern.h reorder.h insfun.h classcom.h classexm.h cstrnchk.h + +cstrncmp.o: cstrncmp.c setup.h envrnmnt.h usrsetup.h constant.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h memalloc.h router.h prntutil.h sysdep.h \ + cstrncmp.h constrnt.h + +cstrnops.o: cstrnops.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + multifld.h constrnt.h cstrnchk.h cstrnutl.h cstrnops.h + +cstrnpsr.o: cstrnpsr.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + cstrnutl.h constrnt.h cstrnchk.h cstrnpsr.h + +cstrnutl.o: cstrnutl.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + multifld.h argacces.h cstrnutl.h constrnt.h + +default.o: default.c setup.h envrnmnt.h usrsetup.h constant.h constrnt.h \ + evaluatn.h symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h cstrnchk.h multifld.h inscom.h object.h \ + constrct.h moduldef.h conscomp.h symblcmp.h modulpsr.h utility.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + insfun.h router.h prntutil.h factmngr.h facthsh.h tmpltdef.h factbld.h \ + cstrnutl.h default.h + +defins.o: defins.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h dfinsbin.h defins.h \ + conscomp.h constrct.h moduldef.h modulpsr.h evaluatn.h constant.h \ + symblcmp.h cstrccom.h object.h constrnt.h multifld.h match.h network.h \ + ruledef.h agenda.h pattern.h reorder.h dfinscmp.h argacces.h classcom.h \ + classfun.h cstrcpsr.h insfun.h inspsr.h memalloc.h router.h prntutil.h + +developr.o: developr.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h inscom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h cstrccom.h agenda.h pattern.h \ + reorder.h insfun.h modulutl.h router.h prntutil.h tmpltdef.h factbld.h \ + factmngr.h facthsh.h classcom.h classfun.h objrtmch.h developr.h + +dffctbin.o: dffctbin.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + dffctdef.h conscomp.h constrct.h moduldef.h modulpsr.h symbol.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h utility.h symblcmp.h cstrccom.h bload.h \ + exprnbin.h sysdep.h symblbin.h bsave.h dffctbin.h modulbin.h cstrcbin.h + +dffctbsc.o: dffctbsc.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h cstrccom.h factrhs.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h constrnt.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h cstrcpsr.h dffctpsr.h dffctdef.h dffctbin.h modulbin.h \ + cstrcbin.h dffctcmp.h dffctbsc.h + +dffctcmp.o: dffctcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h dffctdef.h cstrccom.h dffctcmp.h + +dffctdef.o: dffctdef.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + dffctpsr.h dffctbsc.h evaluatn.h constant.h symbol.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h bload.h \ + utility.h exprnbin.h sysdep.h symblbin.h dffctbin.h modulbin.h \ + moduldef.h conscomp.h constrct.h symblcmp.h modulpsr.h cstrcbin.h \ + dffctcmp.h dffctdef.h cstrccom.h + +dffctpsr.o: dffctpsr.c setup.h envrnmnt.h usrsetup.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h cstrcpsr.h factrhs.h \ + factmngr.h facthsh.h pattern.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h factbld.h bload.h \ + exprnbin.h sysdep.h symblbin.h dffctdef.h dffctbsc.h dffctpsr.h + +dffnxbin.o: dffnxbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h memalloc.h cstrcbin.h \ + constrct.h moduldef.h conscomp.h symblcmp.h modulpsr.h evaluatn.h \ + constant.h modulbin.h dffnxbin.h dffnxfun.h cstrccom.h + +dffnxcmp.o: dffnxcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h dffnxcmp.h dffnxfun.h cstrccom.h + +dffnxexe.o: dffnxexe.c setup.h envrnmnt.h usrsetup.h constrct.h \ + moduldef.h conscomp.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h modulpsr.h \ + evaluatn.h constant.h utility.h prcdrfun.h prccode.h proflfun.h \ + router.h prntutil.h watch.h dffnxexe.h dffnxfun.h cstrccom.h + +dffnxfun.o: dffnxfun.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h dffnxbin.h dffnxfun.h \ + conscomp.h constrct.h moduldef.h modulpsr.h evaluatn.h constant.h \ + symblcmp.h cstrccom.h dffnxcmp.h cstrcpsr.h dffnxpsr.h dffnxexe.h \ + watch.h argacces.h memalloc.h router.h prntutil.h + +dffnxpsr.o: dffnxpsr.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h network.h match.h evaluatn.h \ + constant.h pattern.h reorder.h ruledef.h conscomp.h constrct.h \ + moduldef.h modulpsr.h symblcmp.h constrnt.h cstrccom.h agenda.h \ + genrccom.h genrcfun.h object.h multifld.h cstrcpsr.h dffnxfun.h \ + memalloc.h prccode.h router.h prntutil.h dffnxpsr.h + +dfinsbin.o: dfinsbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h memalloc.h cstrcbin.h \ + constrct.h moduldef.h conscomp.h symblcmp.h modulpsr.h evaluatn.h \ + constant.h defins.h cstrccom.h object.h constrnt.h multifld.h match.h \ + network.h ruledef.h agenda.h pattern.h reorder.h modulbin.h dfinsbin.h + +dfinscmp.o: dfinscmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h defins.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + dfinscmp.h + +drive.o: drive.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h engine.h lgcldpnd.h retract.h memalloc.h \ + prntutil.h reteutil.h router.h incrrset.h drive.h + +edbasic.o: edbasic.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h + +edmain.o: edmain.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h sysdep.h + +edmisc.o: edmisc.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h cstrcpsr.h + +edstruct.o: edstruct.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h + +edterm.o: edterm.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h + +emathfun.o: emathfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h router.h prntutil.h \ + emathfun.h + +engine.o: engine.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h argacces.h factmngr.h facthsh.h multifld.h \ + tmpltdef.h factbld.h inscom.h object.h insfun.h memalloc.h modulutl.h \ + prccode.h prcdrfun.h proflfun.h reteutil.h retract.h router.h \ + prntutil.h ruledlt.h sysdep.h watch.h engine.h lgcldpnd.h + +envrnmnt.o: envrnmnt.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h router.h engine.h \ + lgcldpnd.h match.h network.h ruledef.h constrnt.h cstrccom.h agenda.h \ + pattern.h reorder.h retract.h sysdep.h + +evaluatn.o: evaluatn.c setup.h envrnmnt.h usrsetup.h commline.h \ + constant.h memalloc.h router.h prntutil.h moduldef.h conscomp.h \ + constrct.h symbol.h userdata.h evaluatn.h expressn.h exprnops.h \ + exprnpsr.h extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h \ + utility.h prcdrfun.h multifld.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h constrnt.h cstrccom.h agenda.h reorder.h tmpltdef.h \ + factbld.h proflfun.h sysdep.h dffnxfun.h genrccom.h genrcfun.h object.h + +expressn.o: expressn.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h evaluatn.h constant.h \ + symblcmp.h modulpsr.h + +exprnbin.o: exprnbin.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + dffctdef.h conscomp.h constrct.h moduldef.h modulpsr.h symbol.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h utility.h symblcmp.h cstrccom.h bload.h \ + exprnbin.h sysdep.h symblbin.h bsave.h network.h match.h pattern.h \ + reorder.h ruledef.h constrnt.h agenda.h genrcbin.h genrcfun.h object.h \ + multifld.h dffnxbin.h dffnxfun.h tmpltbin.h cstrcbin.h modulbin.h \ + tmpltdef.h factbld.h factmngr.h facthsh.h globlbin.h globldef.h \ + objbin.h insfun.h inscom.h + +exprnops.o: exprnops.c setup.h envrnmnt.h usrsetup.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h cstrnchk.h \ + constrnt.h cstrnutl.h cstrnops.h + +exprnpsr.o: exprnpsr.c setup.h envrnmnt.h usrsetup.h constant.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h strngrtr.h memalloc.h \ + argacces.h cstrnchk.h constrnt.h modulutl.h prcdrfun.h network.h \ + match.h pattern.h reorder.h ruledef.h cstrccom.h agenda.h genrccom.h \ + genrcfun.h object.h multifld.h dffnxfun.h + +extnfunc.o: extnfunc.c setup.h envrnmnt.h usrsetup.h constant.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h memalloc.h + +factbin.o: factbin.c setup.h envrnmnt.h usrsetup.h memalloc.h tmpltdef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h factbld.h pattern.h \ + match.h network.h ruledef.h cstrccom.h agenda.h reorder.h factmngr.h \ + facthsh.h multifld.h bload.h exprnbin.h sysdep.h symblbin.h bsave.h \ + reteutil.h rulebin.h modulbin.h cstrcbin.h factbin.h + +factbld.o: factbld.c setup.h envrnmnt.h usrsetup.h memalloc.h reteutil.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h match.h network.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h pattern.h reorder.h router.h prntutil.h \ + factcmp.h factmch.h factmngr.h facthsh.h multifld.h tmpltdef.h \ + factbld.h factgen.h factlhs.h argacces.h modulutl.h + +factcmp.o: factcmp.c setup.h envrnmnt.h usrsetup.h factbld.h pattern.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h match.h network.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h reorder.h factcmp.h tmpltdef.h \ + factmngr.h facthsh.h multifld.h + +factcom.o: factcom.c setup.h envrnmnt.h usrsetup.h memalloc.h exprnpsr.h \ + extnfunc.h symbol.h expressn.h exprnops.h userdata.h scanner.h pprint.h \ + factmngr.h facthsh.h conscomp.h constrct.h moduldef.h modulpsr.h \ + evaluatn.h constant.h utility.h symblcmp.h pattern.h match.h network.h \ + ruledef.h constrnt.h cstrccom.h agenda.h reorder.h multifld.h \ + tmpltdef.h factbld.h argacces.h router.h prntutil.h factrhs.h factmch.h \ + tmpltpsr.h tmpltutl.h modulutl.h strngrtr.h tmpltfun.h sysdep.h bload.h \ + exprnbin.h symblbin.h factcom.h + +factfun.o: factfun.c setup.h envrnmnt.h usrsetup.h extnfunc.h symbol.h \ + expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h \ + argacces.h evaluatn.h constant.h moduldef.h conscomp.h constrct.h \ + symblcmp.h modulpsr.h utility.h prntutil.h tmpltutl.h factmngr.h \ + facthsh.h pattern.h match.h network.h ruledef.h constrnt.h cstrccom.h \ + agenda.h reorder.h multifld.h tmpltdef.h factbld.h router.h factfun.h + +factgen.o: factgen.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h network.h match.h \ + pattern.h reorder.h ruledef.h constrnt.h cstrccom.h agenda.h reteutil.h \ + factmch.h factmngr.h facthsh.h multifld.h tmpltdef.h factbld.h \ + factrete.h factprt.h tmpltlhs.h factgen.h + +facthsh.o: facthsh.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h lgcldpnd.h match.h \ + network.h ruledef.h constrnt.h cstrccom.h agenda.h pattern.h reorder.h \ + facthsh.h factmngr.h multifld.h tmpltdef.h factbld.h + +factlhs.o: factlhs.c setup.h envrnmnt.h usrsetup.h cstrcpsr.h evaluatn.h \ + constant.h symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h constrct.h moduldef.h conscomp.h \ + symblcmp.h modulpsr.h utility.h pattern.h match.h network.h ruledef.h \ + constrnt.h cstrccom.h agenda.h reorder.h router.h prntutil.h tmpltpsr.h \ + tmpltdef.h factbld.h factmngr.h facthsh.h multifld.h tmpltlhs.h \ + tmpltutl.h modulutl.h factlhs.h + +factmch.o: factmch.c setup.h envrnmnt.h usrsetup.h drive.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + match.h evaluatn.h constant.h network.h ruledef.h conscomp.h constrct.h \ + moduldef.h modulpsr.h utility.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h pattern.h reorder.h engine.h lgcldpnd.h retract.h factgen.h \ + factrete.h incrrset.h memalloc.h reteutil.h router.h prntutil.h \ + tmpltdef.h factbld.h factmngr.h facthsh.h multifld.h factmch.h + +factmngr.o: factmngr.c setup.h envrnmnt.h usrsetup.h constant.h symbol.h \ + memalloc.h exprnpsr.h extnfunc.h expressn.h exprnops.h userdata.h \ + scanner.h pprint.h argacces.h evaluatn.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h router.h prntutil.h \ + strngrtr.h match.h network.h ruledef.h constrnt.h cstrccom.h agenda.h \ + pattern.h reorder.h factbld.h factqury.h factmngr.h facthsh.h \ + multifld.h tmpltdef.h reteutil.h retract.h factcmp.h filecom.h \ + factfun.h factcom.h factrhs.h factmch.h watch.h factbin.h default.h \ + commline.h engine.h lgcldpnd.h drive.h ruledlt.h tmpltbsc.h tmpltutl.h \ + tmpltfun.h + +factprt.o: factprt.c setup.h envrnmnt.h usrsetup.h symbol.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h factgen.h reorder.h ruledef.h \ + constrnt.h cstrccom.h agenda.h match.h network.h pattern.h factprt.h + +factqpsr.o: factqpsr.c setup.h envrnmnt.h usrsetup.h exprnpsr.h \ + extnfunc.h symbol.h expressn.h exprnops.h userdata.h scanner.h pprint.h \ + factqury.h factmngr.h facthsh.h conscomp.h constrct.h moduldef.h \ + modulpsr.h evaluatn.h constant.h utility.h symblcmp.h pattern.h match.h \ + network.h ruledef.h constrnt.h cstrccom.h agenda.h reorder.h multifld.h \ + tmpltdef.h factbld.h modulutl.h prcdrpsr.h prntutil.h router.h \ + strngrtr.h factqpsr.h + +factqury.o: factqury.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h modulutl.h \ + tmpltutl.h factmngr.h facthsh.h pattern.h match.h network.h ruledef.h \ + constrnt.h cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h insfun.h object.h factqpsr.h prcdrfun.h router.h prntutil.h \ + factqury.h + +factrete.o: factrete.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + evaluatn.h constant.h symblcmp.h modulpsr.h utility.h incrrset.h \ + ruledef.h constrnt.h cstrccom.h agenda.h match.h network.h pattern.h \ + reorder.h reteutil.h drive.h engine.h lgcldpnd.h retract.h factgen.h \ + factmch.h factmngr.h facthsh.h multifld.h tmpltdef.h factbld.h \ + factrete.h + +factrhs.o: factrhs.c setup.h envrnmnt.h usrsetup.h constant.h extnfunc.h \ + symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h \ + modulutl.h moduldef.h conscomp.h constrct.h evaluatn.h symblcmp.h \ + modulpsr.h utility.h pattern.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h reorder.h prntutil.h cstrcpsr.h bload.h exprnbin.h \ + sysdep.h symblbin.h tmpltpsr.h tmpltdef.h factbld.h factmngr.h \ + facthsh.h multifld.h tmpltrhs.h tmpltutl.h strngrtr.h router.h \ + factrhs.h + +filecom.o: filecom.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h commline.h cstrcpsr.h memalloc.h prcdrfun.h \ + router.h prntutil.h strngrtr.h sysdep.h filecom.h bsave.h bload.h \ + exprnbin.h symblbin.h + +filertr.o: filertr.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h sysdep.h filertr.h + +generate.o: generate.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h symbol.h exprnpsr.h extnfunc.h expressn.h exprnops.h \ + userdata.h scanner.h pprint.h argacces.h evaluatn.h moduldef.h \ + conscomp.h constrct.h symblcmp.h modulpsr.h utility.h router.h \ + prntutil.h ruledef.h constrnt.h cstrccom.h agenda.h match.h network.h \ + pattern.h reorder.h generate.h globlpsr.h + +genrcbin.o: genrcbin.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h bload.h utility.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h exprnbin.h sysdep.h symblbin.h \ + bsave.h cstrcbin.h constrct.h moduldef.h conscomp.h symblcmp.h \ + modulpsr.h evaluatn.h objbin.h object.h constrnt.h multifld.h match.h \ + network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h genrccom.h \ + genrcfun.h modulbin.h genrcbin.h router.h prntutil.h + +genrccmp.o: genrccmp.c setup.h envrnmnt.h usrsetup.h network.h match.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h pattern.h reorder.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h genrccom.h genrcfun.h object.h \ + multifld.h objcmp.h genrccmp.h + +genrccom.o: genrccom.c setup.h envrnmnt.h usrsetup.h network.h match.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h pattern.h reorder.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h bload.h exprnbin.h sysdep.h symblbin.h \ + genrcbin.h genrcfun.h object.h multifld.h genrccmp.h genrcpsr.h \ + classcom.h inscom.h insfun.h watch.h argacces.h cstrcpsr.h genrcexe.h \ + memalloc.h router.h prntutil.h genrccom.h + +genrcexe.o: genrcexe.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h insfun.h argacces.h genrccom.h genrcfun.h prcdrfun.h \ + prccode.h proflfun.h router.h prntutil.h genrcexe.h + +genrcfun.o: genrcfun.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classfun.h argacces.h cstrcpsr.h \ + genrccom.h genrcfun.h genrcexe.h memalloc.h prccode.h router.h \ + prntutil.h + +genrcpsr.o: genrcpsr.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h dffnxfun.h conscomp.h \ + constrct.h moduldef.h modulpsr.h evaluatn.h constant.h symblcmp.h \ + cstrccom.h classfun.h object.h constrnt.h multifld.h match.h network.h \ + ruledef.h agenda.h pattern.h reorder.h classcom.h memalloc.h cstrcpsr.h \ + genrccom.h genrcfun.h immthpsr.h modulutl.h prcdrpsr.h prccode.h \ + router.h prntutil.h genrcpsr.h + +globlbin.o: globlbin.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + multifld.h evaluatn.h constant.h symbol.h expressn.h exprnops.h \ + exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h globldef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + cstrccom.h bload.h exprnbin.h sysdep.h symblbin.h bsave.h globlbsc.h \ + globlbin.h modulbin.h cstrcbin.h + +globlbsc.o: globlbsc.c setup.h envrnmnt.h usrsetup.h constrct.h \ + moduldef.h conscomp.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h modulpsr.h \ + evaluatn.h constant.h utility.h watch.h globlcom.h globldef.h \ + cstrccom.h globlbin.h modulbin.h cstrcbin.h globlcmp.h globlbsc.h + +globlcmp.o: globlcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h globldef.h cstrccom.h globlcmp.h + +globlcom.o: globlcom.c setup.h envrnmnt.h usrsetup.h extnfunc.h symbol.h \ + expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h \ + argacces.h evaluatn.h constant.h moduldef.h conscomp.h constrct.h \ + symblcmp.h modulpsr.h utility.h prntutil.h router.h globldef.h \ + cstrccom.h globlcom.h + +globldef.o: globldef.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + modulpsr.h symbol.h evaluatn.h constant.h expressn.h exprnops.h \ + exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h moduldef.h \ + conscomp.h constrct.h symblcmp.h utility.h multifld.h router.h \ + prntutil.h strngrtr.h modulutl.h globlbsc.h globlpsr.h globlcom.h \ + commline.h bload.h exprnbin.h sysdep.h symblbin.h globlbin.h modulbin.h \ + cstrcbin.h globldef.h cstrccom.h globlcmp.h + +globlpsr.o: globlpsr.c setup.h envrnmnt.h usrsetup.h pprint.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h symblcmp.h modulpsr.h utility.h memalloc.h multifld.h watch.h \ + modulutl.h cstrcpsr.h globldef.h cstrccom.h globlbsc.h bload.h \ + exprnbin.h sysdep.h symblbin.h globlpsr.h + +immthpsr.o: immthpsr.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h memalloc.h cstrnutl.h genrcpsr.h genrcfun.h prccode.h \ + immthpsr.h + +incrrset.o: incrrset.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h argacces.h drive.h engine.h lgcldpnd.h \ + retract.h router.h prntutil.h incrrset.h + +inherpsr.o: inherpsr.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h memalloc.h modulutl.h router.h prntutil.h inherpsr.h + +inscom.o: inscom.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h classinf.h insfile.h insfun.h insmngr.h insmoddp.h insmult.h \ + inspsr.h lgcldpnd.h memalloc.h msgcom.h msgpass.h msgfun.h router.h \ + prntutil.h strngrtr.h sysdep.h commline.h inscom.h + +insfile.o: insfile.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h memalloc.h inscom.h insfun.h insmngr.h inspsr.h router.h \ + prntutil.h strngrtr.h symblbin.h sysdep.h factmngr.h facthsh.h \ + tmpltdef.h factbld.h insfile.h + +insfun.o: insfun.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h cstrnchk.h engine.h lgcldpnd.h retract.h inscom.h insfun.h \ + insmngr.h memalloc.h modulutl.h msgcom.h msgpass.h msgfun.h prccode.h \ + router.h prntutil.h drive.h objrtmch.h + +insmngr.o: insmngr.c setup.h envrnmnt.h usrsetup.h network.h match.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h pattern.h reorder.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h drive.h objrtmch.h object.h multifld.h \ + lgcldpnd.h classcom.h classfun.h engine.h retract.h memalloc.h insfun.h \ + modulutl.h msgcom.h msgpass.h msgfun.h prccode.h router.h prntutil.h \ + insmngr.h inscom.h watch.h + +insmoddp.o: insmoddp.c setup.h envrnmnt.h usrsetup.h network.h match.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h pattern.h reorder.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h objrtmch.h object.h multifld.h \ + argacces.h memalloc.h inscom.h insfun.h insmngr.h inspsr.h miscfun.h \ + msgcom.h msgpass.h msgfun.h prccode.h router.h prntutil.h insmoddp.h + +insmult.o: insmult.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h insfun.h object.h constrnt.h multifld.h match.h \ + network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h msgfun.h \ + msgpass.h multifun.h router.h prntutil.h insmult.h + +inspsr.o: inspsr.c setup.h envrnmnt.h usrsetup.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h multifld.h \ + match.h network.h ruledef.h agenda.h pattern.h reorder.h classfun.h \ + classinf.h prntutil.h router.h inspsr.h + +insquery.o: insquery.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h classcom.h cstrccom.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h agenda.h \ + pattern.h reorder.h classfun.h memalloc.h insfun.h insmngr.h insqypsr.h \ + prcdrfun.h router.h prntutil.h insquery.h + +insqypsr.o: insqypsr.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + insquery.h prcdrpsr.h prntutil.h router.h strngrtr.h insqypsr.h + +iofun.o: iofun.c setup.h envrnmnt.h usrsetup.h router.h prntutil.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h strngrtr.h filertr.h \ + argacces.h memalloc.h commline.h sysdep.h iofun.h + +lgcldpnd.o: lgcldpnd.c setup.h envrnmnt.h usrsetup.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h engine.h lgcldpnd.h \ + match.h network.h ruledef.h constrnt.h cstrccom.h agenda.h pattern.h \ + reorder.h retract.h reteutil.h argacces.h factmngr.h facthsh.h \ + multifld.h tmpltdef.h factbld.h insfun.h object.h + +main.o: main.c setup.h envrnmnt.h usrsetup.h sysdep.h extnfunc.h symbol.h \ + expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h \ + commline.h + +memalloc.o: memalloc.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h + +miscfun.o: miscfun.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h memalloc.h multifld.h router.h prntutil.h sysdep.h \ + dffnxfun.h cstrccom.h miscfun.h + +modulbin.o: modulbin.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + constrct.h moduldef.h conscomp.h extnfunc.h symbol.h expressn.h \ + exprnops.h exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h \ + modulpsr.h evaluatn.h constant.h utility.h bload.h exprnbin.h sysdep.h \ + symblbin.h bsave.h modulbin.h + +modulbsc.o: modulbsc.c setup.h envrnmnt.h usrsetup.h constrct.h \ + moduldef.h conscomp.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h modulpsr.h \ + evaluatn.h constant.h utility.h modulbin.h prntutil.h modulcmp.h \ + router.h argacces.h bload.h exprnbin.h sysdep.h symblbin.h modulbsc.h + +modulcmp.o: modulcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h sysdep.h modulcmp.h + +moduldef.o: moduldef.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + constant.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + argacces.h modulcmp.h modulbsc.h bload.h exprnbin.h sysdep.h symblbin.h \ + modulbin.h + +modulpsr.o: modulpsr.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + constant.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + argacces.h cstrcpsr.h modulutl.h bload.h exprnbin.h sysdep.h symblbin.h + +modulutl.o: modulutl.c setup.h envrnmnt.h usrsetup.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h modulutl.h + +msgcom.o: msgcom.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h classinf.h insfun.h insmoddp.h msgfun.h msgpass.h prccode.h \ + router.h prntutil.h bload.h exprnbin.h sysdep.h symblbin.h msgpsr.h \ + watch.h msgcom.h + +msgfun.o: msgfun.c setup.h envrnmnt.h usrsetup.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h multifld.h \ + match.h network.h ruledef.h agenda.h pattern.h reorder.h classfun.h \ + memalloc.h insfun.h msgcom.h msgpass.h prccode.h router.h prntutil.h \ + msgfun.h + +msgpass.o: msgpass.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h memalloc.h insfun.h msgcom.h msgpass.h msgfun.h prcdrfun.h \ + prccode.h proflfun.h router.h prntutil.h strngfun.h commline.h inscom.h + +msgpsr.o: msgpsr.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classfun.h memalloc.h cstrcpsr.h \ + cstrnchk.h insfun.h msgcom.h msgpass.h msgfun.h prccode.h router.h \ + prntutil.h strngrtr.h msgpsr.h + +multifld.o: multifld.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h evaluatn.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h router.h prntutil.h moduldef.h \ + conscomp.h constrct.h symblcmp.h modulpsr.h utility.h strngrtr.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h cstrccom.h \ + agenda.h pattern.h reorder.h + +multifun.o: multifun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h multifld.h \ + multifun.h prcdrpsr.h constrnt.h prcdrfun.h router.h prntutil.h \ + object.h match.h network.h ruledef.h cstrccom.h agenda.h pattern.h \ + reorder.h + +objbin.o: objbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classfun.h classini.h cstrcbin.h \ + cstrnbin.h insfun.h memalloc.h modulbin.h msgcom.h msgpass.h msgfun.h \ + prntutil.h router.h objbin.h + +objcmp.o: objcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h constrct.h \ + moduldef.h modulpsr.h symbol.h evaluatn.h constant.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h \ + utility.h symblcmp.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h classini.h cstrncmp.h objrtfnx.h objrtmch.h sysdep.h \ + objcmp.h + +objrtbin.o: objrtbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h memalloc.h insfun.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + cstrccom.h agenda.h pattern.h reorder.h objrtmch.h reteutil.h rulebin.h \ + modulbin.h cstrcbin.h objrtbin.h + +objrtbld.o: objrtbld.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h cstrnutl.h cstrnchk.h cstrnops.h drive.h inscom.h insfun.h \ + insmngr.h memalloc.h reteutil.h rulepsr.h objrtmch.h objrtgen.h \ + objrtfnx.h router.h prntutil.h objrtcmp.h objrtbin.h objrtbld.h + +objrtcmp.o: objrtcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h objrtfnx.h object.h constrnt.h multifld.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + objrtmch.h sysdep.h objrtcmp.h + +objrtfnx.o: objrtfnx.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h bload.h exprnbin.h sysdep.h symblbin.h drive.h engine.h \ + lgcldpnd.h retract.h memalloc.h objrtmch.h reteutil.h router.h \ + prntutil.h objrtfnx.h + +objrtgen.o: objrtgen.c setup.h envrnmnt.h usrsetup.h classfun.h object.h \ + constrct.h moduldef.h conscomp.h extnfunc.h symbol.h expressn.h \ + exprnops.h exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h \ + modulpsr.h evaluatn.h constant.h utility.h constrnt.h multifld.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + objrtfnx.h objrtmch.h objrtgen.h + +objrtmch.o: objrtmch.c setup.h envrnmnt.h usrsetup.h classfun.h object.h \ + constrct.h moduldef.h conscomp.h extnfunc.h symbol.h expressn.h \ + exprnops.h exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h \ + modulpsr.h evaluatn.h constant.h utility.h constrnt.h multifld.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + memalloc.h drive.h engine.h lgcldpnd.h retract.h incrrset.h reteutil.h \ + ruledlt.h router.h prntutil.h objrtfnx.h objrtmch.h insmngr.h + +parsefun.o: parsefun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h cstrcpsr.h memalloc.h \ + multifld.h prcdrpsr.h constrnt.h router.h prntutil.h strngrtr.h \ + parsefun.h + +pattern.o: pattern.c setup.h envrnmnt.h usrsetup.h constant.h constrnt.h \ + evaluatn.h symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h cstrnchk.h cstrnutl.h match.h network.h \ + ruledef.h conscomp.h constrct.h moduldef.h modulpsr.h utility.h \ + symblcmp.h cstrccom.h agenda.h pattern.h reorder.h memalloc.h \ + reteutil.h router.h prntutil.h rulecmp.h + +pprint.o: pprint.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + utility.h pprint.h + +prccode.o: prccode.c setup.h envrnmnt.h usrsetup.h memalloc.h constant.h \ + globlpsr.h expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h \ + userdata.h scanner.h pprint.h multifld.h evaluatn.h object.h constrct.h \ + moduldef.h conscomp.h symblcmp.h modulpsr.h utility.h constrnt.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + prcdrpsr.h router.h prntutil.h prccode.h + +prcdrfun.o: prcdrfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h constrnt.h cstrnchk.h \ + cstrnops.h memalloc.h multifld.h prcdrpsr.h router.h prntutil.h \ + prcdrfun.h globldef.h cstrccom.h + +prcdrpsr.o: prcdrpsr.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h constrnt.h cstrnchk.h \ + cstrnops.h cstrnutl.h memalloc.h modulutl.h multifld.h router.h \ + prntutil.h prcdrpsr.h globldef.h cstrccom.h globlpsr.h + +prdctfun.o: prdctfun.c setup.h envrnmnt.h usrsetup.h exprnpsr.h \ + extnfunc.h symbol.h expressn.h exprnops.h userdata.h scanner.h pprint.h \ + argacces.h evaluatn.h constant.h moduldef.h conscomp.h constrct.h \ + symblcmp.h modulpsr.h utility.h multifld.h router.h prntutil.h \ + prdctfun.h + +prntutil.o: prntutil.c setup.h envrnmnt.h usrsetup.h constant.h symbol.h \ + utility.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h argacces.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h router.h prntutil.h multifun.h \ + factmngr.h facthsh.h pattern.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h factbld.h inscom.h \ + object.h insfun.h insmngr.h memalloc.h + +proflfun.o: proflfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h classcom.h cstrccom.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h agenda.h \ + pattern.h reorder.h dffnxfun.h genrccom.h genrcfun.h memalloc.h \ + msgcom.h msgpass.h router.h prntutil.h sysdep.h proflfun.h + +reorder.o: reorder.c setup.h envrnmnt.h usrsetup.h cstrnutl.h constrnt.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h memalloc.h pattern.h match.h \ + network.h ruledef.h conscomp.h constrct.h moduldef.h modulpsr.h \ + utility.h symblcmp.h cstrccom.h agenda.h reorder.h prntutil.h router.h \ + rulelhs.h + +reteutil.o: reteutil.c setup.h envrnmnt.h usrsetup.h drive.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + match.h evaluatn.h constant.h network.h ruledef.h conscomp.h constrct.h \ + moduldef.h modulpsr.h utility.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h pattern.h reorder.h engine.h lgcldpnd.h retract.h incrrset.h \ + memalloc.h router.h prntutil.h reteutil.h + +retract.o: retract.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h argacces.h drive.h engine.h lgcldpnd.h \ + retract.h memalloc.h reteutil.h router.h prntutil.h + +router.o: router.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h filertr.h memalloc.h strngrtr.h sysdep.h router.h \ + prntutil.h + +rulebin.o: rulebin.c setup.h envrnmnt.h usrsetup.h memalloc.h bload.h \ + utility.h extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h \ + scanner.h pprint.h userdata.h exprnbin.h sysdep.h symblbin.h bsave.h \ + reteutil.h evaluatn.h constant.h match.h network.h ruledef.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h pattern.h reorder.h engine.h lgcldpnd.h retract.h rulebsc.h \ + rulebin.h modulbin.h cstrcbin.h + +rulebld.o: rulebld.c setup.h envrnmnt.h usrsetup.h constant.h constrct.h \ + moduldef.h conscomp.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h modulpsr.h \ + evaluatn.h utility.h drive.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h pattern.h reorder.h incrrset.h memalloc.h \ + reteutil.h router.h prntutil.h rulebld.h watch.h + +rulebsc.o: rulebsc.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h router.h prntutil.h watch.h ruledef.h constrnt.h \ + cstrccom.h agenda.h match.h network.h pattern.h reorder.h engine.h \ + lgcldpnd.h retract.h rulebin.h modulbin.h cstrcbin.h rulecmp.h \ + rulebsc.h + +rulecmp.o: rulecmp.c setup.h envrnmnt.h usrsetup.h factbld.h pattern.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h match.h network.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h reorder.h reteutil.h rulecmp.h + +rulecom.o: rulecom.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h crstrtgy.h agenda.h ruledef.h constrnt.h \ + cstrccom.h network.h match.h pattern.h reorder.h engine.h lgcldpnd.h \ + retract.h incrrset.h memalloc.h reteutil.h router.h prntutil.h \ + ruledlt.h watch.h rulebin.h modulbin.h cstrcbin.h rulecom.h + +rulecstr.o: rulecstr.c setup.h envrnmnt.h usrsetup.h analysis.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h reorder.h ruledef.h conscomp.h constrct.h moduldef.h \ + modulpsr.h evaluatn.h constant.h utility.h symblcmp.h constrnt.h \ + cstrccom.h agenda.h match.h network.h pattern.h cstrnchk.h cstrnops.h \ + cstrnutl.h prcdrpsr.h router.h prntutil.h rulepsr.h rulecstr.h + +ruledef.o: ruledef.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h drive.h engine.h lgcldpnd.h retract.h \ + memalloc.h rulebsc.h rulecom.h rulepsr.h ruledlt.h bload.h exprnbin.h \ + sysdep.h symblbin.h rulebin.h modulbin.h cstrcbin.h rulecmp.h + +ruledlt.o: ruledlt.c setup.h envrnmnt.h usrsetup.h memalloc.h engine.h \ + lgcldpnd.h match.h evaluatn.h constant.h symbol.h expressn.h exprnops.h \ + exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h network.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h pattern.h reorder.h retract.h reteutil.h \ + drive.h bload.h exprnbin.h sysdep.h symblbin.h ruledlt.h + +rulelhs.o: rulelhs.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h argacces.h cstrnchk.h memalloc.h router.h \ + prntutil.h rulelhs.h + +rulepsr.o: rulepsr.c setup.h envrnmnt.h usrsetup.h analysis.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + reorder.h ruledef.h conscomp.h constrct.h moduldef.h modulpsr.h \ + evaluatn.h constant.h utility.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h match.h network.h pattern.h cstrcpsr.h cstrnchk.h cstrnops.h \ + engine.h lgcldpnd.h retract.h incrrset.h memalloc.h prccode.h \ + prcdrpsr.h router.h prntutil.h rulebld.h rulebsc.h rulecstr.h ruledlt.h \ + rulelhs.h watch.h tmpltfun.h factmngr.h facthsh.h multifld.h tmpltdef.h \ + factbld.h bload.h exprnbin.h sysdep.h symblbin.h rulepsr.h + +scanner.o: scanner.c setup.h envrnmnt.h usrsetup.h constant.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h memalloc.h + +sortfun.o: sortfun.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h dffnxfun.h cstrccom.h memalloc.h multifld.h \ + sysdep.h sortfun.h + +strngfun.o: strngfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h cstrcpsr.h engine.h \ + lgcldpnd.h match.h network.h ruledef.h constrnt.h cstrccom.h agenda.h \ + pattern.h reorder.h retract.h memalloc.h prcdrpsr.h router.h prntutil.h \ + strngrtr.h drive.h strngfun.h + +strngrtr.o: strngrtr.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + strngrtr.h + +symblbin.o: symblbin.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h bload.h exprnbin.h sysdep.h \ + symblbin.h bsave.h cstrnbin.h constrnt.h memalloc.h router.h prntutil.h + +symblcmp.o: symblcmp.c setup.h envrnmnt.h usrsetup.h symbol.h memalloc.h \ + constant.h exprnpsr.h extnfunc.h expressn.h exprnops.h userdata.h \ + scanner.h pprint.h cstrccom.h moduldef.h conscomp.h constrct.h \ + evaluatn.h symblcmp.h modulpsr.h utility.h argacces.h cstrncmp.h \ + constrnt.h router.h prntutil.h sysdep.h + +symbol.o: symbol.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h argacces.h + +sysdep.o: sysdep.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h bmathfun.h commline.h constrnt.h cstrcpsr.h \ + emathfun.h filecom.h iofun.h memalloc.h miscfun.h multifld.h multifun.h \ + parsefun.h prccode.h prdctfun.h proflfun.h prcdrfun.h router.h \ + prntutil.h sortfun.h strngfun.h textpro.h watch.h sysdep.h dffctdef.h \ + cstrccom.h ruledef.h agenda.h match.h network.h pattern.h reorder.h \ + genrccom.h genrcfun.h object.h dffnxfun.h globldef.h tmpltdef.h \ + factbld.h factmngr.h facthsh.h classini.h ed.h + +textpro.o: textpro.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h commline.h memalloc.h router.h prntutil.h sysdep.h \ + textpro.h + +tmpltbin.o: tmpltbin.c setup.h envrnmnt.h usrsetup.h memalloc.h bload.h \ + utility.h extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h \ + scanner.h pprint.h userdata.h exprnbin.h sysdep.h symblbin.h bsave.h \ + factbin.h factbld.h pattern.h evaluatn.h constant.h match.h network.h \ + ruledef.h conscomp.h constrct.h moduldef.h modulpsr.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h reorder.h cstrnbin.h factmngr.h \ + facthsh.h multifld.h tmpltdef.h tmpltpsr.h tmpltutl.h tmpltbin.h \ + cstrcbin.h modulbin.h + +tmpltbsc.o: tmpltbsc.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h cstrccom.h factrhs.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h constrnt.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h cstrcpsr.h tmpltpsr.h tmpltbin.h cstrcbin.h modulbin.h \ + tmpltcmp.h tmpltutl.h tmpltbsc.h + +tmpltcmp.o: tmpltcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h factcmp.h pattern.h match.h network.h \ + ruledef.h constrnt.h cstrccom.h agenda.h reorder.h cstrncmp.h \ + tmpltdef.h factbld.h factmngr.h facthsh.h multifld.h tmpltcmp.h + +tmpltdef.o: tmpltdef.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + exprnops.h expressn.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h cstrccom.h moduldef.h conscomp.h constrct.h \ + evaluatn.h constant.h symblcmp.h modulpsr.h utility.h network.h match.h \ + pattern.h reorder.h ruledef.h constrnt.h agenda.h tmpltpsr.h tmpltdef.h \ + factbld.h factmngr.h facthsh.h multifld.h tmpltbsc.h tmpltutl.h \ + tmpltfun.h router.h prntutil.h modulutl.h cstrnchk.h bload.h exprnbin.h \ + sysdep.h symblbin.h tmpltbin.h cstrcbin.h modulbin.h tmpltcmp.h + +tmpltfun.o: tmpltfun.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h symbol.h scanner.h pprint.h exprnpsr.h extnfunc.h expressn.h \ + exprnops.h userdata.h argacces.h evaluatn.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h router.h prntutil.h \ + cstrnchk.h constrnt.h default.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h commline.h factrhs.h modulutl.h tmpltlhs.h tmpltutl.h \ + tmpltrhs.h tmpltfun.h + +tmpltlhs.o: tmpltlhs.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h symbol.h scanner.h pprint.h exprnpsr.h extnfunc.h expressn.h \ + exprnops.h userdata.h router.h prntutil.h moduldef.h conscomp.h \ + constrct.h evaluatn.h symblcmp.h modulpsr.h utility.h constrnt.h \ + reorder.h ruledef.h cstrccom.h agenda.h match.h network.h pattern.h \ + factrhs.h factmngr.h facthsh.h multifld.h tmpltdef.h factbld.h \ + modulutl.h tmpltutl.h tmpltlhs.h + +tmpltpsr.o: tmpltpsr.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h symbol.h scanner.h pprint.h exprnpsr.h extnfunc.h expressn.h \ + exprnops.h userdata.h router.h prntutil.h moduldef.h conscomp.h \ + constrct.h evaluatn.h symblcmp.h modulpsr.h utility.h factmngr.h \ + facthsh.h pattern.h match.h network.h ruledef.h constrnt.h cstrccom.h \ + agenda.h reorder.h multifld.h tmpltdef.h factbld.h cstrnchk.h \ + cstrnpsr.h cstrcpsr.h bload.h exprnbin.h sysdep.h symblbin.h default.h \ + watch.h cstrnutl.h tmpltbsc.h tmpltpsr.h + +tmpltrhs.o: tmpltrhs.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h router.h tmpltfun.h \ + factmngr.h facthsh.h pattern.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h factbld.h factrhs.h \ + modulutl.h default.h tmpltutl.h tmpltlhs.h tmpltrhs.h + +tmpltutl.o: tmpltutl.c setup.h envrnmnt.h usrsetup.h extnfunc.h symbol.h \ + expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h \ + memalloc.h constrct.h moduldef.h conscomp.h symblcmp.h modulpsr.h \ + evaluatn.h constant.h utility.h router.h prntutil.h argacces.h \ + cstrnchk.h constrnt.h tmpltfun.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h tmpltpsr.h modulutl.h watch.h tmpltbsc.h tmpltutl.h + +userdata.o: userdata.c setup.h envrnmnt.h usrsetup.h userdata.h + +userfunctions.o: userfunctions.c setup.h envrnmnt.h usrsetup.h extnfunc.h \ + symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h + +utility.o: utility.c setup.h envrnmnt.h usrsetup.h evaluatn.h constant.h \ + symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h facthsh.h factmngr.h conscomp.h constrct.h \ + moduldef.h modulpsr.h utility.h symblcmp.h pattern.h match.h network.h \ + ruledef.h constrnt.h cstrccom.h agenda.h reorder.h multifld.h \ + tmpltdef.h factbld.h memalloc.h prntutil.h + +watch.o: watch.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h argacces.h watch.h \ No newline at end of file --- clips-6.24.orig/makefiles/makefile.lib +++ clips-6.24/makefiles/makefile.lib @@ -0,0 +1,1262 @@ +# The GNU Make Manual +# http://www.gnu.org/software/make/manual/make.html + +OBJS = agenda.o analysis.o argacces.o bload.o bmathfun.o bsave.o \ + classcom.o classexm.o classfun.o classinf.o classini.o \ + classpsr.o clsltpsr.o commline.o conscomp.o constrct.o \ + constrnt.o crstrtgy.o cstrcbin.o cstrccom.o cstrcpsr.o \ + cstrnbin.o cstrnchk.o cstrncmp.o cstrnops.o cstrnpsr.o \ + cstrnutl.o default.o defins.o developr.o dffctbin.o dffctbsc.o \ + dffctcmp.o dffctdef.o dffctpsr.o dffnxbin.o dffnxcmp.o \ + dffnxexe.o dffnxfun.o dffnxpsr.o dfinsbin.o dfinscmp.o drive.o \ + edbasic.o edmain.o edmisc.o edstruct.o edterm.o emathfun.o \ + engine.o envrnmnt.o evaluatn.o expressn.o exprnbin.o exprnops.o \ + exprnpsr.o extnfunc.o factbin.o factbld.o factcmp.o factcom.o \ + factfun.o factgen.o facthsh.o factlhs.o factmch.o factmngr.o \ + factprt.o factqpsr.o factqury.o factrete.o factrhs.o filecom.o filertr.o \ + generate.o genrcbin.o genrccmp.o genrccom.o genrcexe.o genrcfun.o \ + genrcpsr.o globlbin.o globlbsc.o globlcmp.o globlcom.o \ + globldef.o globlpsr.o immthpsr.o incrrset.o inherpsr.o \ + inscom.o insfile.o insfun.o insmngr.o insmoddp.o insmult.o \ + inspsr.o insquery.o insqypsr.o iofun.o lgcldpnd.o \ + memalloc.o miscfun.o modulbin.o modulbsc.o modulcmp.o moduldef.o \ + modulpsr.o modulutl.o msgcom.o msgfun.o msgpass.o msgpsr.o \ + multifld.o multifun.o objbin.o objcmp.o objrtbin.o objrtbld.o \ + objrtcmp.o objrtfnx.o objrtgen.o objrtmch.o parsefun.o pattern.o \ + pprint.o prccode.o prcdrfun.o prcdrpsr.o prdctfun.o prntutil.o \ + proflfun.o reorder.o reteutil.o retract.o router.o rulebin.o \ + rulebld.o rulebsc.o rulecmp.o rulecom.o rulecstr.o ruledef.o \ + ruledlt.o rulelhs.o rulepsr.o scanner.o sortfun.o strngfun.o \ + strngrtr.o symblbin.o symblcmp.o symbol.o sysdep.o textpro.o \ + tmpltbin.o tmpltbsc.o tmpltcmp.o tmpltdef.o tmpltfun.o tmpltlhs.o \ + tmpltpsr.o tmpltrhs.o tmpltutl.o userdata.o userfunctions.o utility.o watch.o + +.c.o : + gcc -c -Wall -Wundef -Wpointer-arith -Wshadow -Wcast-qual \ + -Wcast-align -Winline -Wmissing-declarations -Wredundant-decls \ + -Wmissing-prototypes -Wnested-externs \ + -Wstrict-prototypes -Waggregate-return -Wno-implicit $< + +# Creating Unix Libraries +# http://www.cs.duke.edu/~ola/courses/programming/libraries.html + +# Compiling CLIPS using the library +# gcc -o clips main.c -L. -lm -ltermcap -lclips + +libclips.a : $(OBJS) + rm -f $@ + ar cq $@ $(OBJS) + +# man gcc +# Dependencies generated using "gcc -MM *.c" + +agenda.o: agenda.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h crstrtgy.h agenda.h ruledef.h constrnt.h \ + cstrccom.h network.h match.h pattern.h reorder.h engine.h lgcldpnd.h \ + retract.h memalloc.h modulutl.h multifld.h reteutil.h router.h \ + prntutil.h rulebsc.h strngrtr.h sysdep.h watch.h + +analysis.o: analysis.c setup.h envrnmnt.h usrsetup.h constant.h symbol.h \ + memalloc.h exprnpsr.h extnfunc.h expressn.h exprnops.h userdata.h \ + scanner.h pprint.h reorder.h ruledef.h conscomp.h constrct.h moduldef.h \ + modulpsr.h evaluatn.h utility.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h match.h network.h pattern.h generate.h router.h prntutil.h \ + cstrnchk.h cstrnutl.h cstrnops.h rulecstr.h modulutl.h analysis.h \ + globldef.h + +argacces.o: argacces.c setup.h envrnmnt.h usrsetup.h extnfunc.h symbol.h \ + expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h evaluatn.h constant.h \ + symblcmp.h modulpsr.h utility.h cstrnchk.h constrnt.h insfun.h object.h \ + multifld.h match.h network.h ruledef.h cstrccom.h agenda.h pattern.h \ + reorder.h factmngr.h facthsh.h tmpltdef.h factbld.h argacces.h + +bload.o: bload.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h bsave.h cstrnbin.h constrnt.h memalloc.h router.h \ + prntutil.h bload.h exprnbin.h sysdep.h symblbin.h + +bmathfun.o: bmathfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h router.h prntutil.h \ + bmathfun.h + +bsave.o: bsave.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h bload.h exprnbin.h sysdep.h symblbin.h cstrnbin.h \ + constrnt.h memalloc.h router.h prntutil.h bsave.h + +classcom.o: classcom.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h argacces.h evaluatn.h \ + constant.h moduldef.h conscomp.h constrct.h symblcmp.h modulpsr.h \ + classfun.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + cstrccom.h agenda.h pattern.h reorder.h classini.h modulutl.h msgcom.h \ + msgpass.h router.h prntutil.h classcom.h + +classexm.o: classexm.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h classcom.h cstrccom.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h agenda.h \ + pattern.h reorder.h classfun.h classini.h insfun.h memalloc.h msgcom.h \ + msgpass.h msgfun.h router.h prntutil.h strngrtr.h classexm.h + +classfun.o: classfun.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classini.h cstrcpsr.h inscom.h insfun.h \ + insmngr.h memalloc.h modulutl.h msgfun.h msgpass.h router.h prntutil.h \ + classfun.h + +classinf.o: classinf.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h classcom.h cstrccom.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h agenda.h \ + pattern.h reorder.h classexm.h classfun.h classini.h memalloc.h \ + insfun.h msgcom.h msgpass.h msgfun.h prntutil.h classinf.h + +classini.o: classini.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classexm.h classfun.h classinf.h classpsr.h cstrcpsr.h inscom.h \ + insfun.h memalloc.h modulutl.h msgcom.h msgpass.h watch.h defins.h \ + insquery.h bload.h exprnbin.h sysdep.h symblbin.h objbin.h objcmp.h \ + objrtbld.h classini.h + +classpsr.o: classpsr.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classfun.h clsltpsr.h cstrcpsr.h \ + inherpsr.h memalloc.h modulutl.h msgpsr.h router.h prntutil.h \ + classpsr.h + +clsltpsr.o: clsltpsr.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h cstrnchk.h cstrnpsr.h cstrnutl.h default.h insfun.h \ + memalloc.h prntutil.h router.h clsltpsr.h + +commline.o: commline.c setup.h envrnmnt.h usrsetup.h constant.h \ + argacces.h expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h \ + userdata.h scanner.h pprint.h evaluatn.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h cstrcpsr.h filecom.h \ + memalloc.h prcdrfun.h prcdrpsr.h constrnt.h router.h prntutil.h \ + strngrtr.h commline.h + +conscomp.o: conscomp.c setup.h envrnmnt.h usrsetup.h symbol.h memalloc.h \ + constant.h exprnpsr.h extnfunc.h expressn.h exprnops.h userdata.h \ + scanner.h pprint.h cstrccom.h moduldef.h conscomp.h constrct.h \ + evaluatn.h symblcmp.h modulpsr.h utility.h argacces.h cstrncmp.h \ + constrnt.h router.h prntutil.h sysdep.h modulcmp.h network.h match.h \ + pattern.h reorder.h ruledef.h agenda.h dffnxcmp.h dffnxfun.h tmpltcmp.h \ + globlcmp.h genrccmp.h genrcfun.h object.h multifld.h objcmp.h + +constrct.o: constrct.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h watch.h \ + prcdrfun.h prcdrpsr.h constrnt.h argacces.h multifld.h sysdep.h \ + commline.h + +constrnt.o: constrnt.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h multifld.h \ + router.h prntutil.h constrnt.h + +crstrtgy.o: crstrtgy.c setup.h envrnmnt.h usrsetup.h constant.h pattern.h \ + evaluatn.h symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h match.h network.h ruledef.h conscomp.h \ + constrct.h moduldef.h modulpsr.h utility.h symblcmp.h constrnt.h \ + cstrccom.h agenda.h reorder.h reteutil.h argacces.h crstrtgy.h + +cstrcbin.o: cstrcbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h moduldef.h conscomp.h \ + constrct.h evaluatn.h constant.h symblcmp.h modulpsr.h cstrcbin.h + +cstrccom.o: cstrccom.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h argacces.h multifld.h \ + modulutl.h router.h prntutil.h commline.h bload.h exprnbin.h sysdep.h \ + symblbin.h cstrcpsr.h cstrccom.h + +cstrcpsr.o: cstrcpsr.c setup.h envrnmnt.h usrsetup.h router.h prntutil.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h watch.h prcdrpsr.h constrnt.h \ + modulutl.h sysdep.h cstrcpsr.h + +cstrnbin.o: cstrnbin.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h bload.h \ + exprnbin.h sysdep.h symblbin.h bsave.h cstrnbin.h constrnt.h + +cstrnchk.o: cstrnchk.c setup.h envrnmnt.h usrsetup.h router.h prntutil.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h multifld.h cstrnutl.h \ + constrnt.h inscom.h object.h match.h network.h ruledef.h cstrccom.h \ + agenda.h pattern.h reorder.h insfun.h classcom.h classexm.h cstrnchk.h + +cstrncmp.o: cstrncmp.c setup.h envrnmnt.h usrsetup.h constant.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h memalloc.h router.h prntutil.h sysdep.h \ + cstrncmp.h constrnt.h + +cstrnops.o: cstrnops.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + multifld.h constrnt.h cstrnchk.h cstrnutl.h cstrnops.h + +cstrnpsr.o: cstrnpsr.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + cstrnutl.h constrnt.h cstrnchk.h cstrnpsr.h + +cstrnutl.o: cstrnutl.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + multifld.h argacces.h cstrnutl.h constrnt.h + +default.o: default.c setup.h envrnmnt.h usrsetup.h constant.h constrnt.h \ + evaluatn.h symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h cstrnchk.h multifld.h inscom.h object.h \ + constrct.h moduldef.h conscomp.h symblcmp.h modulpsr.h utility.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + insfun.h router.h prntutil.h factmngr.h facthsh.h tmpltdef.h factbld.h \ + cstrnutl.h default.h + +defins.o: defins.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h dfinsbin.h defins.h \ + conscomp.h constrct.h moduldef.h modulpsr.h evaluatn.h constant.h \ + symblcmp.h cstrccom.h object.h constrnt.h multifld.h match.h network.h \ + ruledef.h agenda.h pattern.h reorder.h dfinscmp.h argacces.h classcom.h \ + classfun.h cstrcpsr.h insfun.h inspsr.h memalloc.h router.h prntutil.h + +developr.o: developr.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h inscom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h cstrccom.h agenda.h pattern.h \ + reorder.h insfun.h modulutl.h router.h prntutil.h tmpltdef.h factbld.h \ + factmngr.h facthsh.h classcom.h classfun.h objrtmch.h developr.h + +dffctbin.o: dffctbin.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + dffctdef.h conscomp.h constrct.h moduldef.h modulpsr.h symbol.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h utility.h symblcmp.h cstrccom.h bload.h \ + exprnbin.h sysdep.h symblbin.h bsave.h dffctbin.h modulbin.h cstrcbin.h + +dffctbsc.o: dffctbsc.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h cstrccom.h factrhs.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h constrnt.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h cstrcpsr.h dffctpsr.h dffctdef.h dffctbin.h modulbin.h \ + cstrcbin.h dffctcmp.h dffctbsc.h + +dffctcmp.o: dffctcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h dffctdef.h cstrccom.h dffctcmp.h + +dffctdef.o: dffctdef.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + dffctpsr.h dffctbsc.h evaluatn.h constant.h symbol.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h bload.h \ + utility.h exprnbin.h sysdep.h symblbin.h dffctbin.h modulbin.h \ + moduldef.h conscomp.h constrct.h symblcmp.h modulpsr.h cstrcbin.h \ + dffctcmp.h dffctdef.h cstrccom.h + +dffctpsr.o: dffctpsr.c setup.h envrnmnt.h usrsetup.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h cstrcpsr.h factrhs.h \ + factmngr.h facthsh.h pattern.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h factbld.h bload.h \ + exprnbin.h sysdep.h symblbin.h dffctdef.h dffctbsc.h dffctpsr.h + +dffnxbin.o: dffnxbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h memalloc.h cstrcbin.h \ + constrct.h moduldef.h conscomp.h symblcmp.h modulpsr.h evaluatn.h \ + constant.h modulbin.h dffnxbin.h dffnxfun.h cstrccom.h + +dffnxcmp.o: dffnxcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h dffnxcmp.h dffnxfun.h cstrccom.h + +dffnxexe.o: dffnxexe.c setup.h envrnmnt.h usrsetup.h constrct.h \ + moduldef.h conscomp.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h modulpsr.h \ + evaluatn.h constant.h utility.h prcdrfun.h prccode.h proflfun.h \ + router.h prntutil.h watch.h dffnxexe.h dffnxfun.h cstrccom.h + +dffnxfun.o: dffnxfun.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h dffnxbin.h dffnxfun.h \ + conscomp.h constrct.h moduldef.h modulpsr.h evaluatn.h constant.h \ + symblcmp.h cstrccom.h dffnxcmp.h cstrcpsr.h dffnxpsr.h dffnxexe.h \ + watch.h argacces.h memalloc.h router.h prntutil.h + +dffnxpsr.o: dffnxpsr.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h network.h match.h evaluatn.h \ + constant.h pattern.h reorder.h ruledef.h conscomp.h constrct.h \ + moduldef.h modulpsr.h symblcmp.h constrnt.h cstrccom.h agenda.h \ + genrccom.h genrcfun.h object.h multifld.h cstrcpsr.h dffnxfun.h \ + memalloc.h prccode.h router.h prntutil.h dffnxpsr.h + +dfinsbin.o: dfinsbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h memalloc.h cstrcbin.h \ + constrct.h moduldef.h conscomp.h symblcmp.h modulpsr.h evaluatn.h \ + constant.h defins.h cstrccom.h object.h constrnt.h multifld.h match.h \ + network.h ruledef.h agenda.h pattern.h reorder.h modulbin.h dfinsbin.h + +dfinscmp.o: dfinscmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h defins.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + dfinscmp.h + +drive.o: drive.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h engine.h lgcldpnd.h retract.h memalloc.h \ + prntutil.h reteutil.h router.h incrrset.h drive.h + +edbasic.o: edbasic.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h + +edmain.o: edmain.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h sysdep.h + +edmisc.o: edmisc.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h cstrcpsr.h + +edstruct.o: edstruct.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h + +edterm.o: edterm.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h + +emathfun.o: emathfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h router.h prntutil.h \ + emathfun.h + +engine.o: engine.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h argacces.h factmngr.h facthsh.h multifld.h \ + tmpltdef.h factbld.h inscom.h object.h insfun.h memalloc.h modulutl.h \ + prccode.h prcdrfun.h proflfun.h reteutil.h retract.h router.h \ + prntutil.h ruledlt.h sysdep.h watch.h engine.h lgcldpnd.h + +envrnmnt.o: envrnmnt.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h router.h engine.h \ + lgcldpnd.h match.h network.h ruledef.h constrnt.h cstrccom.h agenda.h \ + pattern.h reorder.h retract.h sysdep.h + +evaluatn.o: evaluatn.c setup.h envrnmnt.h usrsetup.h commline.h \ + constant.h memalloc.h router.h prntutil.h moduldef.h conscomp.h \ + constrct.h symbol.h userdata.h evaluatn.h expressn.h exprnops.h \ + exprnpsr.h extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h \ + utility.h prcdrfun.h multifld.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h constrnt.h cstrccom.h agenda.h reorder.h tmpltdef.h \ + factbld.h proflfun.h sysdep.h dffnxfun.h genrccom.h genrcfun.h object.h + +expressn.o: expressn.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h evaluatn.h constant.h \ + symblcmp.h modulpsr.h + +exprnbin.o: exprnbin.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + dffctdef.h conscomp.h constrct.h moduldef.h modulpsr.h symbol.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h utility.h symblcmp.h cstrccom.h bload.h \ + exprnbin.h sysdep.h symblbin.h bsave.h network.h match.h pattern.h \ + reorder.h ruledef.h constrnt.h agenda.h genrcbin.h genrcfun.h object.h \ + multifld.h dffnxbin.h dffnxfun.h tmpltbin.h cstrcbin.h modulbin.h \ + tmpltdef.h factbld.h factmngr.h facthsh.h globlbin.h globldef.h \ + objbin.h insfun.h inscom.h + +exprnops.o: exprnops.c setup.h envrnmnt.h usrsetup.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h cstrnchk.h \ + constrnt.h cstrnutl.h cstrnops.h + +exprnpsr.o: exprnpsr.c setup.h envrnmnt.h usrsetup.h constant.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h strngrtr.h memalloc.h \ + argacces.h cstrnchk.h constrnt.h modulutl.h prcdrfun.h network.h \ + match.h pattern.h reorder.h ruledef.h cstrccom.h agenda.h genrccom.h \ + genrcfun.h object.h multifld.h dffnxfun.h + +extnfunc.o: extnfunc.c setup.h envrnmnt.h usrsetup.h constant.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h memalloc.h + +factbin.o: factbin.c setup.h envrnmnt.h usrsetup.h memalloc.h tmpltdef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h factbld.h pattern.h \ + match.h network.h ruledef.h cstrccom.h agenda.h reorder.h factmngr.h \ + facthsh.h multifld.h bload.h exprnbin.h sysdep.h symblbin.h bsave.h \ + reteutil.h rulebin.h modulbin.h cstrcbin.h factbin.h + +factbld.o: factbld.c setup.h envrnmnt.h usrsetup.h memalloc.h reteutil.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h match.h network.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h pattern.h reorder.h router.h prntutil.h \ + factcmp.h factmch.h factmngr.h facthsh.h multifld.h tmpltdef.h \ + factbld.h factgen.h factlhs.h argacces.h modulutl.h + +factcmp.o: factcmp.c setup.h envrnmnt.h usrsetup.h factbld.h pattern.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h match.h network.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h reorder.h factcmp.h tmpltdef.h \ + factmngr.h facthsh.h multifld.h + +factcom.o: factcom.c setup.h envrnmnt.h usrsetup.h memalloc.h exprnpsr.h \ + extnfunc.h symbol.h expressn.h exprnops.h userdata.h scanner.h pprint.h \ + factmngr.h facthsh.h conscomp.h constrct.h moduldef.h modulpsr.h \ + evaluatn.h constant.h utility.h symblcmp.h pattern.h match.h network.h \ + ruledef.h constrnt.h cstrccom.h agenda.h reorder.h multifld.h \ + tmpltdef.h factbld.h argacces.h router.h prntutil.h factrhs.h factmch.h \ + tmpltpsr.h tmpltutl.h modulutl.h strngrtr.h tmpltfun.h sysdep.h bload.h \ + exprnbin.h symblbin.h factcom.h + +factfun.o: factfun.c setup.h envrnmnt.h usrsetup.h extnfunc.h symbol.h \ + expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h \ + argacces.h evaluatn.h constant.h moduldef.h conscomp.h constrct.h \ + symblcmp.h modulpsr.h utility.h prntutil.h tmpltutl.h factmngr.h \ + facthsh.h pattern.h match.h network.h ruledef.h constrnt.h cstrccom.h \ + agenda.h reorder.h multifld.h tmpltdef.h factbld.h router.h factfun.h + +factgen.o: factgen.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h network.h match.h \ + pattern.h reorder.h ruledef.h constrnt.h cstrccom.h agenda.h reteutil.h \ + factmch.h factmngr.h facthsh.h multifld.h tmpltdef.h factbld.h \ + factrete.h factprt.h tmpltlhs.h factgen.h + +facthsh.o: facthsh.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h lgcldpnd.h match.h \ + network.h ruledef.h constrnt.h cstrccom.h agenda.h pattern.h reorder.h \ + facthsh.h factmngr.h multifld.h tmpltdef.h factbld.h + +factlhs.o: factlhs.c setup.h envrnmnt.h usrsetup.h cstrcpsr.h evaluatn.h \ + constant.h symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h constrct.h moduldef.h conscomp.h \ + symblcmp.h modulpsr.h utility.h pattern.h match.h network.h ruledef.h \ + constrnt.h cstrccom.h agenda.h reorder.h router.h prntutil.h tmpltpsr.h \ + tmpltdef.h factbld.h factmngr.h facthsh.h multifld.h tmpltlhs.h \ + tmpltutl.h modulutl.h factlhs.h + +factmch.o: factmch.c setup.h envrnmnt.h usrsetup.h drive.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + match.h evaluatn.h constant.h network.h ruledef.h conscomp.h constrct.h \ + moduldef.h modulpsr.h utility.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h pattern.h reorder.h engine.h lgcldpnd.h retract.h factgen.h \ + factrete.h incrrset.h memalloc.h reteutil.h router.h prntutil.h \ + tmpltdef.h factbld.h factmngr.h facthsh.h multifld.h factmch.h + +factmngr.o: factmngr.c setup.h envrnmnt.h usrsetup.h constant.h symbol.h \ + memalloc.h exprnpsr.h extnfunc.h expressn.h exprnops.h userdata.h \ + scanner.h pprint.h argacces.h evaluatn.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h router.h prntutil.h \ + strngrtr.h match.h network.h ruledef.h constrnt.h cstrccom.h agenda.h \ + pattern.h reorder.h factbld.h factqury.h factmngr.h facthsh.h \ + multifld.h tmpltdef.h reteutil.h retract.h factcmp.h filecom.h \ + factfun.h factcom.h factrhs.h factmch.h watch.h factbin.h default.h \ + commline.h engine.h lgcldpnd.h drive.h ruledlt.h tmpltbsc.h tmpltutl.h \ + tmpltfun.h + +factprt.o: factprt.c setup.h envrnmnt.h usrsetup.h symbol.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h factgen.h reorder.h ruledef.h \ + constrnt.h cstrccom.h agenda.h match.h network.h pattern.h factprt.h + +factqpsr.o: factqpsr.c setup.h envrnmnt.h usrsetup.h exprnpsr.h \ + extnfunc.h symbol.h expressn.h exprnops.h userdata.h scanner.h pprint.h \ + factqury.h factmngr.h facthsh.h conscomp.h constrct.h moduldef.h \ + modulpsr.h evaluatn.h constant.h utility.h symblcmp.h pattern.h match.h \ + network.h ruledef.h constrnt.h cstrccom.h agenda.h reorder.h multifld.h \ + tmpltdef.h factbld.h modulutl.h prcdrpsr.h prntutil.h router.h \ + strngrtr.h factqpsr.h + +factqury.o: factqury.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h modulutl.h \ + tmpltutl.h factmngr.h facthsh.h pattern.h match.h network.h ruledef.h \ + constrnt.h cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h insfun.h object.h factqpsr.h prcdrfun.h router.h prntutil.h \ + factqury.h + +factrete.o: factrete.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + evaluatn.h constant.h symblcmp.h modulpsr.h utility.h incrrset.h \ + ruledef.h constrnt.h cstrccom.h agenda.h match.h network.h pattern.h \ + reorder.h reteutil.h drive.h engine.h lgcldpnd.h retract.h factgen.h \ + factmch.h factmngr.h facthsh.h multifld.h tmpltdef.h factbld.h \ + factrete.h + +factrhs.o: factrhs.c setup.h envrnmnt.h usrsetup.h constant.h extnfunc.h \ + symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h \ + modulutl.h moduldef.h conscomp.h constrct.h evaluatn.h symblcmp.h \ + modulpsr.h utility.h pattern.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h reorder.h prntutil.h cstrcpsr.h bload.h exprnbin.h \ + sysdep.h symblbin.h tmpltpsr.h tmpltdef.h factbld.h factmngr.h \ + facthsh.h multifld.h tmpltrhs.h tmpltutl.h strngrtr.h router.h \ + factrhs.h + +filecom.o: filecom.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h commline.h cstrcpsr.h memalloc.h prcdrfun.h \ + router.h prntutil.h strngrtr.h sysdep.h filecom.h bsave.h bload.h \ + exprnbin.h symblbin.h + +filertr.o: filertr.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h sysdep.h filertr.h + +generate.o: generate.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h symbol.h exprnpsr.h extnfunc.h expressn.h exprnops.h \ + userdata.h scanner.h pprint.h argacces.h evaluatn.h moduldef.h \ + conscomp.h constrct.h symblcmp.h modulpsr.h utility.h router.h \ + prntutil.h ruledef.h constrnt.h cstrccom.h agenda.h match.h network.h \ + pattern.h reorder.h generate.h globlpsr.h + +genrcbin.o: genrcbin.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h bload.h utility.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h exprnbin.h sysdep.h symblbin.h \ + bsave.h cstrcbin.h constrct.h moduldef.h conscomp.h symblcmp.h \ + modulpsr.h evaluatn.h objbin.h object.h constrnt.h multifld.h match.h \ + network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h genrccom.h \ + genrcfun.h modulbin.h genrcbin.h router.h prntutil.h + +genrccmp.o: genrccmp.c setup.h envrnmnt.h usrsetup.h network.h match.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h pattern.h reorder.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h genrccom.h genrcfun.h object.h \ + multifld.h objcmp.h genrccmp.h + +genrccom.o: genrccom.c setup.h envrnmnt.h usrsetup.h network.h match.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h pattern.h reorder.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h bload.h exprnbin.h sysdep.h symblbin.h \ + genrcbin.h genrcfun.h object.h multifld.h genrccmp.h genrcpsr.h \ + classcom.h inscom.h insfun.h watch.h argacces.h cstrcpsr.h genrcexe.h \ + memalloc.h router.h prntutil.h genrccom.h + +genrcexe.o: genrcexe.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h insfun.h argacces.h genrccom.h genrcfun.h prcdrfun.h \ + prccode.h proflfun.h router.h prntutil.h genrcexe.h + +genrcfun.o: genrcfun.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classfun.h argacces.h cstrcpsr.h \ + genrccom.h genrcfun.h genrcexe.h memalloc.h prccode.h router.h \ + prntutil.h + +genrcpsr.o: genrcpsr.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h dffnxfun.h conscomp.h \ + constrct.h moduldef.h modulpsr.h evaluatn.h constant.h symblcmp.h \ + cstrccom.h classfun.h object.h constrnt.h multifld.h match.h network.h \ + ruledef.h agenda.h pattern.h reorder.h classcom.h memalloc.h cstrcpsr.h \ + genrccom.h genrcfun.h immthpsr.h modulutl.h prcdrpsr.h prccode.h \ + router.h prntutil.h genrcpsr.h + +globlbin.o: globlbin.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + multifld.h evaluatn.h constant.h symbol.h expressn.h exprnops.h \ + exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h globldef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + cstrccom.h bload.h exprnbin.h sysdep.h symblbin.h bsave.h globlbsc.h \ + globlbin.h modulbin.h cstrcbin.h + +globlbsc.o: globlbsc.c setup.h envrnmnt.h usrsetup.h constrct.h \ + moduldef.h conscomp.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h modulpsr.h \ + evaluatn.h constant.h utility.h watch.h globlcom.h globldef.h \ + cstrccom.h globlbin.h modulbin.h cstrcbin.h globlcmp.h globlbsc.h + +globlcmp.o: globlcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h globldef.h cstrccom.h globlcmp.h + +globlcom.o: globlcom.c setup.h envrnmnt.h usrsetup.h extnfunc.h symbol.h \ + expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h \ + argacces.h evaluatn.h constant.h moduldef.h conscomp.h constrct.h \ + symblcmp.h modulpsr.h utility.h prntutil.h router.h globldef.h \ + cstrccom.h globlcom.h + +globldef.o: globldef.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + modulpsr.h symbol.h evaluatn.h constant.h expressn.h exprnops.h \ + exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h moduldef.h \ + conscomp.h constrct.h symblcmp.h utility.h multifld.h router.h \ + prntutil.h strngrtr.h modulutl.h globlbsc.h globlpsr.h globlcom.h \ + commline.h bload.h exprnbin.h sysdep.h symblbin.h globlbin.h modulbin.h \ + cstrcbin.h globldef.h cstrccom.h globlcmp.h + +globlpsr.o: globlpsr.c setup.h envrnmnt.h usrsetup.h pprint.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h symblcmp.h modulpsr.h utility.h memalloc.h multifld.h watch.h \ + modulutl.h cstrcpsr.h globldef.h cstrccom.h globlbsc.h bload.h \ + exprnbin.h sysdep.h symblbin.h globlpsr.h + +immthpsr.o: immthpsr.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h memalloc.h cstrnutl.h genrcpsr.h genrcfun.h prccode.h \ + immthpsr.h + +incrrset.o: incrrset.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h argacces.h drive.h engine.h lgcldpnd.h \ + retract.h router.h prntutil.h incrrset.h + +inherpsr.o: inherpsr.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h memalloc.h modulutl.h router.h prntutil.h inherpsr.h + +inscom.o: inscom.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h classinf.h insfile.h insfun.h insmngr.h insmoddp.h insmult.h \ + inspsr.h lgcldpnd.h memalloc.h msgcom.h msgpass.h msgfun.h router.h \ + prntutil.h strngrtr.h sysdep.h commline.h inscom.h + +insfile.o: insfile.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h memalloc.h inscom.h insfun.h insmngr.h inspsr.h router.h \ + prntutil.h strngrtr.h symblbin.h sysdep.h factmngr.h facthsh.h \ + tmpltdef.h factbld.h insfile.h + +insfun.o: insfun.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h cstrnchk.h engine.h lgcldpnd.h retract.h inscom.h insfun.h \ + insmngr.h memalloc.h modulutl.h msgcom.h msgpass.h msgfun.h prccode.h \ + router.h prntutil.h drive.h objrtmch.h + +insmngr.o: insmngr.c setup.h envrnmnt.h usrsetup.h network.h match.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h pattern.h reorder.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h drive.h objrtmch.h object.h multifld.h \ + lgcldpnd.h classcom.h classfun.h engine.h retract.h memalloc.h insfun.h \ + modulutl.h msgcom.h msgpass.h msgfun.h prccode.h router.h prntutil.h \ + insmngr.h inscom.h watch.h + +insmoddp.o: insmoddp.c setup.h envrnmnt.h usrsetup.h network.h match.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h pattern.h reorder.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h objrtmch.h object.h multifld.h \ + argacces.h memalloc.h inscom.h insfun.h insmngr.h inspsr.h miscfun.h \ + msgcom.h msgpass.h msgfun.h prccode.h router.h prntutil.h insmoddp.h + +insmult.o: insmult.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h insfun.h object.h constrnt.h multifld.h match.h \ + network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h msgfun.h \ + msgpass.h multifun.h router.h prntutil.h insmult.h + +inspsr.o: inspsr.c setup.h envrnmnt.h usrsetup.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h multifld.h \ + match.h network.h ruledef.h agenda.h pattern.h reorder.h classfun.h \ + classinf.h prntutil.h router.h inspsr.h + +insquery.o: insquery.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h classcom.h cstrccom.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h agenda.h \ + pattern.h reorder.h classfun.h memalloc.h insfun.h insmngr.h insqypsr.h \ + prcdrfun.h router.h prntutil.h insquery.h + +insqypsr.o: insqypsr.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + insquery.h prcdrpsr.h prntutil.h router.h strngrtr.h insqypsr.h + +iofun.o: iofun.c setup.h envrnmnt.h usrsetup.h router.h prntutil.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h strngrtr.h filertr.h \ + argacces.h memalloc.h commline.h sysdep.h iofun.h + +lgcldpnd.o: lgcldpnd.c setup.h envrnmnt.h usrsetup.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h engine.h lgcldpnd.h \ + match.h network.h ruledef.h constrnt.h cstrccom.h agenda.h pattern.h \ + reorder.h retract.h reteutil.h argacces.h factmngr.h facthsh.h \ + multifld.h tmpltdef.h factbld.h insfun.h object.h + +memalloc.o: memalloc.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h + +miscfun.o: miscfun.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h memalloc.h multifld.h router.h prntutil.h sysdep.h \ + dffnxfun.h cstrccom.h miscfun.h + +modulbin.o: modulbin.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + constrct.h moduldef.h conscomp.h extnfunc.h symbol.h expressn.h \ + exprnops.h exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h \ + modulpsr.h evaluatn.h constant.h utility.h bload.h exprnbin.h sysdep.h \ + symblbin.h bsave.h modulbin.h + +modulbsc.o: modulbsc.c setup.h envrnmnt.h usrsetup.h constrct.h \ + moduldef.h conscomp.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h modulpsr.h \ + evaluatn.h constant.h utility.h modulbin.h prntutil.h modulcmp.h \ + router.h argacces.h bload.h exprnbin.h sysdep.h symblbin.h modulbsc.h + +modulcmp.o: modulcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h sysdep.h modulcmp.h + +moduldef.o: moduldef.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + constant.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + argacces.h modulcmp.h modulbsc.h bload.h exprnbin.h sysdep.h symblbin.h \ + modulbin.h + +modulpsr.o: modulpsr.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + constant.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + argacces.h cstrcpsr.h modulutl.h bload.h exprnbin.h sysdep.h symblbin.h + +modulutl.o: modulutl.c setup.h envrnmnt.h usrsetup.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h modulutl.h + +msgcom.o: msgcom.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h classinf.h insfun.h insmoddp.h msgfun.h msgpass.h prccode.h \ + router.h prntutil.h bload.h exprnbin.h sysdep.h symblbin.h msgpsr.h \ + watch.h msgcom.h + +msgfun.o: msgfun.c setup.h envrnmnt.h usrsetup.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h multifld.h \ + match.h network.h ruledef.h agenda.h pattern.h reorder.h classfun.h \ + memalloc.h insfun.h msgcom.h msgpass.h prccode.h router.h prntutil.h \ + msgfun.h + +msgpass.o: msgpass.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h memalloc.h insfun.h msgcom.h msgpass.h msgfun.h prcdrfun.h \ + prccode.h proflfun.h router.h prntutil.h strngfun.h commline.h inscom.h + +msgpsr.o: msgpsr.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classfun.h memalloc.h cstrcpsr.h \ + cstrnchk.h insfun.h msgcom.h msgpass.h msgfun.h prccode.h router.h \ + prntutil.h strngrtr.h msgpsr.h + +multifld.o: multifld.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h evaluatn.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h router.h prntutil.h moduldef.h \ + conscomp.h constrct.h symblcmp.h modulpsr.h utility.h strngrtr.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h cstrccom.h \ + agenda.h pattern.h reorder.h + +multifun.o: multifun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h multifld.h \ + multifun.h prcdrpsr.h constrnt.h prcdrfun.h router.h prntutil.h \ + object.h match.h network.h ruledef.h cstrccom.h agenda.h pattern.h \ + reorder.h + +objbin.o: objbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classfun.h classini.h cstrcbin.h \ + cstrnbin.h insfun.h memalloc.h modulbin.h msgcom.h msgpass.h msgfun.h \ + prntutil.h router.h objbin.h + +objcmp.o: objcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h constrct.h \ + moduldef.h modulpsr.h symbol.h evaluatn.h constant.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h \ + utility.h symblcmp.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h classini.h cstrncmp.h objrtfnx.h objrtmch.h sysdep.h \ + objcmp.h + +objrtbin.o: objrtbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h memalloc.h insfun.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + cstrccom.h agenda.h pattern.h reorder.h objrtmch.h reteutil.h rulebin.h \ + modulbin.h cstrcbin.h objrtbin.h + +objrtbld.o: objrtbld.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h cstrnutl.h cstrnchk.h cstrnops.h drive.h inscom.h insfun.h \ + insmngr.h memalloc.h reteutil.h rulepsr.h objrtmch.h objrtgen.h \ + objrtfnx.h router.h prntutil.h objrtcmp.h objrtbin.h objrtbld.h + +objrtcmp.o: objrtcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h objrtfnx.h object.h constrnt.h multifld.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + objrtmch.h sysdep.h objrtcmp.h + +objrtfnx.o: objrtfnx.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h bload.h exprnbin.h sysdep.h symblbin.h drive.h engine.h \ + lgcldpnd.h retract.h memalloc.h objrtmch.h reteutil.h router.h \ + prntutil.h objrtfnx.h + +objrtgen.o: objrtgen.c setup.h envrnmnt.h usrsetup.h classfun.h object.h \ + constrct.h moduldef.h conscomp.h extnfunc.h symbol.h expressn.h \ + exprnops.h exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h \ + modulpsr.h evaluatn.h constant.h utility.h constrnt.h multifld.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + objrtfnx.h objrtmch.h objrtgen.h + +objrtmch.o: objrtmch.c setup.h envrnmnt.h usrsetup.h classfun.h object.h \ + constrct.h moduldef.h conscomp.h extnfunc.h symbol.h expressn.h \ + exprnops.h exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h \ + modulpsr.h evaluatn.h constant.h utility.h constrnt.h multifld.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + memalloc.h drive.h engine.h lgcldpnd.h retract.h incrrset.h reteutil.h \ + ruledlt.h router.h prntutil.h objrtfnx.h objrtmch.h insmngr.h + +parsefun.o: parsefun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h cstrcpsr.h memalloc.h \ + multifld.h prcdrpsr.h constrnt.h router.h prntutil.h strngrtr.h \ + parsefun.h + +pattern.o: pattern.c setup.h envrnmnt.h usrsetup.h constant.h constrnt.h \ + evaluatn.h symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h cstrnchk.h cstrnutl.h match.h network.h \ + ruledef.h conscomp.h constrct.h moduldef.h modulpsr.h utility.h \ + symblcmp.h cstrccom.h agenda.h pattern.h reorder.h memalloc.h \ + reteutil.h router.h prntutil.h rulecmp.h + +pprint.o: pprint.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + utility.h pprint.h + +prccode.o: prccode.c setup.h envrnmnt.h usrsetup.h memalloc.h constant.h \ + globlpsr.h expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h \ + userdata.h scanner.h pprint.h multifld.h evaluatn.h object.h constrct.h \ + moduldef.h conscomp.h symblcmp.h modulpsr.h utility.h constrnt.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + prcdrpsr.h router.h prntutil.h prccode.h + +prcdrfun.o: prcdrfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h constrnt.h cstrnchk.h \ + cstrnops.h memalloc.h multifld.h prcdrpsr.h router.h prntutil.h \ + prcdrfun.h globldef.h cstrccom.h + +prcdrpsr.o: prcdrpsr.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h constrnt.h cstrnchk.h \ + cstrnops.h cstrnutl.h memalloc.h modulutl.h multifld.h router.h \ + prntutil.h prcdrpsr.h globldef.h cstrccom.h globlpsr.h + +prdctfun.o: prdctfun.c setup.h envrnmnt.h usrsetup.h exprnpsr.h \ + extnfunc.h symbol.h expressn.h exprnops.h userdata.h scanner.h pprint.h \ + argacces.h evaluatn.h constant.h moduldef.h conscomp.h constrct.h \ + symblcmp.h modulpsr.h utility.h multifld.h router.h prntutil.h \ + prdctfun.h + +prntutil.o: prntutil.c setup.h envrnmnt.h usrsetup.h constant.h symbol.h \ + utility.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h argacces.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h router.h prntutil.h multifun.h \ + factmngr.h facthsh.h pattern.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h factbld.h inscom.h \ + object.h insfun.h insmngr.h memalloc.h + +proflfun.o: proflfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h classcom.h cstrccom.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h agenda.h \ + pattern.h reorder.h dffnxfun.h genrccom.h genrcfun.h memalloc.h \ + msgcom.h msgpass.h router.h prntutil.h sysdep.h proflfun.h + +reorder.o: reorder.c setup.h envrnmnt.h usrsetup.h cstrnutl.h constrnt.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h memalloc.h pattern.h match.h \ + network.h ruledef.h conscomp.h constrct.h moduldef.h modulpsr.h \ + utility.h symblcmp.h cstrccom.h agenda.h reorder.h prntutil.h router.h \ + rulelhs.h + +reteutil.o: reteutil.c setup.h envrnmnt.h usrsetup.h drive.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + match.h evaluatn.h constant.h network.h ruledef.h conscomp.h constrct.h \ + moduldef.h modulpsr.h utility.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h pattern.h reorder.h engine.h lgcldpnd.h retract.h incrrset.h \ + memalloc.h router.h prntutil.h reteutil.h + +retract.o: retract.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h argacces.h drive.h engine.h lgcldpnd.h \ + retract.h memalloc.h reteutil.h router.h prntutil.h + +router.o: router.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h filertr.h memalloc.h strngrtr.h sysdep.h router.h \ + prntutil.h + +rulebin.o: rulebin.c setup.h envrnmnt.h usrsetup.h memalloc.h bload.h \ + utility.h extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h \ + scanner.h pprint.h userdata.h exprnbin.h sysdep.h symblbin.h bsave.h \ + reteutil.h evaluatn.h constant.h match.h network.h ruledef.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h pattern.h reorder.h engine.h lgcldpnd.h retract.h rulebsc.h \ + rulebin.h modulbin.h cstrcbin.h + +rulebld.o: rulebld.c setup.h envrnmnt.h usrsetup.h constant.h constrct.h \ + moduldef.h conscomp.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h modulpsr.h \ + evaluatn.h utility.h drive.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h pattern.h reorder.h incrrset.h memalloc.h \ + reteutil.h router.h prntutil.h rulebld.h watch.h + +rulebsc.o: rulebsc.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h router.h prntutil.h watch.h ruledef.h constrnt.h \ + cstrccom.h agenda.h match.h network.h pattern.h reorder.h engine.h \ + lgcldpnd.h retract.h rulebin.h modulbin.h cstrcbin.h rulecmp.h \ + rulebsc.h + +rulecmp.o: rulecmp.c setup.h envrnmnt.h usrsetup.h factbld.h pattern.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h match.h network.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h reorder.h reteutil.h rulecmp.h + +rulecom.o: rulecom.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h crstrtgy.h agenda.h ruledef.h constrnt.h \ + cstrccom.h network.h match.h pattern.h reorder.h engine.h lgcldpnd.h \ + retract.h incrrset.h memalloc.h reteutil.h router.h prntutil.h \ + ruledlt.h watch.h rulebin.h modulbin.h cstrcbin.h rulecom.h + +rulecstr.o: rulecstr.c setup.h envrnmnt.h usrsetup.h analysis.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h reorder.h ruledef.h conscomp.h constrct.h moduldef.h \ + modulpsr.h evaluatn.h constant.h utility.h symblcmp.h constrnt.h \ + cstrccom.h agenda.h match.h network.h pattern.h cstrnchk.h cstrnops.h \ + cstrnutl.h prcdrpsr.h router.h prntutil.h rulepsr.h rulecstr.h + +ruledef.o: ruledef.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h drive.h engine.h lgcldpnd.h retract.h \ + memalloc.h rulebsc.h rulecom.h rulepsr.h ruledlt.h bload.h exprnbin.h \ + sysdep.h symblbin.h rulebin.h modulbin.h cstrcbin.h rulecmp.h + +ruledlt.o: ruledlt.c setup.h envrnmnt.h usrsetup.h memalloc.h engine.h \ + lgcldpnd.h match.h evaluatn.h constant.h symbol.h expressn.h exprnops.h \ + exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h network.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h pattern.h reorder.h retract.h reteutil.h \ + drive.h bload.h exprnbin.h sysdep.h symblbin.h ruledlt.h + +rulelhs.o: rulelhs.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h argacces.h cstrnchk.h memalloc.h router.h \ + prntutil.h rulelhs.h + +rulepsr.o: rulepsr.c setup.h envrnmnt.h usrsetup.h analysis.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + reorder.h ruledef.h conscomp.h constrct.h moduldef.h modulpsr.h \ + evaluatn.h constant.h utility.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h match.h network.h pattern.h cstrcpsr.h cstrnchk.h cstrnops.h \ + engine.h lgcldpnd.h retract.h incrrset.h memalloc.h prccode.h \ + prcdrpsr.h router.h prntutil.h rulebld.h rulebsc.h rulecstr.h ruledlt.h \ + rulelhs.h watch.h tmpltfun.h factmngr.h facthsh.h multifld.h tmpltdef.h \ + factbld.h bload.h exprnbin.h sysdep.h symblbin.h rulepsr.h + +scanner.o: scanner.c setup.h envrnmnt.h usrsetup.h constant.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h memalloc.h + +sortfun.o: sortfun.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h dffnxfun.h cstrccom.h memalloc.h multifld.h \ + sysdep.h sortfun.h + +strngfun.o: strngfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h cstrcpsr.h engine.h \ + lgcldpnd.h match.h network.h ruledef.h constrnt.h cstrccom.h agenda.h \ + pattern.h reorder.h retract.h memalloc.h prcdrpsr.h router.h prntutil.h \ + strngrtr.h drive.h strngfun.h + +strngrtr.o: strngrtr.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + strngrtr.h + +symblbin.o: symblbin.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h bload.h exprnbin.h sysdep.h \ + symblbin.h bsave.h cstrnbin.h constrnt.h memalloc.h router.h prntutil.h + +symblcmp.o: symblcmp.c setup.h envrnmnt.h usrsetup.h symbol.h memalloc.h \ + constant.h exprnpsr.h extnfunc.h expressn.h exprnops.h userdata.h \ + scanner.h pprint.h cstrccom.h moduldef.h conscomp.h constrct.h \ + evaluatn.h symblcmp.h modulpsr.h utility.h argacces.h cstrncmp.h \ + constrnt.h router.h prntutil.h sysdep.h + +symbol.o: symbol.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h argacces.h + +sysdep.o: sysdep.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h bmathfun.h commline.h constrnt.h cstrcpsr.h \ + emathfun.h filecom.h iofun.h memalloc.h miscfun.h multifld.h multifun.h \ + parsefun.h prccode.h prdctfun.h proflfun.h prcdrfun.h router.h \ + prntutil.h sortfun.h strngfun.h textpro.h watch.h sysdep.h dffctdef.h \ + cstrccom.h ruledef.h agenda.h match.h network.h pattern.h reorder.h \ + genrccom.h genrcfun.h object.h dffnxfun.h globldef.h tmpltdef.h \ + factbld.h factmngr.h facthsh.h classini.h ed.h + +textpro.o: textpro.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h commline.h memalloc.h router.h prntutil.h sysdep.h \ + textpro.h + +tmpltbin.o: tmpltbin.c setup.h envrnmnt.h usrsetup.h memalloc.h bload.h \ + utility.h extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h \ + scanner.h pprint.h userdata.h exprnbin.h sysdep.h symblbin.h bsave.h \ + factbin.h factbld.h pattern.h evaluatn.h constant.h match.h network.h \ + ruledef.h conscomp.h constrct.h moduldef.h modulpsr.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h reorder.h cstrnbin.h factmngr.h \ + facthsh.h multifld.h tmpltdef.h tmpltpsr.h tmpltutl.h tmpltbin.h \ + cstrcbin.h modulbin.h + +tmpltbsc.o: tmpltbsc.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h cstrccom.h factrhs.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h constrnt.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h cstrcpsr.h tmpltpsr.h tmpltbin.h cstrcbin.h modulbin.h \ + tmpltcmp.h tmpltutl.h tmpltbsc.h + +tmpltcmp.o: tmpltcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h factcmp.h pattern.h match.h network.h \ + ruledef.h constrnt.h cstrccom.h agenda.h reorder.h cstrncmp.h \ + tmpltdef.h factbld.h factmngr.h facthsh.h multifld.h tmpltcmp.h + +tmpltdef.o: tmpltdef.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + exprnops.h expressn.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h cstrccom.h moduldef.h conscomp.h constrct.h \ + evaluatn.h constant.h symblcmp.h modulpsr.h utility.h network.h match.h \ + pattern.h reorder.h ruledef.h constrnt.h agenda.h tmpltpsr.h tmpltdef.h \ + factbld.h factmngr.h facthsh.h multifld.h tmpltbsc.h tmpltutl.h \ + tmpltfun.h router.h prntutil.h modulutl.h cstrnchk.h bload.h exprnbin.h \ + sysdep.h symblbin.h tmpltbin.h cstrcbin.h modulbin.h tmpltcmp.h + +tmpltfun.o: tmpltfun.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h symbol.h scanner.h pprint.h exprnpsr.h extnfunc.h expressn.h \ + exprnops.h userdata.h argacces.h evaluatn.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h router.h prntutil.h \ + cstrnchk.h constrnt.h default.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h commline.h factrhs.h modulutl.h tmpltlhs.h tmpltutl.h \ + tmpltrhs.h tmpltfun.h + +tmpltlhs.o: tmpltlhs.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h symbol.h scanner.h pprint.h exprnpsr.h extnfunc.h expressn.h \ + exprnops.h userdata.h router.h prntutil.h moduldef.h conscomp.h \ + constrct.h evaluatn.h symblcmp.h modulpsr.h utility.h constrnt.h \ + reorder.h ruledef.h cstrccom.h agenda.h match.h network.h pattern.h \ + factrhs.h factmngr.h facthsh.h multifld.h tmpltdef.h factbld.h \ + modulutl.h tmpltutl.h tmpltlhs.h + +tmpltpsr.o: tmpltpsr.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h symbol.h scanner.h pprint.h exprnpsr.h extnfunc.h expressn.h \ + exprnops.h userdata.h router.h prntutil.h moduldef.h conscomp.h \ + constrct.h evaluatn.h symblcmp.h modulpsr.h utility.h factmngr.h \ + facthsh.h pattern.h match.h network.h ruledef.h constrnt.h cstrccom.h \ + agenda.h reorder.h multifld.h tmpltdef.h factbld.h cstrnchk.h \ + cstrnpsr.h cstrcpsr.h bload.h exprnbin.h sysdep.h symblbin.h default.h \ + watch.h cstrnutl.h tmpltbsc.h tmpltpsr.h + +tmpltrhs.o: tmpltrhs.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h router.h tmpltfun.h \ + factmngr.h facthsh.h pattern.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h factbld.h factrhs.h \ + modulutl.h default.h tmpltutl.h tmpltlhs.h tmpltrhs.h + +tmpltutl.o: tmpltutl.c setup.h envrnmnt.h usrsetup.h extnfunc.h symbol.h \ + expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h \ + memalloc.h constrct.h moduldef.h conscomp.h symblcmp.h modulpsr.h \ + evaluatn.h constant.h utility.h router.h prntutil.h argacces.h \ + cstrnchk.h constrnt.h tmpltfun.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h tmpltpsr.h modulutl.h watch.h tmpltbsc.h tmpltutl.h + +userdata.o: userdata.c setup.h envrnmnt.h usrsetup.h userdata.h + +userfunctions.o: userfunctions.c setup.h envrnmnt.h usrsetup.h extnfunc.h \ + symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h + +utility.o: utility.c setup.h envrnmnt.h usrsetup.h evaluatn.h constant.h \ + symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h facthsh.h factmngr.h conscomp.h constrct.h \ + moduldef.h modulpsr.h utility.h symblcmp.h pattern.h match.h network.h \ + ruledef.h constrnt.h cstrccom.h agenda.h reorder.h multifld.h \ + tmpltdef.h factbld.h memalloc.h prntutil.h + +watch.o: watch.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h argacces.h watch.h \ No newline at end of file --- clips-6.24.orig/makefiles/makefile.gcc +++ clips-6.24/makefiles/makefile.gcc @@ -0,0 +1,1255 @@ +OBJS = agenda.o analysis.o argacces.o bload.o bmathfun.o bsave.o \ + classcom.o classexm.o classfun.o classinf.o classini.o \ + classpsr.o clsltpsr.o commline.o conscomp.o constrct.o \ + constrnt.o crstrtgy.o cstrcbin.o cstrccom.o cstrcpsr.o \ + cstrnbin.o cstrnchk.o cstrncmp.o cstrnops.o cstrnpsr.o \ + cstrnutl.o default.o defins.o developr.o dffctbin.o dffctbsc.o \ + dffctcmp.o dffctdef.o dffctpsr.o dffnxbin.o dffnxcmp.o \ + dffnxexe.o dffnxfun.o dffnxpsr.o dfinsbin.o dfinscmp.o drive.o \ + edbasic.o edmain.o edmisc.o edstruct.o edterm.o emathfun.o \ + engine.o envrnmnt.o evaluatn.o expressn.o exprnbin.o exprnops.o \ + exprnpsr.o extnfunc.o factbin.o factbld.o factcmp.o factcom.o \ + factfun.o factgen.o facthsh.o factlhs.o factmch.o factmngr.o \ + factprt.o factqpsr.o factqury.o factrete.o factrhs.o filecom.o filertr.o \ + generate.o genrcbin.o genrccmp.o genrccom.o genrcexe.o genrcfun.o \ + genrcpsr.o globlbin.o globlbsc.o globlcmp.o globlcom.o \ + globldef.o globlpsr.o immthpsr.o incrrset.o inherpsr.o \ + inscom.o insfile.o insfun.o insmngr.o insmoddp.o insmult.o \ + inspsr.o insquery.o insqypsr.o iofun.o lgcldpnd.o main.o \ + memalloc.o miscfun.o modulbin.o modulbsc.o modulcmp.o moduldef.o \ + modulpsr.o modulutl.o msgcom.o msgfun.o msgpass.o msgpsr.o \ + multifld.o multifun.o objbin.o objcmp.o objrtbin.o objrtbld.o \ + objrtcmp.o objrtfnx.o objrtgen.o objrtmch.o parsefun.o pattern.o \ + pprint.o prccode.o prcdrfun.o prcdrpsr.o prdctfun.o prntutil.o \ + proflfun.o reorder.o reteutil.o retract.o router.o rulebin.o \ + rulebld.o rulebsc.o rulecmp.o rulecom.o rulecstr.o ruledef.o \ + ruledlt.o rulelhs.o rulepsr.o scanner.o sortfun.o strngfun.o \ + strngrtr.o symblbin.o symblcmp.o symbol.o sysdep.o textpro.o \ + tmpltbin.o tmpltbsc.o tmpltcmp.o tmpltdef.o tmpltfun.o tmpltlhs.o \ + tmpltpsr.o tmpltrhs.o tmpltutl.o userdata.o userfunctions.o utility.o watch.o + +.c.o : + gcc -c -Wall -Wundef -Wpointer-arith -Wshadow -Wcast-qual \ + -Wcast-align -Winline -Wmissing-declarations -Wredundant-decls \ + -Wmissing-prototypes -Wnested-externs \ + -Wstrict-prototypes -Waggregate-return -Wno-implicit $< + +clips : $(OBJS) + gcc -o clips $(OBJS) -lm -ltermcap + +# Dependencies generated using "gcc -MM *.c" + +agenda.o: agenda.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h crstrtgy.h agenda.h ruledef.h constrnt.h \ + cstrccom.h network.h match.h pattern.h reorder.h engine.h lgcldpnd.h \ + retract.h memalloc.h modulutl.h multifld.h reteutil.h router.h \ + prntutil.h rulebsc.h strngrtr.h sysdep.h watch.h + +analysis.o: analysis.c setup.h envrnmnt.h usrsetup.h constant.h symbol.h \ + memalloc.h exprnpsr.h extnfunc.h expressn.h exprnops.h userdata.h \ + scanner.h pprint.h reorder.h ruledef.h conscomp.h constrct.h moduldef.h \ + modulpsr.h evaluatn.h utility.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h match.h network.h pattern.h generate.h router.h prntutil.h \ + cstrnchk.h cstrnutl.h cstrnops.h rulecstr.h modulutl.h analysis.h \ + globldef.h + +argacces.o: argacces.c setup.h envrnmnt.h usrsetup.h extnfunc.h symbol.h \ + expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h evaluatn.h constant.h \ + symblcmp.h modulpsr.h utility.h cstrnchk.h constrnt.h insfun.h object.h \ + multifld.h match.h network.h ruledef.h cstrccom.h agenda.h pattern.h \ + reorder.h factmngr.h facthsh.h tmpltdef.h factbld.h argacces.h + +bload.o: bload.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h bsave.h cstrnbin.h constrnt.h memalloc.h router.h \ + prntutil.h bload.h exprnbin.h sysdep.h symblbin.h + +bmathfun.o: bmathfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h router.h prntutil.h \ + bmathfun.h + +bsave.o: bsave.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h bload.h exprnbin.h sysdep.h symblbin.h cstrnbin.h \ + constrnt.h memalloc.h router.h prntutil.h bsave.h + +classcom.o: classcom.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h argacces.h evaluatn.h \ + constant.h moduldef.h conscomp.h constrct.h symblcmp.h modulpsr.h \ + classfun.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + cstrccom.h agenda.h pattern.h reorder.h classini.h modulutl.h msgcom.h \ + msgpass.h router.h prntutil.h classcom.h + +classexm.o: classexm.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h classcom.h cstrccom.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h agenda.h \ + pattern.h reorder.h classfun.h classini.h insfun.h memalloc.h msgcom.h \ + msgpass.h msgfun.h router.h prntutil.h strngrtr.h classexm.h + +classfun.o: classfun.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classini.h cstrcpsr.h inscom.h insfun.h \ + insmngr.h memalloc.h modulutl.h msgfun.h msgpass.h router.h prntutil.h \ + classfun.h + +classinf.o: classinf.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h classcom.h cstrccom.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h agenda.h \ + pattern.h reorder.h classexm.h classfun.h classini.h memalloc.h \ + insfun.h msgcom.h msgpass.h msgfun.h prntutil.h classinf.h + +classini.o: classini.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classexm.h classfun.h classinf.h classpsr.h cstrcpsr.h inscom.h \ + insfun.h memalloc.h modulutl.h msgcom.h msgpass.h watch.h defins.h \ + insquery.h bload.h exprnbin.h sysdep.h symblbin.h objbin.h objcmp.h \ + objrtbld.h classini.h + +classpsr.o: classpsr.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classfun.h clsltpsr.h cstrcpsr.h \ + inherpsr.h memalloc.h modulutl.h msgpsr.h router.h prntutil.h \ + classpsr.h + +clsltpsr.o: clsltpsr.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h cstrnchk.h cstrnpsr.h cstrnutl.h default.h insfun.h \ + memalloc.h prntutil.h router.h clsltpsr.h + +commline.o: commline.c setup.h envrnmnt.h usrsetup.h constant.h \ + argacces.h expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h \ + userdata.h scanner.h pprint.h evaluatn.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h cstrcpsr.h filecom.h \ + memalloc.h prcdrfun.h prcdrpsr.h constrnt.h router.h prntutil.h \ + strngrtr.h commline.h + +conscomp.o: conscomp.c setup.h envrnmnt.h usrsetup.h symbol.h memalloc.h \ + constant.h exprnpsr.h extnfunc.h expressn.h exprnops.h userdata.h \ + scanner.h pprint.h cstrccom.h moduldef.h conscomp.h constrct.h \ + evaluatn.h symblcmp.h modulpsr.h utility.h argacces.h cstrncmp.h \ + constrnt.h router.h prntutil.h sysdep.h modulcmp.h network.h match.h \ + pattern.h reorder.h ruledef.h agenda.h dffnxcmp.h dffnxfun.h tmpltcmp.h \ + globlcmp.h genrccmp.h genrcfun.h object.h multifld.h objcmp.h + +constrct.o: constrct.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h watch.h \ + prcdrfun.h prcdrpsr.h constrnt.h argacces.h multifld.h sysdep.h \ + commline.h + +constrnt.o: constrnt.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h multifld.h \ + router.h prntutil.h constrnt.h + +crstrtgy.o: crstrtgy.c setup.h envrnmnt.h usrsetup.h constant.h pattern.h \ + evaluatn.h symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h match.h network.h ruledef.h conscomp.h \ + constrct.h moduldef.h modulpsr.h utility.h symblcmp.h constrnt.h \ + cstrccom.h agenda.h reorder.h reteutil.h argacces.h crstrtgy.h + +cstrcbin.o: cstrcbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h moduldef.h conscomp.h \ + constrct.h evaluatn.h constant.h symblcmp.h modulpsr.h cstrcbin.h + +cstrccom.o: cstrccom.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h argacces.h multifld.h \ + modulutl.h router.h prntutil.h commline.h bload.h exprnbin.h sysdep.h \ + symblbin.h cstrcpsr.h cstrccom.h + +cstrcpsr.o: cstrcpsr.c setup.h envrnmnt.h usrsetup.h router.h prntutil.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h watch.h prcdrpsr.h constrnt.h \ + modulutl.h sysdep.h cstrcpsr.h + +cstrnbin.o: cstrnbin.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h bload.h \ + exprnbin.h sysdep.h symblbin.h bsave.h cstrnbin.h constrnt.h + +cstrnchk.o: cstrnchk.c setup.h envrnmnt.h usrsetup.h router.h prntutil.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h multifld.h cstrnutl.h \ + constrnt.h inscom.h object.h match.h network.h ruledef.h cstrccom.h \ + agenda.h pattern.h reorder.h insfun.h classcom.h classexm.h cstrnchk.h + +cstrncmp.o: cstrncmp.c setup.h envrnmnt.h usrsetup.h constant.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h memalloc.h router.h prntutil.h sysdep.h \ + cstrncmp.h constrnt.h + +cstrnops.o: cstrnops.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + multifld.h constrnt.h cstrnchk.h cstrnutl.h cstrnops.h + +cstrnpsr.o: cstrnpsr.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + cstrnutl.h constrnt.h cstrnchk.h cstrnpsr.h + +cstrnutl.o: cstrnutl.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + multifld.h argacces.h cstrnutl.h constrnt.h + +default.o: default.c setup.h envrnmnt.h usrsetup.h constant.h constrnt.h \ + evaluatn.h symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h cstrnchk.h multifld.h inscom.h object.h \ + constrct.h moduldef.h conscomp.h symblcmp.h modulpsr.h utility.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + insfun.h router.h prntutil.h factmngr.h facthsh.h tmpltdef.h factbld.h \ + cstrnutl.h default.h + +defins.o: defins.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h dfinsbin.h defins.h \ + conscomp.h constrct.h moduldef.h modulpsr.h evaluatn.h constant.h \ + symblcmp.h cstrccom.h object.h constrnt.h multifld.h match.h network.h \ + ruledef.h agenda.h pattern.h reorder.h dfinscmp.h argacces.h classcom.h \ + classfun.h cstrcpsr.h insfun.h inspsr.h memalloc.h router.h prntutil.h + +developr.o: developr.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h inscom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h cstrccom.h agenda.h pattern.h \ + reorder.h insfun.h modulutl.h router.h prntutil.h tmpltdef.h factbld.h \ + factmngr.h facthsh.h classcom.h classfun.h objrtmch.h developr.h + +dffctbin.o: dffctbin.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + dffctdef.h conscomp.h constrct.h moduldef.h modulpsr.h symbol.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h utility.h symblcmp.h cstrccom.h bload.h \ + exprnbin.h sysdep.h symblbin.h bsave.h dffctbin.h modulbin.h cstrcbin.h + +dffctbsc.o: dffctbsc.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h cstrccom.h factrhs.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h constrnt.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h cstrcpsr.h dffctpsr.h dffctdef.h dffctbin.h modulbin.h \ + cstrcbin.h dffctcmp.h dffctbsc.h + +dffctcmp.o: dffctcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h dffctdef.h cstrccom.h dffctcmp.h + +dffctdef.o: dffctdef.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + dffctpsr.h dffctbsc.h evaluatn.h constant.h symbol.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h bload.h \ + utility.h exprnbin.h sysdep.h symblbin.h dffctbin.h modulbin.h \ + moduldef.h conscomp.h constrct.h symblcmp.h modulpsr.h cstrcbin.h \ + dffctcmp.h dffctdef.h cstrccom.h + +dffctpsr.o: dffctpsr.c setup.h envrnmnt.h usrsetup.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h cstrcpsr.h factrhs.h \ + factmngr.h facthsh.h pattern.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h factbld.h bload.h \ + exprnbin.h sysdep.h symblbin.h dffctdef.h dffctbsc.h dffctpsr.h + +dffnxbin.o: dffnxbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h memalloc.h cstrcbin.h \ + constrct.h moduldef.h conscomp.h symblcmp.h modulpsr.h evaluatn.h \ + constant.h modulbin.h dffnxbin.h dffnxfun.h cstrccom.h + +dffnxcmp.o: dffnxcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h dffnxcmp.h dffnxfun.h cstrccom.h + +dffnxexe.o: dffnxexe.c setup.h envrnmnt.h usrsetup.h constrct.h \ + moduldef.h conscomp.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h modulpsr.h \ + evaluatn.h constant.h utility.h prcdrfun.h prccode.h proflfun.h \ + router.h prntutil.h watch.h dffnxexe.h dffnxfun.h cstrccom.h + +dffnxfun.o: dffnxfun.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h dffnxbin.h dffnxfun.h \ + conscomp.h constrct.h moduldef.h modulpsr.h evaluatn.h constant.h \ + symblcmp.h cstrccom.h dffnxcmp.h cstrcpsr.h dffnxpsr.h dffnxexe.h \ + watch.h argacces.h memalloc.h router.h prntutil.h + +dffnxpsr.o: dffnxpsr.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h network.h match.h evaluatn.h \ + constant.h pattern.h reorder.h ruledef.h conscomp.h constrct.h \ + moduldef.h modulpsr.h symblcmp.h constrnt.h cstrccom.h agenda.h \ + genrccom.h genrcfun.h object.h multifld.h cstrcpsr.h dffnxfun.h \ + memalloc.h prccode.h router.h prntutil.h dffnxpsr.h + +dfinsbin.o: dfinsbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h memalloc.h cstrcbin.h \ + constrct.h moduldef.h conscomp.h symblcmp.h modulpsr.h evaluatn.h \ + constant.h defins.h cstrccom.h object.h constrnt.h multifld.h match.h \ + network.h ruledef.h agenda.h pattern.h reorder.h modulbin.h dfinsbin.h + +dfinscmp.o: dfinscmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h defins.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + dfinscmp.h + +drive.o: drive.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h engine.h lgcldpnd.h retract.h memalloc.h \ + prntutil.h reteutil.h router.h incrrset.h drive.h + +edbasic.o: edbasic.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h + +edmain.o: edmain.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h sysdep.h + +edmisc.o: edmisc.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h cstrcpsr.h + +edstruct.o: edstruct.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h + +edterm.o: edterm.c setup.h envrnmnt.h usrsetup.h ed.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h + +emathfun.o: emathfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h router.h prntutil.h \ + emathfun.h + +engine.o: engine.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h argacces.h factmngr.h facthsh.h multifld.h \ + tmpltdef.h factbld.h inscom.h object.h insfun.h memalloc.h modulutl.h \ + prccode.h prcdrfun.h proflfun.h reteutil.h retract.h router.h \ + prntutil.h ruledlt.h sysdep.h watch.h engine.h lgcldpnd.h + +envrnmnt.o: envrnmnt.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h router.h engine.h \ + lgcldpnd.h match.h network.h ruledef.h constrnt.h cstrccom.h agenda.h \ + pattern.h reorder.h retract.h sysdep.h + +evaluatn.o: evaluatn.c setup.h envrnmnt.h usrsetup.h commline.h \ + constant.h memalloc.h router.h prntutil.h moduldef.h conscomp.h \ + constrct.h symbol.h userdata.h evaluatn.h expressn.h exprnops.h \ + exprnpsr.h extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h \ + utility.h prcdrfun.h multifld.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h constrnt.h cstrccom.h agenda.h reorder.h tmpltdef.h \ + factbld.h proflfun.h sysdep.h dffnxfun.h genrccom.h genrcfun.h object.h + +expressn.o: expressn.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h evaluatn.h constant.h \ + symblcmp.h modulpsr.h + +exprnbin.o: exprnbin.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + dffctdef.h conscomp.h constrct.h moduldef.h modulpsr.h symbol.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h utility.h symblcmp.h cstrccom.h bload.h \ + exprnbin.h sysdep.h symblbin.h bsave.h network.h match.h pattern.h \ + reorder.h ruledef.h constrnt.h agenda.h genrcbin.h genrcfun.h object.h \ + multifld.h dffnxbin.h dffnxfun.h tmpltbin.h cstrcbin.h modulbin.h \ + tmpltdef.h factbld.h factmngr.h facthsh.h globlbin.h globldef.h \ + objbin.h insfun.h inscom.h + +exprnops.o: exprnops.c setup.h envrnmnt.h usrsetup.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h cstrnchk.h \ + constrnt.h cstrnutl.h cstrnops.h + +exprnpsr.o: exprnpsr.c setup.h envrnmnt.h usrsetup.h constant.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h strngrtr.h memalloc.h \ + argacces.h cstrnchk.h constrnt.h modulutl.h prcdrfun.h network.h \ + match.h pattern.h reorder.h ruledef.h cstrccom.h agenda.h genrccom.h \ + genrcfun.h object.h multifld.h dffnxfun.h + +extnfunc.o: extnfunc.c setup.h envrnmnt.h usrsetup.h constant.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h memalloc.h + +factbin.o: factbin.c setup.h envrnmnt.h usrsetup.h memalloc.h tmpltdef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h factbld.h pattern.h \ + match.h network.h ruledef.h cstrccom.h agenda.h reorder.h factmngr.h \ + facthsh.h multifld.h bload.h exprnbin.h sysdep.h symblbin.h bsave.h \ + reteutil.h rulebin.h modulbin.h cstrcbin.h factbin.h + +factbld.o: factbld.c setup.h envrnmnt.h usrsetup.h memalloc.h reteutil.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h match.h network.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h pattern.h reorder.h router.h prntutil.h \ + factcmp.h factmch.h factmngr.h facthsh.h multifld.h tmpltdef.h \ + factbld.h factgen.h factlhs.h argacces.h modulutl.h + +factcmp.o: factcmp.c setup.h envrnmnt.h usrsetup.h factbld.h pattern.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h match.h network.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h reorder.h factcmp.h tmpltdef.h \ + factmngr.h facthsh.h multifld.h + +factcom.o: factcom.c setup.h envrnmnt.h usrsetup.h memalloc.h exprnpsr.h \ + extnfunc.h symbol.h expressn.h exprnops.h userdata.h scanner.h pprint.h \ + factmngr.h facthsh.h conscomp.h constrct.h moduldef.h modulpsr.h \ + evaluatn.h constant.h utility.h symblcmp.h pattern.h match.h network.h \ + ruledef.h constrnt.h cstrccom.h agenda.h reorder.h multifld.h \ + tmpltdef.h factbld.h argacces.h router.h prntutil.h factrhs.h factmch.h \ + tmpltpsr.h tmpltutl.h modulutl.h strngrtr.h tmpltfun.h sysdep.h bload.h \ + exprnbin.h symblbin.h factcom.h + +factfun.o: factfun.c setup.h envrnmnt.h usrsetup.h extnfunc.h symbol.h \ + expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h \ + argacces.h evaluatn.h constant.h moduldef.h conscomp.h constrct.h \ + symblcmp.h modulpsr.h utility.h prntutil.h tmpltutl.h factmngr.h \ + facthsh.h pattern.h match.h network.h ruledef.h constrnt.h cstrccom.h \ + agenda.h reorder.h multifld.h tmpltdef.h factbld.h router.h factfun.h + +factgen.o: factgen.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h network.h match.h \ + pattern.h reorder.h ruledef.h constrnt.h cstrccom.h agenda.h reteutil.h \ + factmch.h factmngr.h facthsh.h multifld.h tmpltdef.h factbld.h \ + factrete.h factprt.h tmpltlhs.h factgen.h + +facthsh.o: facthsh.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h lgcldpnd.h match.h \ + network.h ruledef.h constrnt.h cstrccom.h agenda.h pattern.h reorder.h \ + facthsh.h factmngr.h multifld.h tmpltdef.h factbld.h + +factlhs.o: factlhs.c setup.h envrnmnt.h usrsetup.h cstrcpsr.h evaluatn.h \ + constant.h symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h constrct.h moduldef.h conscomp.h \ + symblcmp.h modulpsr.h utility.h pattern.h match.h network.h ruledef.h \ + constrnt.h cstrccom.h agenda.h reorder.h router.h prntutil.h tmpltpsr.h \ + tmpltdef.h factbld.h factmngr.h facthsh.h multifld.h tmpltlhs.h \ + tmpltutl.h modulutl.h factlhs.h + +factmch.o: factmch.c setup.h envrnmnt.h usrsetup.h drive.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + match.h evaluatn.h constant.h network.h ruledef.h conscomp.h constrct.h \ + moduldef.h modulpsr.h utility.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h pattern.h reorder.h engine.h lgcldpnd.h retract.h factgen.h \ + factrete.h incrrset.h memalloc.h reteutil.h router.h prntutil.h \ + tmpltdef.h factbld.h factmngr.h facthsh.h multifld.h factmch.h + +factmngr.o: factmngr.c setup.h envrnmnt.h usrsetup.h constant.h symbol.h \ + memalloc.h exprnpsr.h extnfunc.h expressn.h exprnops.h userdata.h \ + scanner.h pprint.h argacces.h evaluatn.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h router.h prntutil.h \ + strngrtr.h match.h network.h ruledef.h constrnt.h cstrccom.h agenda.h \ + pattern.h reorder.h factbld.h factqury.h factmngr.h facthsh.h \ + multifld.h tmpltdef.h reteutil.h retract.h factcmp.h filecom.h \ + factfun.h factcom.h factrhs.h factmch.h watch.h factbin.h default.h \ + commline.h engine.h lgcldpnd.h drive.h ruledlt.h tmpltbsc.h tmpltutl.h \ + tmpltfun.h + +factprt.o: factprt.c setup.h envrnmnt.h usrsetup.h symbol.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h factgen.h reorder.h ruledef.h \ + constrnt.h cstrccom.h agenda.h match.h network.h pattern.h factprt.h + +factqpsr.o: factqpsr.c setup.h envrnmnt.h usrsetup.h exprnpsr.h \ + extnfunc.h symbol.h expressn.h exprnops.h userdata.h scanner.h pprint.h \ + factqury.h factmngr.h facthsh.h conscomp.h constrct.h moduldef.h \ + modulpsr.h evaluatn.h constant.h utility.h symblcmp.h pattern.h match.h \ + network.h ruledef.h constrnt.h cstrccom.h agenda.h reorder.h multifld.h \ + tmpltdef.h factbld.h modulutl.h prcdrpsr.h prntutil.h router.h \ + strngrtr.h factqpsr.h + +factqury.o: factqury.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h modulutl.h \ + tmpltutl.h factmngr.h facthsh.h pattern.h match.h network.h ruledef.h \ + constrnt.h cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h insfun.h object.h factqpsr.h prcdrfun.h router.h prntutil.h \ + factqury.h + +factrete.o: factrete.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + evaluatn.h constant.h symblcmp.h modulpsr.h utility.h incrrset.h \ + ruledef.h constrnt.h cstrccom.h agenda.h match.h network.h pattern.h \ + reorder.h reteutil.h drive.h engine.h lgcldpnd.h retract.h factgen.h \ + factmch.h factmngr.h facthsh.h multifld.h tmpltdef.h factbld.h \ + factrete.h + +factrhs.o: factrhs.c setup.h envrnmnt.h usrsetup.h constant.h extnfunc.h \ + symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h \ + modulutl.h moduldef.h conscomp.h constrct.h evaluatn.h symblcmp.h \ + modulpsr.h utility.h pattern.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h reorder.h prntutil.h cstrcpsr.h bload.h exprnbin.h \ + sysdep.h symblbin.h tmpltpsr.h tmpltdef.h factbld.h factmngr.h \ + facthsh.h multifld.h tmpltrhs.h tmpltutl.h strngrtr.h router.h \ + factrhs.h + +filecom.o: filecom.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h commline.h cstrcpsr.h memalloc.h prcdrfun.h \ + router.h prntutil.h strngrtr.h sysdep.h filecom.h bsave.h bload.h \ + exprnbin.h symblbin.h + +filertr.o: filertr.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h sysdep.h filertr.h + +generate.o: generate.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h symbol.h exprnpsr.h extnfunc.h expressn.h exprnops.h \ + userdata.h scanner.h pprint.h argacces.h evaluatn.h moduldef.h \ + conscomp.h constrct.h symblcmp.h modulpsr.h utility.h router.h \ + prntutil.h ruledef.h constrnt.h cstrccom.h agenda.h match.h network.h \ + pattern.h reorder.h generate.h globlpsr.h + +genrcbin.o: genrcbin.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h bload.h utility.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h exprnbin.h sysdep.h symblbin.h \ + bsave.h cstrcbin.h constrct.h moduldef.h conscomp.h symblcmp.h \ + modulpsr.h evaluatn.h objbin.h object.h constrnt.h multifld.h match.h \ + network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h genrccom.h \ + genrcfun.h modulbin.h genrcbin.h router.h prntutil.h + +genrccmp.o: genrccmp.c setup.h envrnmnt.h usrsetup.h network.h match.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h pattern.h reorder.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h genrccom.h genrcfun.h object.h \ + multifld.h objcmp.h genrccmp.h + +genrccom.o: genrccom.c setup.h envrnmnt.h usrsetup.h network.h match.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h pattern.h reorder.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h bload.h exprnbin.h sysdep.h symblbin.h \ + genrcbin.h genrcfun.h object.h multifld.h genrccmp.h genrcpsr.h \ + classcom.h inscom.h insfun.h watch.h argacces.h cstrcpsr.h genrcexe.h \ + memalloc.h router.h prntutil.h genrccom.h + +genrcexe.o: genrcexe.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h insfun.h argacces.h genrccom.h genrcfun.h prcdrfun.h \ + prccode.h proflfun.h router.h prntutil.h genrcexe.h + +genrcfun.o: genrcfun.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classfun.h argacces.h cstrcpsr.h \ + genrccom.h genrcfun.h genrcexe.h memalloc.h prccode.h router.h \ + prntutil.h + +genrcpsr.o: genrcpsr.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h dffnxfun.h conscomp.h \ + constrct.h moduldef.h modulpsr.h evaluatn.h constant.h symblcmp.h \ + cstrccom.h classfun.h object.h constrnt.h multifld.h match.h network.h \ + ruledef.h agenda.h pattern.h reorder.h classcom.h memalloc.h cstrcpsr.h \ + genrccom.h genrcfun.h immthpsr.h modulutl.h prcdrpsr.h prccode.h \ + router.h prntutil.h genrcpsr.h + +globlbin.o: globlbin.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + multifld.h evaluatn.h constant.h symbol.h expressn.h exprnops.h \ + exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h globldef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + cstrccom.h bload.h exprnbin.h sysdep.h symblbin.h bsave.h globlbsc.h \ + globlbin.h modulbin.h cstrcbin.h + +globlbsc.o: globlbsc.c setup.h envrnmnt.h usrsetup.h constrct.h \ + moduldef.h conscomp.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h modulpsr.h \ + evaluatn.h constant.h utility.h watch.h globlcom.h globldef.h \ + cstrccom.h globlbin.h modulbin.h cstrcbin.h globlcmp.h globlbsc.h + +globlcmp.o: globlcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h globldef.h cstrccom.h globlcmp.h + +globlcom.o: globlcom.c setup.h envrnmnt.h usrsetup.h extnfunc.h symbol.h \ + expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h \ + argacces.h evaluatn.h constant.h moduldef.h conscomp.h constrct.h \ + symblcmp.h modulpsr.h utility.h prntutil.h router.h globldef.h \ + cstrccom.h globlcom.h + +globldef.o: globldef.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + modulpsr.h symbol.h evaluatn.h constant.h expressn.h exprnops.h \ + exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h moduldef.h \ + conscomp.h constrct.h symblcmp.h utility.h multifld.h router.h \ + prntutil.h strngrtr.h modulutl.h globlbsc.h globlpsr.h globlcom.h \ + commline.h bload.h exprnbin.h sysdep.h symblbin.h globlbin.h modulbin.h \ + cstrcbin.h globldef.h cstrccom.h globlcmp.h + +globlpsr.o: globlpsr.c setup.h envrnmnt.h usrsetup.h pprint.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h symblcmp.h modulpsr.h utility.h memalloc.h multifld.h watch.h \ + modulutl.h cstrcpsr.h globldef.h cstrccom.h globlbsc.h bload.h \ + exprnbin.h sysdep.h symblbin.h globlpsr.h + +immthpsr.o: immthpsr.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h memalloc.h cstrnutl.h genrcpsr.h genrcfun.h prccode.h \ + immthpsr.h + +incrrset.o: incrrset.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h argacces.h drive.h engine.h lgcldpnd.h \ + retract.h router.h prntutil.h incrrset.h + +inherpsr.o: inherpsr.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h memalloc.h modulutl.h router.h prntutil.h inherpsr.h + +inscom.o: inscom.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h classinf.h insfile.h insfun.h insmngr.h insmoddp.h insmult.h \ + inspsr.h lgcldpnd.h memalloc.h msgcom.h msgpass.h msgfun.h router.h \ + prntutil.h strngrtr.h sysdep.h commline.h inscom.h + +insfile.o: insfile.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h memalloc.h inscom.h insfun.h insmngr.h inspsr.h router.h \ + prntutil.h strngrtr.h symblbin.h sysdep.h factmngr.h facthsh.h \ + tmpltdef.h factbld.h insfile.h + +insfun.o: insfun.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h cstrnchk.h engine.h lgcldpnd.h retract.h inscom.h insfun.h \ + insmngr.h memalloc.h modulutl.h msgcom.h msgpass.h msgfun.h prccode.h \ + router.h prntutil.h drive.h objrtmch.h + +insmngr.o: insmngr.c setup.h envrnmnt.h usrsetup.h network.h match.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h pattern.h reorder.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h drive.h objrtmch.h object.h multifld.h \ + lgcldpnd.h classcom.h classfun.h engine.h retract.h memalloc.h insfun.h \ + modulutl.h msgcom.h msgpass.h msgfun.h prccode.h router.h prntutil.h \ + insmngr.h inscom.h watch.h + +insmoddp.o: insmoddp.c setup.h envrnmnt.h usrsetup.h network.h match.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h pattern.h reorder.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h objrtmch.h object.h multifld.h \ + argacces.h memalloc.h inscom.h insfun.h insmngr.h inspsr.h miscfun.h \ + msgcom.h msgpass.h msgfun.h prccode.h router.h prntutil.h insmoddp.h + +insmult.o: insmult.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h insfun.h object.h constrnt.h multifld.h match.h \ + network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h msgfun.h \ + msgpass.h multifun.h router.h prntutil.h insmult.h + +inspsr.o: inspsr.c setup.h envrnmnt.h usrsetup.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h multifld.h \ + match.h network.h ruledef.h agenda.h pattern.h reorder.h classfun.h \ + classinf.h prntutil.h router.h inspsr.h + +insquery.o: insquery.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h classcom.h cstrccom.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h agenda.h \ + pattern.h reorder.h classfun.h memalloc.h insfun.h insmngr.h insqypsr.h \ + prcdrfun.h router.h prntutil.h insquery.h + +insqypsr.o: insqypsr.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + insquery.h prcdrpsr.h prntutil.h router.h strngrtr.h insqypsr.h + +iofun.o: iofun.c setup.h envrnmnt.h usrsetup.h router.h prntutil.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h strngrtr.h filertr.h \ + argacces.h memalloc.h commline.h sysdep.h iofun.h + +lgcldpnd.o: lgcldpnd.c setup.h envrnmnt.h usrsetup.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h engine.h lgcldpnd.h \ + match.h network.h ruledef.h constrnt.h cstrccom.h agenda.h pattern.h \ + reorder.h retract.h reteutil.h argacces.h factmngr.h facthsh.h \ + multifld.h tmpltdef.h factbld.h insfun.h object.h + +main.o: main.c setup.h envrnmnt.h usrsetup.h sysdep.h extnfunc.h symbol.h \ + expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h \ + commline.h + +memalloc.o: memalloc.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h + +miscfun.o: miscfun.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h memalloc.h multifld.h router.h prntutil.h sysdep.h \ + dffnxfun.h cstrccom.h miscfun.h + +modulbin.o: modulbin.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + constrct.h moduldef.h conscomp.h extnfunc.h symbol.h expressn.h \ + exprnops.h exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h \ + modulpsr.h evaluatn.h constant.h utility.h bload.h exprnbin.h sysdep.h \ + symblbin.h bsave.h modulbin.h + +modulbsc.o: modulbsc.c setup.h envrnmnt.h usrsetup.h constrct.h \ + moduldef.h conscomp.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h modulpsr.h \ + evaluatn.h constant.h utility.h modulbin.h prntutil.h modulcmp.h \ + router.h argacces.h bload.h exprnbin.h sysdep.h symblbin.h modulbsc.h + +modulcmp.o: modulcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h sysdep.h modulcmp.h + +moduldef.o: moduldef.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + constant.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + argacces.h modulcmp.h modulbsc.h bload.h exprnbin.h sysdep.h symblbin.h \ + modulbin.h + +modulpsr.o: modulpsr.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + constant.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + argacces.h cstrcpsr.h modulutl.h bload.h exprnbin.h sysdep.h symblbin.h + +modulutl.o: modulutl.c setup.h envrnmnt.h usrsetup.h memalloc.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h modulutl.h + +msgcom.o: msgcom.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h classinf.h insfun.h insmoddp.h msgfun.h msgpass.h prccode.h \ + router.h prntutil.h bload.h exprnbin.h sysdep.h symblbin.h msgpsr.h \ + watch.h msgcom.h + +msgfun.o: msgfun.c setup.h envrnmnt.h usrsetup.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h symbol.h userdata.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h multifld.h \ + match.h network.h ruledef.h agenda.h pattern.h reorder.h classfun.h \ + memalloc.h insfun.h msgcom.h msgpass.h prccode.h router.h prntutil.h \ + msgfun.h + +msgpass.o: msgpass.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h memalloc.h insfun.h msgcom.h msgpass.h msgfun.h prcdrfun.h \ + prccode.h proflfun.h router.h prntutil.h strngfun.h commline.h inscom.h + +msgpsr.o: msgpsr.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classfun.h memalloc.h cstrcpsr.h \ + cstrnchk.h insfun.h msgcom.h msgpass.h msgfun.h prccode.h router.h \ + prntutil.h strngrtr.h msgpsr.h + +multifld.o: multifld.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h evaluatn.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h router.h prntutil.h moduldef.h \ + conscomp.h constrct.h symblcmp.h modulpsr.h utility.h strngrtr.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h cstrccom.h \ + agenda.h pattern.h reorder.h + +multifun.o: multifun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h multifld.h \ + multifun.h prcdrpsr.h constrnt.h prcdrfun.h router.h prntutil.h \ + object.h match.h network.h ruledef.h cstrccom.h agenda.h pattern.h \ + reorder.h + +objbin.o: objbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h classcom.h cstrccom.h \ + moduldef.h conscomp.h constrct.h evaluatn.h constant.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + agenda.h pattern.h reorder.h classfun.h classini.h cstrcbin.h \ + cstrnbin.h insfun.h memalloc.h modulbin.h msgcom.h msgpass.h msgfun.h \ + prntutil.h router.h objbin.h + +objcmp.o: objcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h constrct.h \ + moduldef.h modulpsr.h symbol.h evaluatn.h constant.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h \ + utility.h symblcmp.h classcom.h cstrccom.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h classini.h cstrncmp.h objrtfnx.h objrtmch.h sysdep.h \ + objcmp.h + +objrtbin.o: objrtbin.c setup.h envrnmnt.h usrsetup.h bload.h utility.h \ + extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h \ + userdata.h exprnbin.h sysdep.h symblbin.h bsave.h memalloc.h insfun.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h object.h constrnt.h multifld.h match.h network.h ruledef.h \ + cstrccom.h agenda.h pattern.h reorder.h objrtmch.h reteutil.h rulebin.h \ + modulbin.h cstrcbin.h objrtbin.h + +objrtbld.o: objrtbld.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h cstrnutl.h cstrnchk.h cstrnops.h drive.h inscom.h insfun.h \ + insmngr.h memalloc.h reteutil.h rulepsr.h objrtmch.h objrtgen.h \ + objrtfnx.h router.h prntutil.h objrtcmp.h objrtbin.h objrtbld.h + +objrtcmp.o: objrtcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h objrtfnx.h object.h constrnt.h multifld.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + objrtmch.h sysdep.h objrtcmp.h + +objrtfnx.o: objrtfnx.c setup.h envrnmnt.h usrsetup.h classcom.h \ + cstrccom.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h object.h constrnt.h \ + multifld.h match.h network.h ruledef.h agenda.h pattern.h reorder.h \ + classfun.h bload.h exprnbin.h sysdep.h symblbin.h drive.h engine.h \ + lgcldpnd.h retract.h memalloc.h objrtmch.h reteutil.h router.h \ + prntutil.h objrtfnx.h + +objrtgen.o: objrtgen.c setup.h envrnmnt.h usrsetup.h classfun.h object.h \ + constrct.h moduldef.h conscomp.h extnfunc.h symbol.h expressn.h \ + exprnops.h exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h \ + modulpsr.h evaluatn.h constant.h utility.h constrnt.h multifld.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + objrtfnx.h objrtmch.h objrtgen.h + +objrtmch.o: objrtmch.c setup.h envrnmnt.h usrsetup.h classfun.h object.h \ + constrct.h moduldef.h conscomp.h extnfunc.h symbol.h expressn.h \ + exprnops.h exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h \ + modulpsr.h evaluatn.h constant.h utility.h constrnt.h multifld.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + memalloc.h drive.h engine.h lgcldpnd.h retract.h incrrset.h reteutil.h \ + ruledlt.h router.h prntutil.h objrtfnx.h objrtmch.h insmngr.h + +parsefun.o: parsefun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h cstrcpsr.h memalloc.h \ + multifld.h prcdrpsr.h constrnt.h router.h prntutil.h strngrtr.h \ + parsefun.h + +pattern.o: pattern.c setup.h envrnmnt.h usrsetup.h constant.h constrnt.h \ + evaluatn.h symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h cstrnchk.h cstrnutl.h match.h network.h \ + ruledef.h conscomp.h constrct.h moduldef.h modulpsr.h utility.h \ + symblcmp.h cstrccom.h agenda.h pattern.h reorder.h memalloc.h \ + reteutil.h router.h prntutil.h rulecmp.h + +pprint.o: pprint.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + utility.h pprint.h + +prccode.o: prccode.c setup.h envrnmnt.h usrsetup.h memalloc.h constant.h \ + globlpsr.h expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h \ + userdata.h scanner.h pprint.h multifld.h evaluatn.h object.h constrct.h \ + moduldef.h conscomp.h symblcmp.h modulpsr.h utility.h constrnt.h \ + match.h network.h ruledef.h cstrccom.h agenda.h pattern.h reorder.h \ + prcdrpsr.h router.h prntutil.h prccode.h + +prcdrfun.o: prcdrfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h constrnt.h cstrnchk.h \ + cstrnops.h memalloc.h multifld.h prcdrpsr.h router.h prntutil.h \ + prcdrfun.h globldef.h cstrccom.h + +prcdrpsr.o: prcdrpsr.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h constrnt.h cstrnchk.h \ + cstrnops.h cstrnutl.h memalloc.h modulutl.h multifld.h router.h \ + prntutil.h prcdrpsr.h globldef.h cstrccom.h globlpsr.h + +prdctfun.o: prdctfun.c setup.h envrnmnt.h usrsetup.h exprnpsr.h \ + extnfunc.h symbol.h expressn.h exprnops.h userdata.h scanner.h pprint.h \ + argacces.h evaluatn.h constant.h moduldef.h conscomp.h constrct.h \ + symblcmp.h modulpsr.h utility.h multifld.h router.h prntutil.h \ + prdctfun.h + +prntutil.o: prntutil.c setup.h envrnmnt.h usrsetup.h constant.h symbol.h \ + utility.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + userdata.h scanner.h pprint.h argacces.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h router.h prntutil.h multifun.h \ + factmngr.h facthsh.h pattern.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h factbld.h inscom.h \ + object.h insfun.h insmngr.h memalloc.h + +proflfun.o: proflfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h classcom.h cstrccom.h \ + object.h constrnt.h multifld.h match.h network.h ruledef.h agenda.h \ + pattern.h reorder.h dffnxfun.h genrccom.h genrcfun.h memalloc.h \ + msgcom.h msgpass.h router.h prntutil.h sysdep.h proflfun.h + +reorder.o: reorder.c setup.h envrnmnt.h usrsetup.h cstrnutl.h constrnt.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h memalloc.h pattern.h match.h \ + network.h ruledef.h conscomp.h constrct.h moduldef.h modulpsr.h \ + utility.h symblcmp.h cstrccom.h agenda.h reorder.h prntutil.h router.h \ + rulelhs.h + +reteutil.o: reteutil.c setup.h envrnmnt.h usrsetup.h drive.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + match.h evaluatn.h constant.h network.h ruledef.h conscomp.h constrct.h \ + moduldef.h modulpsr.h utility.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h pattern.h reorder.h engine.h lgcldpnd.h retract.h incrrset.h \ + memalloc.h router.h prntutil.h reteutil.h + +retract.o: retract.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h argacces.h drive.h engine.h lgcldpnd.h \ + retract.h memalloc.h reteutil.h router.h prntutil.h + +router.o: router.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h filertr.h memalloc.h strngrtr.h sysdep.h router.h \ + prntutil.h + +rulebin.o: rulebin.c setup.h envrnmnt.h usrsetup.h memalloc.h bload.h \ + utility.h extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h \ + scanner.h pprint.h userdata.h exprnbin.h sysdep.h symblbin.h bsave.h \ + reteutil.h evaluatn.h constant.h match.h network.h ruledef.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h pattern.h reorder.h engine.h lgcldpnd.h retract.h rulebsc.h \ + rulebin.h modulbin.h cstrcbin.h + +rulebld.o: rulebld.c setup.h envrnmnt.h usrsetup.h constant.h constrct.h \ + moduldef.h conscomp.h extnfunc.h symbol.h expressn.h exprnops.h \ + exprnpsr.h scanner.h pprint.h userdata.h symblcmp.h modulpsr.h \ + evaluatn.h utility.h drive.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h pattern.h reorder.h incrrset.h memalloc.h \ + reteutil.h router.h prntutil.h rulebld.h watch.h + +rulebsc.o: rulebsc.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h router.h prntutil.h watch.h ruledef.h constrnt.h \ + cstrccom.h agenda.h match.h network.h pattern.h reorder.h engine.h \ + lgcldpnd.h retract.h rulebin.h modulbin.h cstrcbin.h rulecmp.h \ + rulebsc.h + +rulecmp.o: rulecmp.c setup.h envrnmnt.h usrsetup.h factbld.h pattern.h \ + evaluatn.h constant.h symbol.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h userdata.h scanner.h pprint.h match.h network.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h reorder.h reteutil.h rulecmp.h + +rulecom.o: rulecom.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h crstrtgy.h agenda.h ruledef.h constrnt.h \ + cstrccom.h network.h match.h pattern.h reorder.h engine.h lgcldpnd.h \ + retract.h incrrset.h memalloc.h reteutil.h router.h prntutil.h \ + ruledlt.h watch.h rulebin.h modulbin.h cstrcbin.h rulecom.h + +rulecstr.o: rulecstr.c setup.h envrnmnt.h usrsetup.h analysis.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h reorder.h ruledef.h conscomp.h constrct.h moduldef.h \ + modulpsr.h evaluatn.h constant.h utility.h symblcmp.h constrnt.h \ + cstrccom.h agenda.h match.h network.h pattern.h cstrnchk.h cstrnops.h \ + cstrnutl.h prcdrpsr.h router.h prntutil.h rulepsr.h rulecstr.h + +ruledef.o: ruledef.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h drive.h engine.h lgcldpnd.h retract.h \ + memalloc.h rulebsc.h rulecom.h rulepsr.h ruledlt.h bload.h exprnbin.h \ + sysdep.h symblbin.h rulebin.h modulbin.h cstrcbin.h rulecmp.h + +ruledlt.o: ruledlt.c setup.h envrnmnt.h usrsetup.h memalloc.h engine.h \ + lgcldpnd.h match.h evaluatn.h constant.h symbol.h expressn.h exprnops.h \ + exprnpsr.h extnfunc.h userdata.h scanner.h pprint.h network.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h utility.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h pattern.h reorder.h retract.h reteutil.h \ + drive.h bload.h exprnbin.h sysdep.h symblbin.h ruledlt.h + +rulelhs.o: rulelhs.c setup.h envrnmnt.h usrsetup.h agenda.h ruledef.h \ + conscomp.h constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h \ + constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h utility.h symblcmp.h constrnt.h cstrccom.h network.h \ + match.h pattern.h reorder.h argacces.h cstrnchk.h memalloc.h router.h \ + prntutil.h rulelhs.h + +rulepsr.o: rulepsr.c setup.h envrnmnt.h usrsetup.h analysis.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + reorder.h ruledef.h conscomp.h constrct.h moduldef.h modulpsr.h \ + evaluatn.h constant.h utility.h symblcmp.h constrnt.h cstrccom.h \ + agenda.h match.h network.h pattern.h cstrcpsr.h cstrnchk.h cstrnops.h \ + engine.h lgcldpnd.h retract.h incrrset.h memalloc.h prccode.h \ + prcdrpsr.h router.h prntutil.h rulebld.h rulebsc.h rulecstr.h ruledlt.h \ + rulelhs.h watch.h tmpltfun.h factmngr.h facthsh.h multifld.h tmpltdef.h \ + factbld.h bload.h exprnbin.h sysdep.h symblbin.h rulepsr.h + +scanner.o: scanner.c setup.h envrnmnt.h usrsetup.h constant.h router.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h scanner.h \ + pprint.h symblcmp.h modulpsr.h utility.h memalloc.h + +sortfun.o: sortfun.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h dffnxfun.h cstrccom.h memalloc.h multifld.h \ + sysdep.h sortfun.h + +strngfun.o: strngfun.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h cstrcpsr.h engine.h \ + lgcldpnd.h match.h network.h ruledef.h constrnt.h cstrccom.h agenda.h \ + pattern.h reorder.h retract.h memalloc.h prcdrpsr.h router.h prntutil.h \ + strngrtr.h drive.h strngfun.h + +strngrtr.o: strngrtr.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h router.h prntutil.h moduldef.h conscomp.h constrct.h \ + symbol.h userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h \ + extnfunc.h scanner.h pprint.h symblcmp.h modulpsr.h utility.h \ + strngrtr.h + +symblbin.o: symblbin.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h bload.h exprnbin.h sysdep.h \ + symblbin.h bsave.h cstrnbin.h constrnt.h memalloc.h router.h prntutil.h + +symblcmp.o: symblcmp.c setup.h envrnmnt.h usrsetup.h symbol.h memalloc.h \ + constant.h exprnpsr.h extnfunc.h expressn.h exprnops.h userdata.h \ + scanner.h pprint.h cstrccom.h moduldef.h conscomp.h constrct.h \ + evaluatn.h symblcmp.h modulpsr.h utility.h argacces.h cstrncmp.h \ + constrnt.h router.h prntutil.h sysdep.h + +symbol.o: symbol.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h argacces.h + +sysdep.o: sysdep.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h bmathfun.h commline.h constrnt.h cstrcpsr.h \ + emathfun.h filecom.h iofun.h memalloc.h miscfun.h multifld.h multifun.h \ + parsefun.h prccode.h prdctfun.h proflfun.h prcdrfun.h router.h \ + prntutil.h sortfun.h strngfun.h textpro.h watch.h sysdep.h dffctdef.h \ + cstrccom.h ruledef.h agenda.h match.h network.h pattern.h reorder.h \ + genrccom.h genrcfun.h object.h dffnxfun.h globldef.h tmpltdef.h \ + factbld.h factmngr.h facthsh.h classini.h ed.h + +textpro.o: textpro.c setup.h envrnmnt.h usrsetup.h argacces.h expressn.h \ + exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h scanner.h pprint.h \ + evaluatn.h constant.h moduldef.h conscomp.h constrct.h symblcmp.h \ + modulpsr.h utility.h commline.h memalloc.h router.h prntutil.h sysdep.h \ + textpro.h + +tmpltbin.o: tmpltbin.c setup.h envrnmnt.h usrsetup.h memalloc.h bload.h \ + utility.h extnfunc.h symbol.h expressn.h exprnops.h exprnpsr.h \ + scanner.h pprint.h userdata.h exprnbin.h sysdep.h symblbin.h bsave.h \ + factbin.h factbld.h pattern.h evaluatn.h constant.h match.h network.h \ + ruledef.h conscomp.h constrct.h moduldef.h modulpsr.h symblcmp.h \ + constrnt.h cstrccom.h agenda.h reorder.h cstrnbin.h factmngr.h \ + facthsh.h multifld.h tmpltdef.h tmpltpsr.h tmpltutl.h tmpltbin.h \ + cstrcbin.h modulbin.h + +tmpltbsc.o: tmpltbsc.c setup.h envrnmnt.h usrsetup.h argacces.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h evaluatn.h constant.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h memalloc.h router.h \ + prntutil.h cstrccom.h factrhs.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h constrnt.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h cstrcpsr.h tmpltpsr.h tmpltbin.h cstrcbin.h modulbin.h \ + tmpltcmp.h tmpltutl.h tmpltbsc.h + +tmpltcmp.o: tmpltcmp.c setup.h envrnmnt.h usrsetup.h conscomp.h \ + constrct.h moduldef.h modulpsr.h symbol.h evaluatn.h constant.h \ + expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h scanner.h \ + pprint.h utility.h symblcmp.h factcmp.h pattern.h match.h network.h \ + ruledef.h constrnt.h cstrccom.h agenda.h reorder.h cstrncmp.h \ + tmpltdef.h factbld.h factmngr.h facthsh.h multifld.h tmpltcmp.h + +tmpltdef.o: tmpltdef.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + exprnops.h expressn.h exprnpsr.h extnfunc.h symbol.h userdata.h \ + scanner.h pprint.h cstrccom.h moduldef.h conscomp.h constrct.h \ + evaluatn.h constant.h symblcmp.h modulpsr.h utility.h network.h match.h \ + pattern.h reorder.h ruledef.h constrnt.h agenda.h tmpltpsr.h tmpltdef.h \ + factbld.h factmngr.h facthsh.h multifld.h tmpltbsc.h tmpltutl.h \ + tmpltfun.h router.h prntutil.h modulutl.h cstrnchk.h bload.h exprnbin.h \ + sysdep.h symblbin.h tmpltbin.h cstrcbin.h modulbin.h tmpltcmp.h + +tmpltfun.o: tmpltfun.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h symbol.h scanner.h pprint.h exprnpsr.h extnfunc.h expressn.h \ + exprnops.h userdata.h argacces.h evaluatn.h moduldef.h conscomp.h \ + constrct.h symblcmp.h modulpsr.h utility.h router.h prntutil.h \ + cstrnchk.h constrnt.h default.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h commline.h factrhs.h modulutl.h tmpltlhs.h tmpltutl.h \ + tmpltrhs.h tmpltfun.h + +tmpltlhs.o: tmpltlhs.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h symbol.h scanner.h pprint.h exprnpsr.h extnfunc.h expressn.h \ + exprnops.h userdata.h router.h prntutil.h moduldef.h conscomp.h \ + constrct.h evaluatn.h symblcmp.h modulpsr.h utility.h constrnt.h \ + reorder.h ruledef.h cstrccom.h agenda.h match.h network.h pattern.h \ + factrhs.h factmngr.h facthsh.h multifld.h tmpltdef.h factbld.h \ + modulutl.h tmpltutl.h tmpltlhs.h + +tmpltpsr.o: tmpltpsr.c setup.h envrnmnt.h usrsetup.h constant.h \ + memalloc.h symbol.h scanner.h pprint.h exprnpsr.h extnfunc.h expressn.h \ + exprnops.h userdata.h router.h prntutil.h moduldef.h conscomp.h \ + constrct.h evaluatn.h symblcmp.h modulpsr.h utility.h factmngr.h \ + facthsh.h pattern.h match.h network.h ruledef.h constrnt.h cstrccom.h \ + agenda.h reorder.h multifld.h tmpltdef.h factbld.h cstrnchk.h \ + cstrnpsr.h cstrcpsr.h bload.h exprnbin.h sysdep.h symblbin.h default.h \ + watch.h cstrnutl.h tmpltbsc.h tmpltpsr.h + +tmpltrhs.o: tmpltrhs.c setup.h envrnmnt.h usrsetup.h memalloc.h \ + prntutil.h moduldef.h conscomp.h constrct.h symbol.h userdata.h \ + evaluatn.h constant.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h router.h tmpltfun.h \ + factmngr.h facthsh.h pattern.h match.h network.h ruledef.h constrnt.h \ + cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h factbld.h factrhs.h \ + modulutl.h default.h tmpltutl.h tmpltlhs.h tmpltrhs.h + +tmpltutl.o: tmpltutl.c setup.h envrnmnt.h usrsetup.h extnfunc.h symbol.h \ + expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h \ + memalloc.h constrct.h moduldef.h conscomp.h symblcmp.h modulpsr.h \ + evaluatn.h constant.h utility.h router.h prntutil.h argacces.h \ + cstrnchk.h constrnt.h tmpltfun.h factmngr.h facthsh.h pattern.h match.h \ + network.h ruledef.h cstrccom.h agenda.h reorder.h multifld.h tmpltdef.h \ + factbld.h tmpltpsr.h modulutl.h watch.h tmpltbsc.h tmpltutl.h + +userdata.o: userdata.c setup.h envrnmnt.h usrsetup.h userdata.h + +userfunctions.o: userfunctions.c setup.h envrnmnt.h usrsetup.h extnfunc.h \ + symbol.h expressn.h exprnops.h exprnpsr.h scanner.h pprint.h userdata.h + +utility.o: utility.c setup.h envrnmnt.h usrsetup.h evaluatn.h constant.h \ + symbol.h expressn.h exprnops.h exprnpsr.h extnfunc.h userdata.h \ + scanner.h pprint.h facthsh.h factmngr.h conscomp.h constrct.h \ + moduldef.h modulpsr.h utility.h symblcmp.h pattern.h match.h network.h \ + ruledef.h constrnt.h cstrccom.h agenda.h reorder.h multifld.h \ + tmpltdef.h factbld.h memalloc.h prntutil.h + +watch.o: watch.c setup.h envrnmnt.h usrsetup.h constant.h memalloc.h \ + router.h prntutil.h moduldef.h conscomp.h constrct.h symbol.h \ + userdata.h evaluatn.h expressn.h exprnops.h exprnpsr.h extnfunc.h \ + scanner.h pprint.h symblcmp.h modulpsr.h utility.h argacces.h watch.h \ No newline at end of file